diff --git a/.github/workflows/deploy_dynamic_lists_fallback.yml b/.github/workflows/deploy_dynamic_lists_fallback.yml new file mode 100644 index 0000000000..4ea9a7f2a4 --- /dev/null +++ b/.github/workflows/deploy_dynamic_lists_fallback.yml @@ -0,0 +1,46 @@ +# This is a basic workflow to help you get started with Actions + +name: Dynamic lists fallback update + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "trunk" ] + pull_request: + branches: [ "trunk" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + - name: get latest dynamic lists + id: getDynamicLists + run: | + echo "::set-output name=lists::$(curl -s https://b.rucss.wp-rocket.me/api/exclusions/list)" + + - name: save lists + id: saveDynamicLists + run: | + touch dynamic-lists.json + echo '${{ steps.getDynamicLists.outputs.lists }}' > dynamic-lists.json + cat dynamic-lists.json + + + - name: Commit the file + if: ${{ steps.saveDynamicLists.outcome == 'success' }} + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: update dynamic lists + commit_user_name: WP Media GitHub Actions Bot diff --git a/.github/workflows/deploy_plugin.yml b/.github/workflows/deploy_plugin.yml index d9d7ed6963..40da9f1f80 100644 --- a/.github/workflows/deploy_plugin.yml +++ b/.github/workflows/deploy_plugin.yml @@ -11,10 +11,11 @@ jobs: steps: - name: checkout uses: actions/checkout@v2 + - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '7.2' tools: composer:v2 - name: Get composer cache directory @@ -34,6 +35,10 @@ jobs: mv wp-rocket-* wp-rocket working-directory: /tmp + - name: Remove unmet dependencies by legacy versions + run: composer remove --dev --update-no-dev --no-scripts coenjacobs/mozart + working-directory: /tmp/wp-rocket + - name: Run composer run: composer install --no-scripts --no-dev working-directory: /tmp/wp-rocket diff --git a/.github/workflows/test_wprocket_legacy.yml b/.github/workflows/test_wprocket_legacy.yml index 40e3e05bfd..f946f6d99f 100644 --- a/.github/workflows/test_wprocket_legacy.yml +++ b/.github/workflows/test_wprocket_legacy.yml @@ -16,8 +16,8 @@ jobs: fail-fast: true matrix: operating-system: [ubuntu-latest] - php-versions: ['7.1', '7.2'] - wp-versions: ['5.5.8'] + php-versions: ['7.2'] + wp-versions: ['5.6'] name: WP ${{ matrix.wp-versions }} with PHP ${{ matrix.php-versions }} on ${{ matrix.operating-system }}. @@ -69,7 +69,7 @@ jobs: restore-keys: ${{ runner.os }}-composer- - name: Remove unmet dependencies by legacy versions - run: composer remove --dev --no-scripts phpstan/phpstan szepeviktor/phpstan-wordpress coenjacobs/mozart + run: composer remove --dev --no-scripts coenjacobs/mozart - name: Require PHPUnit 7.5 for WP compatibility run: composer require --dev --no-scripts phpunit/phpunit "^7.5" -W diff --git a/assets/css/wpr-admin-rtl.css b/assets/css/wpr-admin-rtl.css index 8eade54912..9a898719c2 100644 --- a/assets/css/wpr-admin-rtl.css +++ b/assets/css/wpr-admin-rtl.css @@ -1 +1,332 @@ -.wpr-wrap{margin:0 -20px 0 0}#hs-beacon iframe:nth-child(1){right:inherit !important;left:18px !important}#hs-beacon iframe:nth-child(2){right:inherit !important;left:6px !important}.wpr-Page-col--fixed{margin-left:0;margin-right:24px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-right:0}}.wpr-Content{border:1px solid #e0e4e9;border-right:none}.wpr-Content-tips{right:unset;left:24px}.wpr-Sidebar-notice{border:1px solid #e8ebee;border-right:2px solid #1eadbf}.wpr-Sidebar .wpr-Sidebar-info h4{padding-left:inherit;padding-right:56px}.wpr-menuItem{padding:16px 20px 18px 44px}.wpr-menuItem:before{right:inherit !important;left:18px !important}.wpr-menuItem:after{border-width:12px 0 12px 10px;border-color:transparent transparent transparent #fff;left:0;right:inherit;transform:translateX(-12px)}.wpr-menuItem:hover{transform:translateX(0)}.wpr-menuItem.wpr-subMenuItem{padding:10px 25px 8px 20px}.wpr-sectionHeader:before{left:inherit;right:0}.wpr-sectionHeader .wpr-title1:before{margin-left:24px;margin-right:0}.wpr-optionHeader .wpr-title2{padding-right:0;padding-left:40px}.wpr-infoAction:before{right:-26px}.wpr-fieldWarning{padding:16px 56px 24px 16px}.wpr-fieldWarning:after{left:inherit;right:20px}.wpr-fieldWarning:before{left:inherit;right:-16px}.wpr-fieldWarning-title:before{left:inherit;right:-40px}.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:inherit;right:40px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:8px;padding-left:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:0;padding-right:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-24px;padding-left:0;padding-right:30px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:8px;padding-left:25px}}.wpr-checkbox{padding-left:0;padding-right:32px}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{right:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{left:inherit;right:0}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{left:inherit;right:2px}.wpr-radio{padding-left:0;padding-right:88px}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{right:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:inherit;right:0}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{left:inherit;right:3px}.wpr-radio [type=checkbox]:checked+label:after{right:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{right:4px}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:27px}.wpr-radio--reverse{padding-left:0;padding-right:72px}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:15px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:6px;left:inherit}.wpr-multiple .wpr-button{margin-right:16px;margin-left:0}.wpr-multiple-close{margin-right:0;margin-left:16px}.wpr-addon .wpr-flex>div{text-align:right}.wpr-addon .wpr-addon-text{margin-left:inherit;margin-right:32px}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-right:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-right:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-right:0}}.wpr-tools-col:first-child{padding-right:72px;padding-left:24px}.wpr-tools-col:last-child{text-align:left}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:right}}.wpr-tools-label:before{left:inherit;right:0}.wpr-field .wpr-flex--egal>div:last-child{text-align:left}.wpr-field-list li:before{display:inline-block;margin-right:0;margin-left:8px}.wpr-field--split{padding-right:0}.wpr-field--split+.wpr-field--split{padding-left:0;padding-right:16px}.wpr-field--children{padding-left:0;padding-right:32px}.wpr-field--children.wpr-field--textarea{padding-left:80px;padding-right:32px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-left:32px;padding-right:0}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-left:0}}.wpr-field--children.no-space{padding-right:0}.wpr-field--checkbox .wpr-field-description{margin-left:0;margin-right:32px}.wpr-field--radio .wpr-field-description{margin-left:0;margin-right:88px}.wpr-adblock img{margin-right:0;margin-left:16px}.wpr-adblock-close{right:inherit;left:24px}.wpr-notice{background-position:10% bottom}.wpr-notice-container{padding:24px 40px 24px 25%}.wpr-notice-close{right:inherit;left:24px} \ No newline at end of file +/*-----------------------------------------------*\ + +Author: Thomas Geisen (www.thomasgeisen.fr) +Method : SUITCSS (modified) + +--- This file is only for RTL languages + +\*-----------------------------------------------*/ +.wpr-wrap { + margin: 0 -20px 0 0; +} + +#hs-beacon iframe:nth-child(1) { + right: inherit !important; + left: 18px !important; +} +#hs-beacon iframe:nth-child(2) { + right: inherit !important; + left: 6px !important; +} + +.wpr-Page-col--fixed { + margin-left: 0; + margin-right: 24px; +} +@media (max-width: 1239px) { + .wpr-Page-col--fixed { + margin-right: 0; + } +} + +.wpr-Content { + border: 1px solid #E0E4E9; + border-right: none; +} + +.wpr-Content-tips { + right: unset; + left: 24px; +} + +.wpr-Sidebar-notice { + border: 1px solid #E8EBEE; + border-right: 2px solid #1EADBF; +} +.wpr-Sidebar .wpr-Sidebar-info h4 { + padding-left: inherit; + padding-right: 56px; +} + +.wpr-menuItem { + padding: 16px 20px 18px 44px; +} +.wpr-menuItem:before { + right: inherit !important; + left: 18px !important; +} +.wpr-menuItem:after { + border-width: 12px 0 12px 10px; + border-color: transparent transparent transparent #fff; + left: 0; + right: inherit; + transform: translateX(-12px); +} +.wpr-menuItem:hover { + transform: translateX(0); +} +.wpr-menuItem.wpr-subMenuItem { + padding: 10px 25px 8px 20px; +} + +.wpr-sectionHeader:before { + left: inherit; + right: 0; +} +.wpr-sectionHeader .wpr-title1:before { + margin-left: 24px; + margin-right: 0; +} + +.wpr-optionHeader .wpr-title2 { + padding-right: 0; + padding-left: 40px; +} + +.wpr-infoAction:before { + right: -26px; +} + +.wpr-fieldWarning { + padding: 16px 56px 24px 16px; +} +.wpr-fieldWarning:after { + left: inherit; + right: 20px; +} +.wpr-fieldWarning:before { + left: inherit; + right: -16px; +} +.wpr-fieldWarning-title:before { + left: inherit; + right: -40px; +} +.wpr-fieldWarning.wpr-radio-warning { + margin-left: 0; + margin-right: -32px; +} +.wpr-fieldWarning.wpr-radio-warning:after { + left: inherit; + right: 40px; +} + +@media only screen and (max-width: 400px) { + .wpr-fieldWarning.wpr-radio-warning { + margin-left: 0; + margin-right: -32px; + } + .wpr-fieldWarning.wpr-radio-warning .wpr-button { + padding-right: 8px; + padding-left: 32px; + } +} +@media only screen and (max-width: 350px) { + .wpr-radio-buttons { + padding-left: 0; + padding-right: 24px; + } + + .wpr-fieldWarning.wpr-radio-warning { + margin-left: 0; + margin-right: -24px; + padding-left: 0; + padding-right: 30px; + } + .wpr-fieldWarning.wpr-radio-warning .wpr-button { + white-space: normal; + padding-right: 8px; + padding-left: 25px; + } +} +.wpr-checkbox { + padding-left: 0; + padding-right: 32px; +} +.wpr-checkbox [type=checkbox]:not(:checked), +.wpr-checkbox [type=checkbox]:checked { + right: -9999px; +} +.wpr-checkbox [type=checkbox]:not(:checked) + label:before, +.wpr-checkbox [type=checkbox]:checked + label:before { + left: inherit; + right: 0; +} +.wpr-checkbox [type=checkbox]:not(:checked) + label:after, +.wpr-checkbox [type=checkbox]:checked + label:after { + left: inherit; + right: 2px; +} + +.wpr-radio { + padding-left: 0; + padding-right: 88px; +} +.wpr-radio [type=checkbox]:not(:checked), +.wpr-radio [type=checkbox]:checked { + right: -9999px; +} +.wpr-radio [type=checkbox]:not(:checked) + label:before, +.wpr-radio [type=checkbox]:checked + label:before { + left: inherit; + right: 0; +} +.wpr-radio [type=checkbox]:not(:checked) + label:after, +.wpr-radio [type=checkbox]:checked + label:after { + left: inherit; + right: 3px; +} +.wpr-radio [type=checkbox]:checked + label:after { + right: 33px; +} +.wpr-radio [type=checkbox]:checked + label .wpr-radio-ui, +.wpr-radio [type=checkbox]:not(:checked) + label .wpr-radio-ui:before, +.wpr-radio [type=checkbox]:checked + label .wpr-radio-ui:after { + right: 4px; +} +.wpr-radio [type=checkbox]:not(:checked) + label .wpr-radio-ui:before { + right: 27px; +} +.wpr-radio--reverse { + padding-left: 0; + padding-right: 72px; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label:before, +.wpr-radio--reverse [type=checkbox]:checked + label:before { + right: 0; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label:after, +.wpr-radio--reverse [type=checkbox]:checked + label:after { + right: 33px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:checked + label:after { + right: 3px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:checked + label .wpr-radio-ui, +.wpr-radio--reverse [type=checkbox]:not(:checked) + label .wpr-radio-ui:before, +.wpr-radio--reverse [type=checkbox]:checked + label .wpr-radio-ui:after { + right: 15px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label .wpr-radio-ui:before { + right: 6px; + left: inherit; +} + +.wpr-multiple .wpr-button { + margin-right: 16px; + margin-left: 0; +} +.wpr-multiple-close { + margin-right: 0; + margin-left: 16px; +} + +.wpr-addon .wpr-flex > div { + text-align: right; +} +.wpr-addon .wpr-addon-text { + margin-left: inherit; + margin-right: 32px; +} +@media (max-width: 1239px) { + .wpr-addon .wpr-addon-text { + margin-right: 16px; + } +} +@media (max-width: 1083px) { + .wpr-addon .wpr-addon-text { + margin-right: 32px; + } +} +@media (max-width: 783px) { + .wpr-addon .wpr-addon-text { + margin-right: 0; + } +} + +.wpr-tools-col:first-child { + padding-right: 72px; + padding-left: 24px; +} +.wpr-tools-col:last-child { + text-align: left; +} +@media (max-width: 783px) { + .wpr-tools-col:last-child { + text-align: right; + } +} +.wpr-tools-label:before { + left: inherit; + right: 0; +} + +.wpr-field .wpr-flex--egal > div:last-child { + text-align: left; +} +.wpr-field-list li:before { + display: inline-block; + margin-right: 0; + margin-left: 8px; +} +.wpr-field--split { + padding-right: 0; +} +.wpr-field--split + .wpr-field--split { + padding-left: 0; + padding-right: 16px; +} +.wpr-field--children { + padding-left: 0; + padding-right: 32px; +} +.wpr-field--children.wpr-field--textarea { + padding-left: 80px; + padding-right: 32px; +} +@media (max-width: 1239px) { + .wpr-field--children.wpr-field--textarea { + padding-left: 32px; + padding-right: 0; + } +} +@media (max-width: 783px) { + .wpr-field--children.wpr-field--textarea { + padding-left: 0; + } +} +.wpr-field--children.no-space { + padding-right: 0; +} +.wpr-field--checkbox .wpr-field-description { + margin-left: 0; + margin-right: 32px; +} +.wpr-field--radio .wpr-field-description { + margin-left: 0; + margin-right: 88px; +} + +.wpr-adblock img { + margin-right: 0; + margin-left: 16px; +} +.wpr-adblock-close { + right: inherit; + left: 24px; +} + +.wpr-notice { + background-position: 10% bottom; +} +.wpr-notice-container { + padding: 24px 40px 24px 25%; +} +.wpr-notice-close { + right: inherit; + left: 24px; +} \ No newline at end of file diff --git a/assets/css/wpr-admin-rtl.min.css b/assets/css/wpr-admin-rtl.min.css new file mode 100644 index 0000000000..8eade54912 --- /dev/null +++ b/assets/css/wpr-admin-rtl.min.css @@ -0,0 +1 @@ +.wpr-wrap{margin:0 -20px 0 0}#hs-beacon iframe:nth-child(1){right:inherit !important;left:18px !important}#hs-beacon iframe:nth-child(2){right:inherit !important;left:6px !important}.wpr-Page-col--fixed{margin-left:0;margin-right:24px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-right:0}}.wpr-Content{border:1px solid #e0e4e9;border-right:none}.wpr-Content-tips{right:unset;left:24px}.wpr-Sidebar-notice{border:1px solid #e8ebee;border-right:2px solid #1eadbf}.wpr-Sidebar .wpr-Sidebar-info h4{padding-left:inherit;padding-right:56px}.wpr-menuItem{padding:16px 20px 18px 44px}.wpr-menuItem:before{right:inherit !important;left:18px !important}.wpr-menuItem:after{border-width:12px 0 12px 10px;border-color:transparent transparent transparent #fff;left:0;right:inherit;transform:translateX(-12px)}.wpr-menuItem:hover{transform:translateX(0)}.wpr-menuItem.wpr-subMenuItem{padding:10px 25px 8px 20px}.wpr-sectionHeader:before{left:inherit;right:0}.wpr-sectionHeader .wpr-title1:before{margin-left:24px;margin-right:0}.wpr-optionHeader .wpr-title2{padding-right:0;padding-left:40px}.wpr-infoAction:before{right:-26px}.wpr-fieldWarning{padding:16px 56px 24px 16px}.wpr-fieldWarning:after{left:inherit;right:20px}.wpr-fieldWarning:before{left:inherit;right:-16px}.wpr-fieldWarning-title:before{left:inherit;right:-40px}.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:inherit;right:40px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:8px;padding-left:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:0;padding-right:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:0;margin-right:-24px;padding-left:0;padding-right:30px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:8px;padding-left:25px}}.wpr-checkbox{padding-left:0;padding-right:32px}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{right:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{left:inherit;right:0}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{left:inherit;right:2px}.wpr-radio{padding-left:0;padding-right:88px}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{right:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:inherit;right:0}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{left:inherit;right:3px}.wpr-radio [type=checkbox]:checked+label:after{right:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{right:4px}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:27px}.wpr-radio--reverse{padding-left:0;padding-right:72px}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:15px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:6px;left:inherit}.wpr-multiple .wpr-button{margin-right:16px;margin-left:0}.wpr-multiple-close{margin-right:0;margin-left:16px}.wpr-addon .wpr-flex>div{text-align:right}.wpr-addon .wpr-addon-text{margin-left:inherit;margin-right:32px}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-right:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-right:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-right:0}}.wpr-tools-col:first-child{padding-right:72px;padding-left:24px}.wpr-tools-col:last-child{text-align:left}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:right}}.wpr-tools-label:before{left:inherit;right:0}.wpr-field .wpr-flex--egal>div:last-child{text-align:left}.wpr-field-list li:before{display:inline-block;margin-right:0;margin-left:8px}.wpr-field--split{padding-right:0}.wpr-field--split+.wpr-field--split{padding-left:0;padding-right:16px}.wpr-field--children{padding-left:0;padding-right:32px}.wpr-field--children.wpr-field--textarea{padding-left:80px;padding-right:32px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-left:32px;padding-right:0}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-left:0}}.wpr-field--children.no-space{padding-right:0}.wpr-field--checkbox .wpr-field-description{margin-left:0;margin-right:32px}.wpr-field--radio .wpr-field-description{margin-left:0;margin-right:88px}.wpr-adblock img{margin-right:0;margin-left:16px}.wpr-adblock-close{right:inherit;left:24px}.wpr-notice{background-position:10% bottom}.wpr-notice-container{padding:24px 40px 24px 25%}.wpr-notice-close{right:inherit;left:24px} \ No newline at end of file diff --git a/assets/css/wpr-admin.css b/assets/css/wpr-admin.css index 14b934f3de..6e640855ed 100755 --- a/assets/css/wpr-admin.css +++ b/assets/css/wpr-admin.css @@ -1 +1,2807 @@ -h1,h2,h3,h4{color:currentColor;margin:0;font-weight:normal}button{padding:0;border:none;background:none;cursor:pointer}a{color:currentColor;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}a:hover{color:currentColor}input[type=submit]{cursor:pointer;border:none}a:active,button:active{outline:none}a:focus,button:focus{color:currentColor;box-shadow:none}.wpr-wrap{padding:16px;margin:0 0 0 -20px}@media(max-width: 783px){.wpr-wrap{padding:0;margin:0 0 0 -10px}}.wpr-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeQuality;text-rendering:optimizeLegibility;display:flex;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-body *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media(max-width: 783px){#hs-beacon{display:none !important}}.wpr-u-flex{display:flex;align-items:center;justify-content:center}@font-face{font-family:"wpr-icomoon";src:url("../fonts/icomoon.eot");src:url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"),url("../fonts/icomoon.woff") format("woff"),url("../fonts/icomoon.ttf") format("truetype"),url("../fonts/icomoon.svg#icomoon") format("svg");font-weight:normal;font-style:normal}[class^=wpr-icon-]:before,[class*=" wpr-icon-"]:after,[class^=wpr-icon-]:after,[class*=" wpr-icon-"]:before,[id^=wpr-nav-]:before,[id*=" wpr-nav-"]:after,[id^=wpr-nav-]:after,[id*=" wpr-nav-"]:before{font-family:"wpr-icomoon";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class^=wpr-icon-] span.hidden,[class*=" wpr-icon-"] span.hidden{display:inline-block;height:0;width:0;overflow:hidden}.wpr-icon-chevron-right:before{content:""}.wpr-icon-chevron-left:before{content:"";transform:rotate(180deg)}.wpr-icon-chevron-down:before{content:"";transform:scale(0.6)}.wpr-icon-chevron-up:before{content:"";top:50%;transform:translateY(-50%) scale(0.6)}.wpr-icon-rollback:before{content:""}.wpr-icon-addon:before,.wpr-addonSubMenuItem:before{content:""}.wpr-icon-addons:before,#wpr-nav-addons:before{content:""}.wpr-icon-book:before{content:""}.wpr-icon-cdn:before,#wpr-nav-page_cdn:before{content:""}.wpr-icon-database:before,#wpr-nav-database:before{content:""}.wpr-icon-export:before{content:""}.wpr-icon-files:before,#wpr-nav-cache:before{content:""}.wpr-icon-help:before{content:""}.wpr-icon-home:before,#wpr-nav-dashboard:before{content:""}.wpr-icon-import:before{content:""}.wpr-icon-important:before{content:""}.wpr-icon-information:before{content:""}.wpr-icon-information2:before{content:""}.wpr-icon-interrogation:before{content:""}.wpr-icon-media:before,#wpr-nav-media:before{content:""}.wpr-icon-plus:before{content:""}.wpr-icon-refresh:before,#wpr-nav-preload:before{content:""}.wpr-icon-rules:before,#wpr-nav-advanced_cache:before{content:""}.wpr-icon-stack:before,#wpr-nav-file_optimization:before{content:""}.wpr-icon-tools:before,#wpr-nav-tools:before{content:""}.wpr-icon-trash:before{content:""}.wpr-icon-user:before{content:""}.wpr-icon-check:before{content:""}.wpr-icon-check2:before{content:""}.wpr-icon-close:before{content:""}.wpr-icon-heartbeat:before,#wpr-nav-heartbeat:before{content:url("../img/heartbeat.svg")}.wpr-icon-heartbeat-hover:before,#wpr-nav-heartbeat.isActive:before,#wpr-nav-heartbeat:hover:before{content:url("../img/heartbeat-hover.svg")}.wpr-icon-imagify:before,#wpr-nav-imagify:before{content:url("../img/imagify.svg")}.wpr-icon-imagify-hover:before,#wpr-nav-imagify.isActive:before,#wpr-nav-imagify:hover:before{content:url("../img/imagify-hover.svg")}.wpr-icon-tutorial:before,#wpr-nav-tutorials:before{content:url("../img/play.svg")}.wpr-icon-tutorial-hover:before,#wpr-nav-tutorials.isActive:before,#wpr-nav-tutorials:hover:before{content:url("../img/play-hover.svg")}.wpr-icon-tutorial-alt:before{content:url("../img/play-alt.svg")}.wpr-title1{font-size:1.625rem;line-height:1;font-weight:600;letter-spacing:.01em}.wpr-title2{font-size:1rem;line-height:1.5;font-weight:bold;letter-spacing:-0.02em}.wpr-title3,.wpr-select label,.wpr-select select,.wpr-field--radio label{font-size:0.875rem;line-height:1.7142857143;font-weight:bold;letter-spacing:-0.011em}.wpr-Header{display:flex;flex-direction:column;flex:0 0 225px}@media(max-width: 783px){.wpr-Header{flex:0 0 50px}}.wpr-Header-logo{padding:32px 0 24px;text-align:center}@media(max-width: 783px){.wpr-Header-logo{padding:16px 0 8px}}@media(max-width: 783px){.wpr-Header-logo-desktop{display:none}}.wpr-Header-logo-mobile{display:none}@media(max-width: 783px){.wpr-Header-logo-mobile{display:inline-block}}.wpr-Header-footer{margin-top:auto;padding:48px 20px 0;font-size:0.6875rem;line-height:4.3636363636;color:#666;opacity:.6;font-weight:bold}@media(max-width: 783px){.wpr-Header-footer{display:none}}.wpr-Sidebar{position:relative;display:none;flex:0 0 290px;padding:24px 16px}@media(max-width: 1239px){.wpr-Sidebar{flex:0 0 260px}}@media(max-width: 1083px){.wpr-Sidebar{display:none !important}}.wpr-Sidebar-title{margin-bottom:32px}.wpr-Sidebar-notice{padding:8px 16px;margin-bottom:16px;background:#fff;border:1px solid #e8ebee;border-left:2px solid #1eadbf;border-radius:0 3px 3px 0;color:#666}.wpr-Sidebar-notice p{margin:0}.wpr-Sidebar-notice-link{display:inline-block;margin-top:8px;font-size:0.6875rem;line-height:1.8181818182;color:#02707f;letter-spacing:-0.05em;text-transform:uppercase;text-decoration:none;font-weight:bold}.wpr-Sidebar-notice-link:hover,.wpr-Sidebar-notice-link:focus{color:#40bacb}.wpr-Sidebar-info{padding:16px;background:#ebfaf5;margin-bottom:16px;border-radius:3px}.wpr-Sidebar-info h4{padding-left:48px;font-weight:500}.wpr-Sidebar-info p{margin:8px 0 0;font-size:0.6875rem;line-height:1.4545454545;color:#666}.wpr-Sidebar-info i{position:absolute;display:block;margin-top:-1px;width:40px;height:40px;color:#00a66b;font-size:1.0625rem;line-height:2.3529411765;background:#c6f0de;border-radius:3px;text-align:center}.wpr-Content{position:relative;background:#fff;padding:32px 24px;flex:1 1 auto;max-width:1230px}@media(max-width: 783px){.wpr-Content{padding:24px 16px}}.wpr-Content form>input:last-child{margin-top:24px;color:#fff !important}.wpr-Content.isNotFull{max-width:960px}.wpr-Content-tips{position:absolute;top:48px;right:24px;font-weight:bold;color:#666}@media(max-width: 1083px){.wpr-Content-tips{display:none !important}}.wpr-Page{margin-bottom:32px}.wpr-Page-row{display:flex;flex-direction:row}@media(max-width: 1239px){.wpr-Page-row{flex-direction:column}}.wpr-Page-col{flex:1 1 auto}.wpr-Page-col--fixed{margin-left:24px;flex:0 0 325px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-left:0}}.wpr-Page#dashboard #wpr-action-refresh_account:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isHidden:before{opacity:0}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isShown:before{opacity:1}@keyframes loading{from{transform:rotate(0)}to{transform:rotate(360deg)}}.wpr-Page#dashboard .wpr-documentation{margin-top:98px;padding:43px 16px}@media(max-width: 1239px){.wpr-Page#dashboard .wpr-documentation{margin-top:40px}}.wpr-Page#dashboard .wpr-documentation .wpr-button{margin-top:8px}.wpr-Page#dashboard .wpr-documentation i{font-size:3.375rem;line-height:1}.wpr-Page#dashboard .wpr-radio{padding-left:72px}.wpr-Page#dashboard .wpr-field--radio{padding:16px 8px}.wpr-Page#dashboard .wpr-field--radio:first-child{padding-top:0}.wpr-Page#dashboard .wpr-field--radio:last-child{padding-bottom:0}.wpr-Page#dashboard .wpr-field--radio .wpr-field-description{font-style:normal;color:#666;margin-left:72px}.wpr-Page#dashboard .wpr-field-account{padding-bottom:0}.wpr-Page#dashboard .wpr-infoAccount{font-weight:bold;margin-left:8px;color:#444}.wpr-Page#dashboard .wpr-infoAccount:before{content:"";position:relative;display:inline-block;width:13px;height:13px;background:#e0e4e9;border-radius:50%;color:#fff;margin-right:6px;text-align:center;top:2px;font-size:0.5rem;line-height:1.625}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid{color:#00a66b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid:before{content:"";font-family:"wpr-icomoon";speak:none;background:#3ece9d;top:-1px}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid{color:#d60e5b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid:before{content:"!";font-weight:bold;font-size:0.625rem;line-height:1.3;speak:none;background:#d33f49;top:-1px}.wpr-Page#dashboard #wpr-account-data:before{content:none}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Popin{display:none;position:fixed;width:772px;height:auto;top:50%;left:50%;background:#fff;border-radius:3px;transform:translateX(-50%) translateY(-50%);z-index:100000}.wpr-Popin-overlay{display:none;position:fixed;opacity:0;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.8);z-index:99999}.wpr-Popin-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 32px;background:#2d1656;color:#fff;font-weight:600}.wpr-Popin-close{color:#665090;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-Popin-close:hover,.wpr-Popin-close:focus{color:#fff;outline:none}.wpr-Popin-content{padding:8px 32px;color:#666}.wpr-Popin-flex{display:flex;flex-direction:row;align-items:center}.wpr-Popin-flex div{margin-left:32px}.wpr-Popin p{margin:16px 0}.wpr-Popin .wp-rocket-data-table{padding:12px 24px;background:#f2f3f6 !important;border:none}.wpr-Popin .wp-rocket-data-table td{width:50%;color:#121116;padding:8px 0;padding-left:4px;border-bottom:1px solid #c2cad4}.wpr-Popin .wp-rocket-data-table td:not(.column-primary){font-family:"Monaco";font-size:0.75rem;line-height:1.6666666667;color:#666;letter-spacing:-0.01em}.wpr-Popin .wp-rocket-data-table tr{background:#f2f3f6;border-bottom:1px solid #e0e4e9}.wpr-Popin .wp-rocket-data-table tr:last-child td{border-bottom:none}.wpr-Popin .wp-rocket-data-table strong{font-weight:500}.wpr-Popin .wp-rocket-data-table em{font-style:normal}.wpr-Popin .wp-rocket-data-table code{padding:0;margin:0;background:transparent}.wpr-rocketcdn-cta-small{border-radius:5px;margin:24px 0;padding:16px}.wpr-rocketcdn-cta-small.wpr-isHidden{display:none}.wpr-rocketcdn-cta-small .notice-title{font-weight:700}.wpr-rocketcdn-cta-small .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta-small .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta{margin:10px 0;position:relative}.wpr-rocketcdn-cta.wpr-isHidden{display:none}.wpr-rocketcdn-cta-close{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(255,255,255,.5)}.wpr-rocketcdn-cta-close--no-promo{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(0,0,0,.5)}.wpr-rocketcdn-cta-close--no-promo:before{content:"✕";font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta-close:before{content:"✕";color:#121116;font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo{background:#ffd147;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px 48px 16px 16px}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-title{font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-date{margin:0;font-weight:500;font-size:1rem;line-height:1.5}.wpr-rocketcdn-cta-subtitle{color:#444;margin-top:0;font-size:0.875rem;line-height:1.7142857143}.wpr-rocketcdn-cta-content{background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta-content--no-promo{border-top-left-radius:2px;border-top-right-radius:2px;background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta .wpr-rocketcdn-features{margin:0;padding-right:16px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-features{border-right:none}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{background-color:#fff;align-items:center;display:flex;flex-direction:column;padding:16px;padding-bottom:32px;width:33.3333333333%;max-width:219px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{width:auto}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing-regular{color:#72777c;margin-bottom:8px}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-billing-detail{margin-bottom:16px;font-size:1rem;line-height:1.375}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-major{font-weight:700;font-size:3rem;line-height:1.1666666667}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-minor{font-weight:700;vertical-align:top;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-feature{margin:24px 0;min-height:30px;padding-left:62px;position:relative}.wpr-rocketcdn-cta .wpr-rocketcdn-feature:before{position:absolute;top:50%;left:5px;transform:translateY(-50%)}.wpr-rocketcdn-cta .wpr-rocketcdn-bandwidth:before{content:url(../img/bandwidth.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-configuration:before{content:url(../img/configuration.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-automatic:before{content:url(../img/automatic.svg)}.wpr-rocketcdn-cta-footer{color:#121116;font-weight:600;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-cta-footer a{position:relative;padding-left:22px}.wpr-rocketcdn-cta-footer a:before{content:"";position:absolute;width:14px;height:15px;background:url("../img/icon-i-circle.svg") no-repeat center center;top:3px;left:0}.wpr-rocketcdn-cta-promo-footer{color:#121116;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-subscription{text-align:end}.wpr-rocketcdn-subscription .wpr-rocketcdn-open{color:#666;text-decoration:underline}.wpr-license-upgrade-button{font-weight:bold;text-decoration:underline}.wpr-license-upgrade-button:hover{text-decoration:none}.wpr-field.wpr-field-account .wpr-flex{align-items:flex-start}.wpr-infoAccount-License{flex:1 0 60%;margin-right:16px}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div{width:100%}}.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:left}}.wpr-Popin-Upgrade .wpr-Popin-content{padding-bottom:32px}.wpr-Popin-Upgrade .wpr-Popin-flex{justify-content:space-between}.wpr-Popin-Upgrade .wpr-Popin-flex>div{align-items:center;border:1px solid #dadada;border-radius:24px;display:flex;flex-direction:column;margin:0 16px 0 0;padding:24px;text-align:center;width:50%}.wpr-Popin-Upgrade .wpr-Popin-flex>div:last-child{margin-right:0}@media(max-width: 783px){.wpr-Popin-Upgrade .wpr-Popin-flex>div{margin:0;width:100%}}.wpr-Upgrade-Plus .wpr-upgrade-title::before{content:url(../img/plus.svg);display:block;width:117px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}.wpr-Upgrade-Infinite .wpr-upgrade-title::before{content:url(../img/infinite.svg);display:block;width:48px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}div.wpr-upgrade-saving{background:#ffd147;border-radius:44px;color:#121116;font-weight:bold;margin:0 0 24px 0;padding:8px 16px;text-align:center}.wpr-upgrade-title{color:#f56f46;font-size:1.875rem;line-height:1.2;margin-bottom:16px;padding-top:55px;position:relative}div.wpr-upgrade-prices{color:#121116;font-size:3rem;line-height:1;font-weight:bold;margin:0 0 16px 0}.wpr-upgrade-price-symbol{font-size:1.875rem;line-height:1;vertical-align:super}.wpr-upgrade-price-regular{color:#72777c;font-size:1rem;line-height:1;vertical-align:top}div.wpr-upgrade-websites{color:#121116;font-size:0.875rem;line-height:1;font-weight:bold;margin:0 0 24px 0}.wpr-upgrade-link{background:#fff;border:1px solid #f56f46;border-radius:800px;color:#f56f46;display:block;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.wpr-upgrade-link:hover{background:#f56f46;color:#fff}.wpr-upgrade-link::after{content:"→";font-weight:normal;margin-left:8px}.rocket-promo-banner{background:#ffd147;display:flex;justify-content:space-around;margin-top:16px;padding:24px;position:relative}@media(max-width: 783px){.rocket-promo-banner{flex-flow:column}}.rocket-promo-banner>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-promo-banner>div{width:100%}}.rocket-promo-title{font-weight:bold;margin-bottom:24px}.rocket-promo-discount{background:#fff;border-radius:44px;display:inline-block;margin-right:8px;padding:8px 16px;text-transform:uppercase}.rocket-promo-message,.rocket-promo-deal{font-size:1rem;line-height:1.5;margin-bottom:0}.rocket-promo-deal{margin-top:8px}.rocket-promo-cta-block{align-items:center;margin-right:24px}.rocket-promo-countdown{display:flex;flex-flow:row wrap;width:66%}.rocket-promo-countdown>.rocket-countdown-item{background:#fff;border-radius:8px;flex:1;margin-right:8px;padding:8px;text-align:center}.rocket-promo-countdown>.rocket-countdown-item>.rocket-countdown-value{display:block;font-size:1.5rem;line-height:1;font-weight:bold}.rocket-promo-cta{background:#172153;border-radius:44px;color:#fff;font-weight:bold;padding:16px 32px}.rocket-renewal-banner{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-evenly;margin-top:16px;padding:8px}.rocket-renewal-expired-banner{background:#ffd147;margin-top:16px;padding:24px;position:relative}.rocket-renewal-expired-banner-container{display:flex;justify-content:space-around}@media(max-width: 783px){.rocket-renewal-expired-banner-container{flex-flow:column}}.rocket-renewal-expired-banner-container>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-renewal-expired-banner-container>div{width:100%}}.rocket-renew-message{margin:0 16px}.rocket-renew-message>p{font-size:0.875rem;line-height:1.5}.rocket-expired-message>p{font-size:0.875rem;line-height:1.5;padding-left:80px}.rocket-expired-title{font-size:1.375rem;line-height:1.5;font-weight:bold}.rocket-expired-title::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle}.rocket-expired-cta-container{justify-content:center;align-items:center}.rocket-renew-cta{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.rocket-renew-cta:hover,.rocket-renew-cta:active,.rocket-renew-cta:focus{color:#fff}.rocket-renew-cta::after{content:"→";font-weight:normal;margin-left:8px}.wpr-menuItem{position:relative;display:block;padding:16px 44px 18px 20px;text-decoration:none;color:#121116;border-top:1px solid #e0e4e9;border-left:2px solid transparent;overflow:hidden;transition:all 100ms ease-out;-webkit-transition:all 100ms ease-out}@media(max-width: 783px){.wpr-menuItem{width:57px;height:50px;padding:0}}.wpr-menuItem:before{position:absolute;top:calc(50% - 12px);right:18px;text-align:center;font-size:1.4375rem;line-height:1;color:#121116;opacity:.4;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-menuItem:hover,.wpr-menuItem.isActive{color:#121116;background:#fff;border-left:2px solid #f56640}.wpr-menuItem:hover .wpr-menuItem-title,.wpr-menuItem.isActive .wpr-menuItem-title{color:#f56640}.wpr-menuItem:hover:before,.wpr-menuItem.isActive:before{color:#f56640;opacity:1}.wpr-menuItem:focus{color:#121116}.wpr-menuItem:focus:before{color:#121116}.wpr-menuItem-title{font-size:0.8125rem;line-height:1.4615384615;font-weight:bold;letter-spacing:-0.08px;text-transform:uppercase;color:#121116}@media(max-width: 783px){.wpr-menuItem-title{display:none !important}}.wpr-menuItem-description{margin-top:2px;color:#72777c;font-size:0.8125rem;line-height:1.2307692308;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}@media(max-width: 783px){.wpr-menuItem-description{display:none}}.wpr-menuItem.wpr-subMenuItem{display:none;padding:10px 20px 8px 25px}@media(max-width: 783px){.wpr-menuItem.wpr-subMenuItem{padding:8px 20px 8px 23px;height:35px}}.wpr-menuItem.wpr-subMenuItem .wpr-menuItem-title{display:inline-block;font-size:0.8125rem;line-height:1.8461538462;text-transform:inherit;font-weight:600}.wpr-menuItem.wpr-subMenuItem:before{position:relative;display:inline-block;top:2px;right:2px;margin-right:8px;font-size:1rem;line-height:1}#wpr-nav-cache:before{right:20px}#wpr-nav-tools:before{right:20px}.wpr-sectionHeader{position:relative;border-bottom:1px solid #e0e4e9;padding-bottom:24px}.wpr-sectionHeader:before{content:"";position:absolute;display:block;width:48px;height:2px;bottom:-1px;left:0;background:#f56640}.wpr-sectionHeader .wpr-title1{line-height:48px}.wpr-sectionHeader .wpr-title1:before{display:inline-block;width:48px;height:48px;margin-right:24px;background:#fde0d9;color:#f56640;text-align:center;border-radius:3px}.wpr-sectionHeader-title{margin-top:8px;padding-left:72px}.wpr-sectionHeader-description{color:#666;margin-top:8px;padding-left:72px}.wpr-sectionHeader-logo{vertical-align:top;margin-right:24px}.wpr-optionHeader{position:relative;display:flex;justify-content:space-between;margin-top:48px;padding-bottom:9px;border-bottom:1px solid #e0e4e9}.wpr-optionHeader .wpr-title2{line-height:24px;color:#f56640;padding-right:40px}.wpr-optionHeader .wpr-infoAction{margin-right:8px}.wpr-optionHeader.wpr-isHidden{display:none}.wpr-fieldsContainer{margin-top:8px}.wpr-fieldsContainer-description{color:#666}.wpr-fieldsContainer-description a:hover,.wpr-fieldsContainer-description a:focus{color:#1eadbf}.wpr-fieldsContainer-fieldset{margin-top:16px;background:#f9fafb;padding:16px;border:1px solid #e8ebee;border-radius:2px}.wpr-fieldsContainer-fieldset--split{display:flex}.wpr-fieldsContainer-fieldset--split .wpr-field+.wpr-field{border:none}.wpr-fieldsContainer-fieldset--split .wpr-field{flex:0 0 50%;padding:0}.wpr-fieldsContainer-fieldset--split .wpr-field:first-child{padding-right:15px}.wpr-fieldsContainer-fieldset--split .wpr-field:last-child{padding-left:15px}.wpr-fieldsContainer-helper{margin-top:16px;color:#d60e5b;font-weight:500}.wpr-fieldsContainer-helper:before{position:relative;top:3px;font-size:1.125rem;line-height:1;margin-right:4px}.wpr-fieldsContainer.wpr-isHidden{display:none}.wpr-infoAction{position:relative;height:24px;font-size:0.8125rem;line-height:1.8461538462;vertical-align:middle;letter-spacing:-0.03em;font-weight:500;color:#666;white-space:nowrap;text-decoration:none;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out}.wpr-infoAction:before{position:absolute;margin-left:-26px;font-size:1.125rem;line-height:1.3333333333;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-infoAction--help{text-transform:uppercase;color:#02707f;font-weight:bold;font-size:0.75rem;line-height:2;letter-spacing:0}@media(max-width: 783px){.wpr-infoAction--help{display:none}}.wpr-infoAction--help:before{color:#1eadbf}.wpr-infoAction:hover,.wpr-infoAction:focus{color:#f56640;outline:none}.wpr-infoAction:hover:before,.wpr-infoAction:focus:before{color:#ffa58b}.wpr-button{position:relative;display:inline-block;width:auto;padding:8px 24px;text-align:center;background:#f56640;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08);text-transform:uppercase;text-decoration:none;letter-spacing:-0.08px;font-weight:bold;border-radius:4px;color:#fff !important;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out;font-size:0.8125rem;line-height:1.5384615385}.wpr-button:hover,.wpr-button:focus{color:#fff !important;transform:translateY(-2px);box-shadow:0 7px 14px rgba(50,50,93,.25),0 3px 6px rgba(0,0,0,.2)}.wpr-button--small{padding:5px 0;letter-spacing:-0.08px;font-size:0.6875rem;line-height:1.8181818182}.wpr-button--icon{min-width:160px;padding-left:8px;padding-right:40px;text-align:left}.wpr-button--icon:before{position:absolute;right:8px;font-size:0.9375rem;line-height:1.3333333333}.wpr-button--fixed{position:fixed;display:flex;padding:8px 16px;right:24px;bottom:32px;border-radius:16px}.wpr-button--fixed:before{font-size:1.125rem;line-height:1;margin-right:8px}.wpr-button--purple{background:#2d1656}.wpr-button--blue{min-width:inherit;background:#1eadbf}.wpr-button--lightBlue{min-width:inherit;background:#40bacb}.wpr-button--red{background:#d33f49}.wpr-button--gray{background:#e0e4e9;color:#121116 !important}.wpr-button--gray:hover,.wpr-button--gray:active,.wpr-button--gray:focus{color:#121116 !important}.wpr-button--gray.radio-active{background:#2d1656 !important;color:#fff !important}.wpr-button--gray.radio-active:hover,.wpr-button--gray.radio-active:active,.wpr-button--gray.radio-active:focus{color:#fff !important}.wpr-button--blueDark{background:#02707f}.wpr-button:focus{outline:none;color:#fff !important}.wpr-field{padding:16px 0;transition:opacity 150ms ease-out;-webkit-transition:opacity 150ms ease-out}.wpr-field+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9}.wpr-field:first-child{padding-top:0}.wpr-field:last-child{padding-bottom:0}.wpr-field-description{margin-top:4px;color:#666;font-size:0.8125rem;line-height:1.5384615385}.wpr-field-description .wpr-js-popin{color:#444;text-decoration:underline}.wpr-field-description .wpr-js-popin:hover,.wpr-field-description .wpr-js-popin:focus{color:#1eadbf}.wpr-field-description a:hover,.wpr-field-description a:focus{color:#1eadbf}.wpr-field-description-helper{color:#00a66b}.wpr-field-description-label{font-size:0.875rem;line-height:1.4285714286;font-weight:500;color:#666}.wpr-field-list{margin:0;color:#666;font-weight:500}.wpr-field-list li+li{margin-top:16px}.wpr-field-list li:before{position:relative;top:3px;margin-right:8px;color:#02707f;font-size:1.125rem;line-height:1.1111111111}.wpr-field-list a{text-decoration:none}.wpr-field-list a:hover,.wpr-field-list a:focus{color:#1eadbf}.wpr-field-betweenText{margin:0 16px;font-weight:bold}.wpr-field .wpr-button{margin:8px 0}.wpr-field .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-field .wpr-flex{text-align:left;flex-direction:column}}.wpr-field .wpr-flex--egal>div{flex:0 0 50%}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div{width:100%}}.wpr-field .wpr-flex--egal>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div:last-child{text-align:left}}.wpr-field .wpr-flex--egal>div .wpr-field-description{font-style:normal;color:#666}.wpr-field p{margin-bottom:0}.wpr-field label{font-weight:500}.wpr-field h4{font-size:0.875rem;line-height:1.7142857143}.wpr-field.wpr-isDisabled{opacity:.55}.wpr-field.wpr-isParent{padding-bottom:0;margin-bottom:16px}.wpr-field.wpr-Delayjs{margin-top:16px}.wpr-field.wpr-RemoveUnUsedCss{margin-bottom:0}.wpr-field.wpr-NoPaddingBottom{padding-bottom:0}.wpr-field.wpr-isLastElem{margin-top:16px}.wpr-field.wpr-isHidden{display:none}.wpr-field .wpr-isHidden{display:none}.wpr-field--children{display:none;padding-left:32px}.wpr-field--children.wpr-isOpen{display:block}.wpr-field--children.wpr-field--textarea{padding-right:80px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-right:32px}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-right:0}}.wpr-field--children.no-space{padding-left:0}.wpr-field--checkbox .wpr-field-description{margin-left:32px}.wpr-field--radio{padding:24px 16px}.wpr-field--radio:first-child{padding-top:8px}.wpr-field--radio:last-child{padding-bottom:8px}.wpr-field--radio .wpr-field-description{margin-left:88px}.wpr-field--radio .wpr-field-description button{color:#666}.wpr-field--split{display:inline-block;width:50%;padding-right:16px;padding-bottom:0}.wpr-field--split+.wpr-field--split{padding-left:16px;padding-right:0}.wpr-field--split+.wpr-field--split:nth-child(2){padding-top:0;border-top:none}.wpr-field--cache .wpr-field--number,.wpr-field--cache .wpr-field--select{display:inline-block;padding-top:0;width:auto;padding-bottom:0;font-weight:bold}.wpr-field--cache .wpr-field--select{position:relative;padding-left:8px;top:-2px;border-top:none}.wpr-field--cache .wpr-field--number .wpr-text input[type=number]{background:#f2f3f6;height:35px;border:1px solid #e0e4e9;font-family:inherit;font-size:1em}.wpr-field--cache .wpr-field-description{margin:8px 0;color:#00a66b}.wpr-field--cache .wpr-field-description-label{color:#121116}.wpr-field--textarea .wpr-field-description pre{background:rgba(0,0,0,.07);padding:1em;margin:1em 0 0;white-space:normal}.wpr-field--textarea .wpr-field-description pre code{background:transparent;-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;color:#121116}.wpr-fieldWarning{display:none;position:relative;padding:16px 16px 24px 56px;background:#19073b;margin:8px 0 0;color:#fff}.wpr-fieldWarning.wpr-isOpen{display:block}.wpr-fieldWarning:after{content:"";position:absolute;display:block;top:-8px;left:20px;width:0;height:0;border-style:solid;border-width:0 12px 8px 12px;border-color:transparent transparent #19073b transparent}.wpr-fieldWarning:before{content:"";position:absolute;display:block;width:calc(100% + 32px);height:100%;top:0;left:-16px;background:#19073b}.wpr-fieldWarning-title{position:relative;color:#f56640;font-size:0.875rem;line-height:1.4285714286;font-weight:bold}.wpr-fieldWarning-title:before{position:absolute;left:-36px;font-size:1.5rem;line-height:.8333333333}.wpr-fieldWarning-description{position:relative;margin-top:8px}.wpr-fieldWarning .wpr-button{margin-top:16px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:40px}.wpr-warningContainer+.wpr-warningContainer,.wpr-warningContainer+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9;padding-top:16px}.wpr-warningContainer+.wpr-warningContainer,.wpr-field+.wpr-warningContainer{padding-bottom:16px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-24px;padding-left:30px;padding-right:0}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:24px}}.wpr-documentation{padding:24px 16px;border-radius:4px;color:#fff;text-align:center;background:#40bacb}.wpr-documentation p{margin:8px 0 16px;font-weight:500}.wpr-documentation i{display:block;font-size:2.25rem;line-height:1;margin-bottom:8px}.wpr-documentation .wpr-button{padding-left:16px;padding-right:16px}.wpr-addon{padding:24px 0}.wpr-addon .wpr-flex{align-items:flex-start}@media(max-width: 783px){.wpr-addon .wpr-flex{align-items:center}}.wpr-addon .wpr-flex>div{text-align:left}.wpr-addon .wpr-addon-title{margin-bottom:16px;font-weight:500}.wpr-addon .wpr-field-description{font-style:normal}.wpr-addon .wpr-addon-logo{text-align:center;flex:0 0 160px}@media(max-width: 1239px){.wpr-addon .wpr-addon-logo{max-width:100px}.wpr-addon .wpr-addon-logo img{width:100%;height:auto}}@media(max-width: 1083px){.wpr-addon .wpr-addon-logo{max-width:160px}}@media(max-width: 783px){.wpr-addon .wpr-addon-logo{flex:0 0 auto;margin-bottom:16px}}.wpr-addon .wpr-addon-text{margin-left:32px;flex:1 1 auto}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-left:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-left:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-left:0}}.wpr-addon .wpr-addon-text a{display:inline-block;margin-top:24px}.wpr-addon .wpr-addon-text .button{margin-top:24px}.wpr-addon .wpr-addon-text .wpr-add-on-helper{font-weight:normal;color:#1eadbf}.wpr-addon .wpr-addon-text .wpr-add-on-helper a{margin-top:0}.wpr-webp-addon .wpr-addon .wpr-addon-text a{margin-top:0px}.wpr-notice{position:relative;color:#444;background:#ebfaf5 url("../img/bg-activated.svg") no-repeat 90% bottom;background-size:350px;margin-top:24px;border-radius:4px;overflow:hidden}.wpr-notice-container{padding:24px 25% 24px 40px}.wpr-notice-supTitle{font-size:1rem;line-height:1.375;font-weight:bold}.wpr-notice-title{font-size:1.5rem;line-height:1.3333333333;color:#3ece9d;margin-top:16px;font-weight:bold}.wpr-notice-description{font-size:0.875rem;line-height:1.5714285714;margin:16px 0 24px}.wpr-notice-continue{color:#666}.wpr-notice-close{position:absolute;top:24px;right:24px;color:#666;text-decoration:none;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-notice-close:hover{color:#444}.wpr-notice-close:focus{outline:none}.wpr-tools{position:relative;display:flex;flex-direction:row;padding:32px 0}@media(max-width: 1239px){.wpr-tools{flex-direction:column}}@media(max-width: 1083px){.wpr-tools{flex-direction:row}}@media(max-width: 783px){.wpr-tools{flex-direction:column}}.wpr-tools:nth-child(2){margin-top:16px}.wpr-tools+.wpr-tools{border-top:1px solid #e0e4e9}.wpr-tools-label{display:block}.wpr-tools-label:before{position:absolute;left:0;margin-top:5px;font-size:2.25rem;line-height:1;color:#f56640}.wpr-tools-col{flex:1 1 auto}.wpr-tools-col:first-child{padding-left:72px;padding-right:24px;min-width:340px}.wpr-tools-col:last-child{text-align:right}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:left}}.wpr-tools .wpr-button{margin-top:24px;white-space:normal}.wpr-tools .wpr-field-description{font-style:normal;color:#666}.wpr-imagify{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:30px}.wpr-imagify-description{width:33.3333333333%;padding-right:60px}@media(max-width: 1239px){.wpr-imagify-description{width:auto;padding-right:0}}.wpr-imagify-screenshot{width:66.6666666667%}@media(max-width: 1239px){.wpr-imagify-screenshot{margin-top:60px;width:auto}}.wpr-imagify-screenshot img{max-width:100%;height:auto}.wpr-imagify-more,.wpr-imagify-name{color:#00a8dc;font-weight:700;margin-bottom:0}.wpr-imagify-more::before{content:"✓";color:#000;font-size:2rem;margin-right:5px}.wpr-imagify p{font-size:1rem}.wpr-imagify p:first-child{margin-top:0}.wpr-imagify ul{margin-top:0;margin-left:40px;list-style-type:">"}.wpr-imagify li{padding-left:7px}.wpr-imagify a{text-decoration:none}.wpr-imagify a:hover{color:#00a8dc}.wpr-imagify .button-primary{background:#2abb9b;border:1px solid #bebebe;box-shadow:none;font-size:1rem;font-weight:700;height:auto;line-height:1;margin-top:60px;padding:20px 45px;text-shadow:none;text-transform:uppercase}.wpr-tutorials-section{display:flex;flex-flow:row wrap}div.wpr-tutorial-item{width:32%;margin-bottom:10px;margin-right:1%}.wpr-tutorial-link{cursor:pointer;transition:color 200ms ease-out}.wpr-tutorial-link:hover{color:#1eadbf}@media(max-width: 1083px){div.wpr-tutorial-item{width:48%}}@media(max-width: 783px){div.wpr-tutorial-item{width:100%}}.wpr-rocketcdn-modal{display:none}.wpr-rocketcdn-modal.is-open{display:block}.wpr-rocketcdn-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center}.wpr-rocketcdn-modal__container{max-width:674px;max-height:100vh;overflow-y:auto;box-sizing:border-box}.wpr-rocketcdn-modal iframe{max-width:100%}.wpr-checkbox{position:relative;padding-left:32px}.wpr-checkbox label{user-select:none}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border:2px solid #444;border-radius:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{content:"";position:absolute;top:5px;left:2px;color:#fff;font-family:"wpr-icomoon";speak:none;font-size:0.875rem;line-height:1.2857142857;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after{opacity:0;transform:scale(2)}.wpr-checkbox [type=checkbox]:checked+label:after{opacity:1;transform:scale(1)}.wpr-checkbox [type=checkbox]:checked+label:before{background:#19073b;border-color:#19073b}.wpr-checkbox [type=checkbox]:checked:focus+label:before{background:#665090;border:2px dotted #665090}.wpr-checkbox [type=checkbox]:focus+label:before{border:2px dotted #444}.wpr-checkbox-warning{color:#d33f49;margin-left:16px}.wpr-checkbox-warning::before{margin-right:8px}.wpr-radio{position:relative;padding-left:88px}.wpr-radio label{user-select:none;font-weight:bold}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before,.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{content:"";position:absolute}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:0;width:52px;height:22px;background:#fff;border-radius:12px;border:1px solid #444;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{width:18px;height:18px;border-radius:100%;background:#444;top:3px;left:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:disabled+label:after,.wpr-radio [type=checkbox]:disabled+label:after{background:#e0e4e9}.wpr-radio [type=checkbox]:disabled+label:before,.wpr-radio [type=checkbox]:disabled+label:before{border:1px solid #e0e4e9}.wpr-radio [type=checkbox]:checked+label:before{border-color:#1eadbf}.wpr-radio [type=checkbox]:checked+label:after{background:#1eadbf;left:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{position:absolute;left:4px;width:52px;text-transform:uppercase;letter-spacing:-0.01em;font-weight:bold;font-size:0.6875rem;line-height:2.1818181818;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{content:attr(data-l10n-inactive);left:27px;color:#666}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{content:attr(data-l10n-active);color:#02707f}.wpr-radio--reverse{padding-right:72px;padding-left:0}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:-2px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:-25px;left:inherit}.wpr-radio [type=checkbox]:not(:checked):focus+label:before{border:1px dashed #444}.wpr-radio [type=checkbox]:checked:focus+label:before{border:1px dashed #1eadbf}.wpr-radio--tips [type=checkbox]:checked+label:before{border-color:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label:after{background:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label .wpr-radio-ui:after{color:#00a66b}.wpr-radio--tips [type=checkbox]:checked:focus+label:before{border:1px dashed #3ece9d}.wpr-select{position:relative}.wpr-select select{margin:0;padding:0 8px;height:36px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;box-shadow:none;border-radius:0;letter-spacing:.011em}.wpr-select select:focus{outline:none;border-color:#444;box-shadow:none}.wpr-select label{font-weight:bold;margin-left:8px}.wpr-textarea{margin-top:8px}.wpr-textarea textarea{padding:8px;width:100%;height:100px;font-family:Monaco;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-size:0.8125rem;line-height:1.2307692308;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-textarea textarea:focus{outline:none;border-color:#444;box-shadow:none}.wpr-textarea+.wpr-field-description{color:#00a66b}.wpr-text label{color:#666}.wpr-text input[type=text],.wpr-text input[type=number]{margin-top:8px;padding:0 8px;width:100%;height:32px;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-family:Monaco;font-size:0.75rem;line-height:1.3333333333;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-text input[type=text]:focus,.wpr-text input[type=number]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-text input[type=text].wpr-isError,.wpr-text input[type=number].wpr-isError{border-color:#d33f49}.wpr-text input[type=number]{width:80px}.wpr-text--number label{margin-right:8px}.wpr-upload input[type=file]{display:block;width:252px;margin:8px 8px 8px 0;padding:8px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;font-size:0.6875rem;line-height:1.4545454545}.wpr-upload input[type=file]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-multiple{display:flex;align-items:center;flex-wrap:wrap}@media(max-width: 783px){.wpr-multiple{align-items:center;flex-direction:column}}.wpr-multiple .wpr-text{flex:1 1 auto;position:relative;top:-2px}@media(max-width: 783px){.wpr-multiple .wpr-text{width:100%}}.wpr-multiple .wpr-button{margin-left:16px;width:auto;min-width:inherit;padding-right:30px}@media(max-width: 783px){.wpr-multiple .wpr-button{margin-left:0}}.wpr-multiple input[type=text]{flex-grow:2}.wpr-multiple select{height:30px}.wpr-multiple-default{margin-right:20px}.wpr-multiple-list{display:none;padding:8px 0;margin:16px 0 0;background:#f2f3f6;border-radius:2px}.wpr-multiple-list li{margin-bottom:0;padding:4px 16px;font-size:0.8125rem;line-height:1.2307692308;font-family:Monaco}.wpr-multiple-list li span{display:inline-block;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-multiple-close{position:relative;top:3px;font-size:1rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-multiple-close:focus{outline:none}.wpr-multiple-close:hover,.wpr-multiple-close:focus{color:#d33f49}.wpr-multiple-close:hover+span,.wpr-multiple-close:focus+span{color:#d33f49} \ No newline at end of file +@charset "UTF-8"; +/*-----------------------------------------------*\ + +Author: Thomas Geisen (www.thomasgeisen.fr) +Method : SUITCSS (modified) + +.ComponentName => Name of component (Ex : .SiteHeader) +.ComponentName--modifierName => Modifier of component (.SiteHeader--white, .SiteHeader--fixed) +.ComponentName-descendantName => Children of componant (.SiteHeader-logo, .SiteHeader-menu) +.ComponentName.isState => State of component (.isActive, .isOpen) + +More informations here : https://suitcss.github.io/ or http://www.alsacreations.com/article/lire/1641-bonnes-pratiques-en-css-bem-et-oocss.html (french) + +--- EVERY CLASS are prefixed with "wpr-" + +\*-----------------------------------------------*/ +h1, +h2, +h3, +h4 { + color: currentColor; + margin: 0; + font-weight: normal; +} + +button { + padding: 0; + border: none; + background: none; + cursor: pointer; +} + +a { + color: currentColor; + transition: color 200ms ease-out; + -webkit-transition: color 200ms ease-out; +} +a:hover { + color: currentColor; +} + +input[type=submit] { + cursor: pointer; + border: none; +} + +a:active, button:active { + outline: none; +} +a:focus, button:focus { + color: currentColor; + box-shadow: none; +} + +.wpr-wrap { + padding: 16px; + margin: 0 0 0 -20px; +} +@media (max-width: 783px) { + .wpr-wrap { + padding: 0; + margin: 0 0 0 -10px; + } +} + +.wpr-body { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + -ms-interpolation-mode: nearest-neighbor; + image-rendering: optimizeQuality; + text-rendering: optimizeLegibility; + display: flex; + color: #121116; + font-size: 0.875rem; + line-height: 1.5; +} + +.wpr-body * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@media (max-width: 783px) { + #hs-beacon { + display: none !important; + } +} +.wpr-u-flex { + display: flex; + align-items: center; + justify-content: center; +} + +/*-----------------------------------------------*\ + + Icons in a font-icon with icomoon (https://icomoon.io/app) + +\*-----------------------------------------------*/ +@font-face { + font-family: "wpr-icomoon"; + src: url("../fonts/icomoon.eot"); + src: url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"), url("../fonts/icomoon.woff") format("woff"), url("../fonts/icomoon.ttf") format("truetype"), url("../fonts/icomoon.svg#icomoon") format("svg"); + font-weight: normal; + font-style: normal; +} +[class^=wpr-icon-]:before, [class*=" wpr-icon-"]:after, +[class^=wpr-icon-]:after, [class*=" wpr-icon-"]:before, +[id^=wpr-nav-]:before, [id*=" wpr-nav-"]:after, +[id^=wpr-nav-]:after, [id*=" wpr-nav-"]:before { + font-family: "wpr-icomoon"; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +[class^=wpr-icon-] span.hidden, +[class*=" wpr-icon-"] span.hidden { + display: inline-block; + height: 0; + width: 0; + overflow: hidden; +} + +.wpr-icon-chevron-right:before { + content: "\e900"; +} + +.wpr-icon-chevron-left:before { + content: "\e900"; + transform: rotate(180deg); +} + +.wpr-icon-chevron-down:before { + content: "\e901"; + transform: scale(0.6); +} + +.wpr-icon-chevron-up:before { + content: "\e902"; + top: 50%; + transform: translateY(-50%) scale(0.6); +} + +.wpr-icon-rollback:before { + content: "\e903"; +} + +.wpr-icon-addon:before, .wpr-addonSubMenuItem:before { + content: "\e904"; +} + +.wpr-icon-addons:before, #wpr-nav-addons:before { + content: "\e905"; +} + +.wpr-icon-book:before { + content: "\e906"; +} + +.wpr-icon-cdn:before, #wpr-nav-page_cdn:before { + content: "\e907"; +} + +.wpr-icon-database:before, #wpr-nav-database:before { + content: "\e908"; +} + +.wpr-icon-export:before { + content: "\e909"; +} + +.wpr-icon-files:before, #wpr-nav-cache:before { + content: "\e90a"; +} + +.wpr-icon-help:before { + content: "\e90b"; +} + +.wpr-icon-home:before, #wpr-nav-dashboard:before { + content: "\e90c"; +} + +.wpr-icon-import:before { + content: "\e90d"; +} + +.wpr-icon-important:before { + content: "\e90e"; +} + +.wpr-icon-information:before { + content: "\e90f"; +} + +.wpr-icon-information2:before { + content: "\e910"; +} + +.wpr-icon-interrogation:before { + content: "\e911"; +} + +.wpr-icon-media:before, #wpr-nav-media:before { + content: "\e912"; +} + +.wpr-icon-plus:before { + content: "\e913"; +} + +.wpr-icon-refresh:before, #wpr-nav-preload:before { + content: "\e914"; +} + +.wpr-icon-rules:before, #wpr-nav-advanced_cache:before { + content: "\e915"; +} + +.wpr-icon-stack:before, #wpr-nav-file_optimization:before { + content: "\e916"; +} + +.wpr-icon-tools:before, #wpr-nav-tools:before { + content: "\e917"; +} + +.wpr-icon-trash:before { + content: "\e918"; +} + +.wpr-icon-user:before { + content: "\e919"; +} + +.wpr-icon-check:before { + content: "\e920"; +} + +.wpr-icon-check2:before { + content: "\e921"; +} + +.wpr-icon-close:before { + content: "\e922"; +} + +.wpr-icon-heartbeat:before, #wpr-nav-heartbeat:before { + content: url("../img/heartbeat.svg"); +} + +.wpr-icon-heartbeat-hover:before, #wpr-nav-heartbeat.isActive:before, #wpr-nav-heartbeat:hover:before { + content: url("../img/heartbeat-hover.svg"); +} + +.wpr-icon-imagify:before, #wpr-nav-imagify:before { + content: url("../img/imagify.svg"); +} + +.wpr-icon-imagify-hover:before, #wpr-nav-imagify.isActive:before, #wpr-nav-imagify:hover:before { + content: url("../img/imagify-hover.svg"); +} + +.wpr-icon-tutorial:before, #wpr-nav-tutorials:before { + content: url("../img/play.svg"); +} + +.wpr-icon-tutorial-hover:before, #wpr-nav-tutorials.isActive:before, #wpr-nav-tutorials:hover:before { + content: url("../img/play-hover.svg"); +} + +.wpr-icon-tutorial-alt:before { + content: url("../img/play-alt.svg"); +} + +.wpr-title1 { + font-size: 1.625rem; + line-height: 1; + font-weight: 600; + letter-spacing: 0.01em; +} + +.wpr-title2 { + font-size: 1rem; + line-height: 1.5; + font-weight: bold; + letter-spacing: -0.02em; +} + +.wpr-title3, .wpr-select label, .wpr-select select, .wpr-field--radio label { + font-size: 0.875rem; + line-height: 1.7142857143; + font-weight: bold; + letter-spacing: -0.011em; +} + +/*-----------------------------------------------*\ + + Header / Navigation (left bar) + +\*-----------------------------------------------*/ +.wpr-Header { + display: flex; + flex-direction: column; + flex: 0 0 225px; +} +@media (max-width: 783px) { + .wpr-Header { + flex: 0 0 50px; + } +} +.wpr-Header-logo { + padding: 32px 0 24px; + text-align: center; +} +@media (max-width: 783px) { + .wpr-Header-logo { + padding: 16px 0 8px; + } +} +@media (max-width: 783px) { + .wpr-Header-logo-desktop { + display: none; + } +} +.wpr-Header-logo-mobile { + display: none; +} +@media (max-width: 783px) { + .wpr-Header-logo-mobile { + display: inline-block; + } +} +.wpr-Header-footer { + margin-top: auto; + padding: 48px 20px 0; + font-size: 0.6875rem; + line-height: 4.3636363636; + color: #666666; + opacity: 0.6; + font-weight: bold; +} +@media (max-width: 783px) { + .wpr-Header-footer { + display: none; + } +} + +/*-----------------------------------------------*\ + + Sidebar (right) + +\*-----------------------------------------------*/ +.wpr-Sidebar { + position: relative; + display: none; + flex: 0 0 290px; + padding: 24px 16px; +} +@media (max-width: 1239px) { + .wpr-Sidebar { + flex: 0 0 260px; + } +} +@media (max-width: 1083px) { + .wpr-Sidebar { + display: none !important; + } +} +.wpr-Sidebar-title { + margin-bottom: 32px; +} +.wpr-Sidebar-notice { + padding: 8px 16px; + margin-bottom: 16px; + background: #fff; + border: 1px solid #E8EBEE; + border-left: 2px solid #1EADBF; + border-radius: 0 3px 3px 0; + color: #666666; +} +.wpr-Sidebar-notice p { + margin: 0; +} +.wpr-Sidebar-notice-link { + display: inline-block; + margin-top: 8px; + font-size: 0.6875rem; + line-height: 1.8181818182; + color: #02707F; + letter-spacing: -0.05em; + text-transform: uppercase; + text-decoration: none; + font-weight: bold; +} +.wpr-Sidebar-notice-link:hover, .wpr-Sidebar-notice-link:focus { + color: #40BACB; +} +.wpr-Sidebar-info { + padding: 16px; + background: #EBFAF5; + margin-bottom: 16px; + border-radius: 3px; +} +.wpr-Sidebar-info h4 { + padding-left: 48px; + font-weight: 500; +} +.wpr-Sidebar-info p { + margin: 8px 0 0; + font-size: 0.6875rem; + line-height: 1.4545454545; + color: #666666; +} +.wpr-Sidebar-info i { + position: absolute; + display: block; + margin-top: -1px; + width: 40px; + height: 40px; + color: #00A66B; + font-size: 1.0625rem; + line-height: 2.3529411765; + background: #C6F0DE; + border-radius: 3px; + text-align: center; +} + +/*-----------------------------------------------*\ + + Main content of the page + +\*-----------------------------------------------*/ +.wpr-Content { + position: relative; + background: #fff; + padding: 32px 24px; + flex: 1 1 auto; + max-width: 1230px; +} +@media (max-width: 783px) { + .wpr-Content { + padding: 24px 16px; + } +} +.wpr-Content form > input:last-child { + margin-top: 24px; + color: #fff !important; +} +.wpr-Content.isNotFull { + max-width: 960px; +} +.wpr-Content-tips { + position: absolute; + top: 48px; + right: 24px; + font-weight: bold; + color: #666666; +} +@media (max-width: 1083px) { + .wpr-Content-tips { + display: none !important; + } +} + +/*-----------------------------------------------*\ + + Page / section + +\*-----------------------------------------------*/ +.wpr-Page { + margin-bottom: 32px; +} +.wpr-Page-row { + display: flex; + flex-direction: row; +} +@media (max-width: 1239px) { + .wpr-Page-row { + flex-direction: column; + } +} +.wpr-Page-col { + flex: 1 1 auto; +} +.wpr-Page-col--fixed { + margin-left: 24px; + flex: 0 0 325px; +} +@media (max-width: 1239px) { + .wpr-Page-col--fixed { + margin-left: 0; + } +} +.wpr-Page#dashboard #wpr-action-refresh_account:before { + transition: all 200ms ease-out; + opacity: 1; + transform: translateY(0); +} +.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isLoading:before { + animation: loading 1.2s infinite; +} +.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isHidden:before { + opacity: 0; +} +.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isShown:before { + opacity: 1; +} +@keyframes loading { + from { + transform: rotate(0); + } + to { + transform: rotate(360deg); + } +} +.wpr-Page#dashboard .wpr-documentation { + margin-top: 98px; + padding: 43px 16px; +} +@media (max-width: 1239px) { + .wpr-Page#dashboard .wpr-documentation { + margin-top: 40px; + } +} +.wpr-Page#dashboard .wpr-documentation .wpr-button { + margin-top: 8px; +} +.wpr-Page#dashboard .wpr-documentation i { + font-size: 3.375rem; + line-height: 1; +} +.wpr-Page#dashboard .wpr-radio { + padding-left: 72px; +} +.wpr-Page#dashboard .wpr-field--radio { + padding: 16px 8px; +} +.wpr-Page#dashboard .wpr-field--radio:first-child { + padding-top: 0; +} +.wpr-Page#dashboard .wpr-field--radio:last-child { + padding-bottom: 0; +} +.wpr-Page#dashboard .wpr-field--radio .wpr-field-description { + font-style: normal; + color: #666666; + margin-left: 72px; +} +.wpr-Page#dashboard .wpr-field-account { + padding-bottom: 0; +} +.wpr-Page#dashboard .wpr-infoAccount { + font-weight: bold; + margin-left: 8px; + color: #444444; +} +.wpr-Page#dashboard .wpr-infoAccount:before { + content: ""; + position: relative; + display: inline-block; + width: 13px; + height: 13px; + background: #E0E4E9; + border-radius: 50%; + color: #fff; + margin-right: 6px; + text-align: center; + top: 2px; + font-size: 0.5rem; + line-height: 1.625; +} +.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid { + color: #00A66B; +} +.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid:before { + content: "\e920"; + font-family: "wpr-icomoon"; + speak: none; + background: #3ECE9D; + top: -1px; +} +.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid { + color: #D60E5B; +} +.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid:before { + content: "!"; + font-weight: bold; + font-size: 0.625rem; + line-height: 1.3; + speak: none; + background: #D33F49; + top: -1px; +} +.wpr-Page#dashboard #wpr-account-data:before { + content: none; +} +.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss:before { + transition: all 200ms ease-out; + opacity: 1; + transform: translateY(0); +} +.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss.wpr-isLoading:before { + animation: loading 1.2s infinite; +} + +/*-----------------------------------------------*\ + + Popin analytics + +\*-----------------------------------------------*/ +.wpr-Popin { + display: none; + position: fixed; + width: 772px; + height: auto; + top: 50%; + left: 50%; + background: #fff; + border-radius: 3px; + transform: translateX(-50%) translateY(-50%); + z-index: 100000; +} +.wpr-Popin-overlay { + display: none; + position: fixed; + opacity: 0; + width: 100%; + height: 100%; + top: 0; + left: 0; + background: rgba(0, 0, 0, 0.8); + z-index: 99999; +} +.wpr-Popin-header { + display: flex; + align-items: center; + justify-content: space-between; + height: 64px; + padding: 0 32px; + background: #2D1656; + color: #fff; + font-weight: 600; +} +.wpr-Popin-close { + color: #665090; + font-size: 1.5rem; + line-height: 1; + transition: color 200ms ease-out; + -webkit-transition: color 200ms ease-out; +} +.wpr-Popin-close:hover, .wpr-Popin-close:focus { + color: #fff; + outline: none; +} +.wpr-Popin-content { + padding: 8px 32px; + color: #666666; +} +.wpr-Popin-flex { + display: flex; + flex-direction: row; + align-items: center; +} +.wpr-Popin-flex div { + margin-left: 32px; +} +.wpr-Popin p { + margin: 16px 0; +} +.wpr-Popin .wp-rocket-data-table { + padding: 12px 24px; + background: #F2F3F6 !important; + border: none; +} +.wpr-Popin .wp-rocket-data-table td { + width: 50%; + color: #121116; + padding: 8px 0; + padding-left: 4px; + border-bottom: 1px solid #c2cad4; +} +.wpr-Popin .wp-rocket-data-table td:not(.column-primary) { + font-family: "Monaco"; + font-size: 0.75rem; + line-height: 1.6666666667; + color: #666666; + letter-spacing: -0.01em; +} +.wpr-Popin .wp-rocket-data-table tr { + background: #F2F3F6; + border-bottom: 1px solid #E0E4E9; +} +.wpr-Popin .wp-rocket-data-table tr:last-child td { + border-bottom: none; +} +.wpr-Popin .wp-rocket-data-table strong { + font-weight: 500; +} +.wpr-Popin .wp-rocket-data-table em { + font-style: normal; +} +.wpr-Popin .wp-rocket-data-table code { + padding: 0; + margin: 0; + background: transparent; +} + +/*-----------------------------------------------*\ + + RocketCDN Banners & CTA + +\*-----------------------------------------------*/ +.wpr-rocketcdn-cta-small { + border-radius: 5px; + margin: 24px 0; + padding: 16px; +} +.wpr-rocketcdn-cta-small.wpr-isHidden { + display: none; +} +.wpr-rocketcdn-cta-small .notice-title { + font-weight: 700; +} +.wpr-rocketcdn-cta-small .wpr-flex { + display: flex; + justify-content: space-between; + align-items: center; +} +@media (max-width: 783px) { + .wpr-rocketcdn-cta-small .wpr-flex { + text-align: start; + flex-direction: column; + } +} + +.wpr-rocketcdn-cta { + margin: 10px 0; + position: relative; +} +.wpr-rocketcdn-cta.wpr-isHidden { + display: none; +} +.wpr-rocketcdn-cta-close { + position: absolute; + top: 16px; + right: 16px; + background: transparent; + border: 0; + color: rgba(255, 255, 255, 0.5); +} +.wpr-rocketcdn-cta-close--no-promo { + position: absolute; + top: 16px; + right: 16px; + background: transparent; + border: 0; + color: rgba(0, 0, 0, 0.5); +} +.wpr-rocketcdn-cta-close--no-promo:before { + content: "✕"; + font-weight: 700; + font-size: 1.5rem; + line-height: 1.3333333333; +} +.wpr-rocketcdn-cta-close:before { + content: "✕"; + color: #121116; + font-weight: 700; + font-size: 1.5rem; + line-height: 1.3333333333; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-promo { + background: #FFD147; + border-top-left-radius: 2px; + border-top-right-radius: 2px; + padding: 16px 48px 16px 16px; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-promo-title { + font-weight: 700; + font-size: 1.5rem; + line-height: 1.3333333333; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-promo-date { + margin: 0; + font-weight: 500; + font-size: 1rem; + line-height: 1.5; +} +.wpr-rocketcdn-cta-subtitle { + color: #444444; + margin-top: 0; + font-size: 0.875rem; + line-height: 1.7142857143; +} +.wpr-rocketcdn-cta-content { + background: #F9FAFB; + border-top: 1px solid #E8EBEE; + border-left: 1px solid #E8EBEE; + border-right: 1px solid #E8EBEE; + padding: 16px; +} +.wpr-rocketcdn-cta-content--no-promo { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + background: #F9FAFB; + border-top: 1px solid #E8EBEE; + border-left: 1px solid #E8EBEE; + border-right: 1px solid #E8EBEE; + padding: 16px; +} +.wpr-rocketcdn-cta .wpr-flex { + display: flex; + justify-content: space-between; + align-items: center; +} +@media (max-width: 783px) { + .wpr-rocketcdn-cta .wpr-flex { + text-align: start; + flex-direction: column; + } +} +.wpr-rocketcdn-cta .wpr-rocketcdn-features { + margin: 0; + padding-right: 16px; +} +@media (max-width: 783px) { + .wpr-rocketcdn-cta .wpr-rocketcdn-features { + border-right: none; + } +} +.wpr-rocketcdn-cta .wpr-rocketcdn-pricing { + background-color: #fff; + align-items: center; + display: flex; + flex-direction: column; + padding: 16px; + padding-bottom: 32px; + width: 33.3333333333%; + max-width: 219px; +} +@media (max-width: 783px) { + .wpr-rocketcdn-cta .wpr-rocketcdn-pricing { + width: auto; + } +} +.wpr-rocketcdn-cta .wpr-rocketcdn-pricing-regular { + color: #72777C; + margin-bottom: 8px; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-billing-detail { + margin-bottom: 16px; + font-size: 1rem; + line-height: 1.375; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-major { + font-weight: 700; + font-size: 3rem; + line-height: 1.1666666667; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-minor { + font-weight: 700; + vertical-align: top; + font-size: 1.5rem; + line-height: 1.3333333333; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-feature { + margin: 24px 0; + min-height: 30px; + padding-left: 62px; + position: relative; +} +.wpr-rocketcdn-cta .wpr-rocketcdn-feature:before { + position: absolute; + top: 50%; + left: 5px; + transform: translateY(-50%); +} +.wpr-rocketcdn-cta .wpr-rocketcdn-bandwidth:before { + content: url(../img/bandwidth.svg); +} +.wpr-rocketcdn-cta .wpr-rocketcdn-configuration:before { + content: url(../img/configuration.svg); +} +.wpr-rocketcdn-cta .wpr-rocketcdn-automatic:before { + content: url(../img/automatic.svg); +} +.wpr-rocketcdn-cta-footer { + color: #121116; + font-weight: 600; + padding: 16px 8px 8px; + font-size: 0.875rem; + line-height: 1.5714285714; +} +.wpr-rocketcdn-cta-footer a { + position: relative; + padding-left: 22px; +} +.wpr-rocketcdn-cta-footer a:before { + content: ""; + position: absolute; + width: 14px; + height: 15px; + background: url("../img/icon-i-circle.svg") no-repeat center center; + top: 3px; + left: 0; +} +.wpr-rocketcdn-cta-promo-footer { + color: #121116; + padding: 16px 8px 8px; + font-size: 0.875rem; + line-height: 1.5714285714; +} + +.wpr-rocketcdn-subscription { + text-align: end; +} +.wpr-rocketcdn-subscription .wpr-rocketcdn-open { + color: #666666; + text-decoration: underline; +} + +/*-----------------------------------------------*\ + + Upgrade popin + +\*-----------------------------------------------*/ +.wpr-license-upgrade-button { + font-weight: bold; + text-decoration: underline; +} +.wpr-license-upgrade-button:hover { + text-decoration: none; +} + +.wpr-field.wpr-field-account .wpr-flex { + align-items: flex-start; +} + +.wpr-infoAccount-License { + flex: 1 0 60%; + margin-right: 16px; +} + +@media (max-width: 783px) { + .wpr-field.wpr-field-account .wpr-flex > div { + width: 100%; + } +} +.wpr-field.wpr-field-account .wpr-flex > div:last-child { + text-align: right; +} +@media (max-width: 783px) { + .wpr-field.wpr-field-account .wpr-flex > div:last-child { + text-align: left; + } +} + +.wpr-Popin-Upgrade .wpr-Popin-content { + padding-bottom: 32px; +} + +.wpr-Popin-Upgrade .wpr-Popin-flex { + justify-content: space-between; +} + +.wpr-Popin-Upgrade .wpr-Popin-flex > div { + align-items: center; + border: 1px solid #DADADA; + border-radius: 24px; + display: flex; + flex-direction: column; + margin: 0 16px 0 0; + padding: 24px; + text-align: center; + width: 50%; +} +.wpr-Popin-Upgrade .wpr-Popin-flex > div:last-child { + margin-right: 0; +} +@media (max-width: 783px) { + .wpr-Popin-Upgrade .wpr-Popin-flex > div { + margin: 0; + width: 100%; + } +} + +.wpr-Upgrade-Plus .wpr-upgrade-title::before { + content: url(../img/plus.svg); + display: block; + width: 117px; + height: 31px; + top: 0; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.wpr-Upgrade-Infinite .wpr-upgrade-title::before { + content: url(../img/infinite.svg); + display: block; + width: 48px; + height: 31px; + top: 0; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +div.wpr-upgrade-saving { + background: #FFD147; + border-radius: 44px; + color: #121116; + font-weight: bold; + margin: 0 0 24px 0; + padding: 8px 16px; + text-align: center; +} + +.wpr-upgrade-title { + color: #F56F46; + font-size: 1.875rem; + line-height: 1.2; + margin-bottom: 16px; + padding-top: 55px; + position: relative; +} + +div.wpr-upgrade-prices { + color: #121116; + font-size: 3rem; + line-height: 1; + font-weight: bold; + margin: 0 0 16px 0; +} + +.wpr-upgrade-price-symbol { + font-size: 1.875rem; + line-height: 1; + vertical-align: super; +} + +.wpr-upgrade-price-regular { + color: #72777C; + font-size: 1rem; + line-height: 1; + vertical-align: top; +} + +div.wpr-upgrade-websites { + color: #121116; + font-size: 0.875rem; + line-height: 1; + font-weight: bold; + margin: 0 0 24px 0; +} + +.wpr-upgrade-link { + background: #fff; + border: 1px solid #F56F46; + border-radius: 800px; + color: #F56F46; + display: block; + font-size: 1rem; + line-height: 1.125; + font-weight: bold; + padding: 16px 24px; + text-decoration: none; +} +.wpr-upgrade-link:hover { + background: #F56F46; + color: #fff; +} +.wpr-upgrade-link::after { + content: "→"; + font-weight: normal; + margin-left: 8px; +} + +/*-----------------------------------------------*\ + + Promotions banner + +\*-----------------------------------------------*/ +.rocket-promo-banner { + background: #FFD147; + display: flex; + justify-content: space-around; + margin-top: 16px; + padding: 24px; + position: relative; +} +@media (max-width: 783px) { + .rocket-promo-banner { + flex-flow: column; + } +} +.rocket-promo-banner > div { + display: flex; + flex-flow: column; + width: 50%; +} +@media (max-width: 783px) { + .rocket-promo-banner > div { + width: 100%; + } +} + +.rocket-promo-title { + font-weight: bold; + margin-bottom: 24px; +} + +.rocket-promo-discount { + background: #fff; + border-radius: 44px; + display: inline-block; + margin-right: 8px; + padding: 8px 16px; + text-transform: uppercase; +} + +.rocket-promo-message, +.rocket-promo-deal { + font-size: 1rem; + line-height: 1.5; + margin-bottom: 0; +} + +.rocket-promo-deal { + margin-top: 8px; +} + +.rocket-promo-cta-block { + align-items: center; + margin-right: 24px; +} + +.rocket-promo-countdown { + display: flex; + flex-flow: row wrap; + width: 66%; +} +.rocket-promo-countdown > .rocket-countdown-item { + background: #fff; + border-radius: 8px; + flex: 1; + margin-right: 8px; + padding: 8px; + text-align: center; +} +.rocket-promo-countdown > .rocket-countdown-item > .rocket-countdown-value { + display: block; + font-size: 1.5rem; + line-height: 1; + font-weight: bold; +} + +.rocket-promo-cta { + background: #172153; + border-radius: 44px; + color: #fff; + font-weight: bold; + padding: 16px 32px; +} + +/*-----------------------------------------------*\ + + Renewals banner + +\*-----------------------------------------------*/ +.rocket-renewal-banner { + background: #FFD147; + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: space-evenly; + margin-top: 16px; + padding: 8px; +} + +.rocket-renewal-expired-banner { + background: #FFD147; + margin-top: 16px; + padding: 24px; + position: relative; +} + +.rocket-renewal-expired-banner-container { + display: flex; + justify-content: space-around; +} +@media (max-width: 783px) { + .rocket-renewal-expired-banner-container { + flex-flow: column; + } +} +.rocket-renewal-expired-banner-container > div { + display: flex; + flex-flow: column; + width: 50%; +} +@media (max-width: 783px) { + .rocket-renewal-expired-banner-container > div { + width: 100%; + } +} + +.rocket-renew-message { + margin: 0 16px; +} +.rocket-renew-message > p { + font-size: 0.875rem; + line-height: 1.5; +} + +.rocket-expired-message > p { + font-size: 0.875rem; + line-height: 1.5; + padding-left: 80px; +} + +.rocket-expired-title { + font-size: 1.375rem; + line-height: 1.5; + font-weight: bold; +} +.rocket-expired-title::before { + content: url(../img/warning.svg); + display: inline-block; + height: 48px; + width: 63px; + margin-right: 17px; + vertical-align: middle; +} + +.rocket-expired-cta-container { + justify-content: center; + align-items: center; +} + +.rocket-renew-cta { + display: block; + background: #172153; + border-radius: 44px; + color: #fff; + font-size: 1rem; + line-height: 1.125; + font-weight: bold; + padding: 16px 24px; + text-decoration: none; +} +.rocket-renew-cta:hover, .rocket-renew-cta:active, .rocket-renew-cta:focus { + color: #fff; +} +.rocket-renew-cta::after { + content: "→"; + font-weight: normal; + margin-left: 8px; +} + +/*-----------------------------------------------*\ + + Navigation menu item + +\*-----------------------------------------------*/ +.wpr-menuItem { + position: relative; + display: block; + padding: 16px 44px 18px 20px; + text-decoration: none; + color: #121116; + border-top: 1px solid #E0E4E9; + border-left: 2px solid transparent; + overflow: hidden; + transition: all 100ms ease-out; + -webkit-transition: all 100ms ease-out; +} +@media (max-width: 783px) { + .wpr-menuItem { + width: 57px; + height: 50px; + padding: 0; + } +} +.wpr-menuItem:before { + position: absolute; + top: calc(50% - 12px); + right: 18px; + text-align: center; + font-size: 1.4375rem; + line-height: 1; + color: #121116; + opacity: 0.4; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +.wpr-menuItem:hover, .wpr-menuItem.isActive { + color: #121116; + background: #fff; + border-left: 2px solid #F56640; +} +.wpr-menuItem:hover .wpr-menuItem-title, .wpr-menuItem.isActive .wpr-menuItem-title { + color: #F56640; +} +.wpr-menuItem:hover:before, .wpr-menuItem.isActive:before { + color: #F56640; + opacity: 1; +} +.wpr-menuItem:focus { + color: #121116; +} +.wpr-menuItem:focus:before { + color: #121116; +} +.wpr-menuItem-title { + font-size: 0.8125rem; + line-height: 1.4615384615; + font-weight: bold; + letter-spacing: -0.08px; + text-transform: uppercase; + color: #121116; +} +@media (max-width: 783px) { + .wpr-menuItem-title { + display: none !important; + } +} +.wpr-menuItem-description { + margin-top: 2px; + color: #72777C; + font-size: 0.8125rem; + line-height: 1.2307692308; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +@media (max-width: 783px) { + .wpr-menuItem-description { + display: none; + } +} +.wpr-menuItem.wpr-subMenuItem { + display: none; + padding: 10px 20px 8px 25px; +} +@media (max-width: 783px) { + .wpr-menuItem.wpr-subMenuItem { + padding: 8px 20px 8px 23px; + height: 35px; + } +} +.wpr-menuItem.wpr-subMenuItem .wpr-menuItem-title { + display: inline-block; + font-size: 0.8125rem; + line-height: 1.8461538462; + text-transform: inherit; + font-weight: 600; +} +.wpr-menuItem.wpr-subMenuItem:before { + position: relative; + display: inline-block; + top: 2px; + right: 2px; + margin-right: 8px; + font-size: 1rem; + line-height: 1; +} + +#wpr-nav-cache:before { + right: 20px; +} +#wpr-nav-tools:before { + right: 20px; +} +/*-----------------------------------------------*\ + + Section header of the page + +\*-----------------------------------------------*/ +.wpr-sectionHeader { + position: relative; + border-bottom: 1px solid #E0E4E9; + padding-bottom: 24px; +} +.wpr-sectionHeader:before { + content: ""; + position: absolute; + display: block; + width: 48px; + height: 2px; + bottom: -1px; + left: 0; + background: #F56640; +} +.wpr-sectionHeader .wpr-title1 { + line-height: 48px; +} +.wpr-sectionHeader .wpr-title1:before { + display: inline-block; + width: 48px; + height: 48px; + margin-right: 24px; + background: #FDE0D9; + color: #F56640; + text-align: center; + border-radius: 3px; +} +.wpr-sectionHeader-title { + margin-top: 8px; + padding-left: 72px; +} +.wpr-sectionHeader-description { + color: #666666; + margin-top: 8px; + padding-left: 72px; +} +.wpr-sectionHeader-logo { + vertical-align: top; + margin-right: 24px; +} + +/*-----------------------------------------------*\ + + Header of option group + +\*-----------------------------------------------*/ +.wpr-optionHeader { + position: relative; + display: flex; + justify-content: space-between; + margin-top: 48px; + padding-bottom: 9px; + border-bottom: 1px solid #E0E4E9; +} +.wpr-optionHeader .wpr-title2 { + line-height: 24px; + color: #F56640; + padding-right: 40px; +} +.wpr-optionHeader .wpr-infoAction { + margin-right: 8px; +} + +.wpr-optionHeader.wpr-isHidden { + display: none; +} + +/*-----------------------------------------------*\ + + Group of fields (fieldset) + +\*-----------------------------------------------*/ +.wpr-fieldsContainer { + margin-top: 8px; +} +.wpr-fieldsContainer-description { + color: #666666; +} +.wpr-fieldsContainer-description a:hover, +.wpr-fieldsContainer-description a:focus { + color: #1EADBF; +} +.wpr-fieldsContainer-fieldset { + margin-top: 16px; + background: #F9FAFB; + padding: 16px; + border: 1px solid #E8EBEE; + border-radius: 2px; +} +.wpr-fieldsContainer-fieldset--split { + display: flex; +} +.wpr-fieldsContainer-fieldset--split .wpr-field + .wpr-field { + border: none; +} +.wpr-fieldsContainer-fieldset--split .wpr-field { + flex: 0 0 50%; + padding: 0; +} +.wpr-fieldsContainer-fieldset--split .wpr-field:first-child { + padding-right: 15px; +} +.wpr-fieldsContainer-fieldset--split .wpr-field:last-child { + padding-left: 15px; +} +.wpr-fieldsContainer-helper { + margin-top: 16px; + color: #D60E5B; + font-weight: 500; +} +.wpr-fieldsContainer-helper:before { + position: relative; + top: 3px; + font-size: 1.125rem; + line-height: 1; + margin-right: 4px; +} + +.wpr-fieldsContainer.wpr-isHidden { + display: none; +} + +/*-----------------------------------------------*\ + + Link action inside .optionHeader (ex: Need help ?) + +\*-----------------------------------------------*/ +.wpr-infoAction { + position: relative; + height: 24px; + font-size: 0.8125rem; + line-height: 1.8461538462; + vertical-align: middle; + letter-spacing: -0.03em; + font-weight: 500; + color: #666666; + white-space: nowrap; + text-decoration: none; + transition: all 200ms ease-out; + -webkit-transition: all 200ms ease-out; +} +.wpr-infoAction:before { + position: absolute; + margin-left: -26px; + font-size: 1.125rem; + line-height: 1.3333333333; + transition: color 200ms ease-out; + -webkit-transition: color 200ms ease-out; +} +.wpr-infoAction--help { + text-transform: uppercase; + color: #02707F; + font-weight: bold; + font-size: 0.75rem; + line-height: 2; + letter-spacing: 0; +} +@media (max-width: 783px) { + .wpr-infoAction--help { + display: none; + } +} +.wpr-infoAction--help:before { + color: #1EADBF; +} +.wpr-infoAction:hover, .wpr-infoAction:focus { + color: #F56640; + outline: none; +} +.wpr-infoAction:hover:before, .wpr-infoAction:focus:before { + color: #FFA58B; +} + +/*-----------------------------------------------*\ + + Button call to action + +\*-----------------------------------------------*/ +.wpr-button { + position: relative; + display: inline-block; + width: auto; + padding: 8px 24px; + text-align: center; + background: #F56640; + box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08); + text-transform: uppercase; + text-decoration: none; + letter-spacing: -0.08px; + font-weight: bold; + border-radius: 4px; + color: #fff !important; + white-space: nowrap; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: all 200ms ease-out; + -webkit-transition: all 200ms ease-out; + font-size: 0.8125rem; + line-height: 1.5384615385; +} +.wpr-button:hover, .wpr-button:focus { + color: #fff !important; + transform: translateY(-2px); + box-shadow: 0 7px 14px rgba(50, 50, 93, 0.25), 0 3px 6px rgba(0, 0, 0, 0.2); +} +.wpr-button--small { + padding: 5px 0; + letter-spacing: -0.08px; + font-size: 0.6875rem; + line-height: 1.8181818182; +} +.wpr-button--icon { + min-width: 160px; + padding-left: 8px; + padding-right: 40px; + text-align: left; +} +.wpr-button--icon:before { + position: absolute; + right: 8px; + font-size: 0.9375rem; + line-height: 1.3333333333; +} +.wpr-button--fixed { + position: fixed; + display: flex; + padding: 8px 16px; + right: 24px; + bottom: 32px; + border-radius: 16px; +} +.wpr-button--fixed:before { + font-size: 1.125rem; + line-height: 1; + margin-right: 8px; +} +.wpr-button--purple { + background: #2D1656; +} +.wpr-button--blue { + min-width: inherit; + background: #1EADBF; +} +.wpr-button--lightBlue { + min-width: inherit; + background: #40BACB; +} +.wpr-button--red { + background: #D33F49; +} +.wpr-button--gray { + background: #E0E4E9; + color: #121116 !important; +} +.wpr-button--gray:hover, .wpr-button--gray:active, .wpr-button--gray:focus { + color: #121116 !important; +} +.wpr-button--gray.radio-active { + background: #2D1656 !important; + color: #fff !important; +} +.wpr-button--gray.radio-active:hover, .wpr-button--gray.radio-active:active, .wpr-button--gray.radio-active:focus { + color: #fff !important; +} +.wpr-button--blueDark { + background: #02707F; +} +.wpr-button:focus { + outline: none; + color: #fff !important; +} + +/*-----------------------------------------------*\ + + Field container + +\*-----------------------------------------------*/ +.wpr-field { + padding: 16px 0; + transition: opacity 150ms ease-out; + -webkit-transition: opacity 150ms ease-out; +} +.wpr-field + .wpr-field, .wpr-field + .wpr-warningContainer { + border-top: 1px solid #E0E4E9; +} +.wpr-field:first-child { + padding-top: 0; +} +.wpr-field:last-child { + padding-bottom: 0; +} +.wpr-field-description { + margin-top: 4px; + color: #666666; + font-size: 0.8125rem; + line-height: 1.5384615385; +} +.wpr-field-description .wpr-js-popin { + color: #444444; + text-decoration: underline; +} +.wpr-field-description .wpr-js-popin:hover, .wpr-field-description .wpr-js-popin:focus { + color: #1EADBF; +} +.wpr-field-description a:hover, +.wpr-field-description a:focus { + color: #1EADBF; +} +.wpr-field-description-helper { + color: #00A66B; +} +.wpr-field-description-label { + font-size: 0.875rem; + line-height: 1.4285714286; + font-weight: 500; + color: #666666; +} +.wpr-field-list { + margin: 0; + color: #666666; + font-weight: 500; +} +.wpr-field-list li + li { + margin-top: 16px; +} +.wpr-field-list li:before { + position: relative; + top: 3px; + margin-right: 8px; + color: #02707F; + font-size: 1.125rem; + line-height: 1.1111111111; +} +.wpr-field-list a { + text-decoration: none; +} +.wpr-field-list a:hover, .wpr-field-list a:focus { + color: #1EADBF; +} +.wpr-field-betweenText { + margin: 0 16px; + font-weight: bold; +} +.wpr-field .wpr-button { + margin: 8px 0; +} +.wpr-field .wpr-flex { + display: flex; + justify-content: space-between; + align-items: center; +} +@media (max-width: 783px) { + .wpr-field .wpr-flex { + text-align: left; + flex-direction: column; + } +} +.wpr-field .wpr-flex--egal > div { + flex: 0 0 50%; +} +@media (max-width: 783px) { + .wpr-field .wpr-flex--egal > div { + width: 100%; + } +} +.wpr-field .wpr-flex--egal > div:last-child { + text-align: right; +} +@media (max-width: 783px) { + .wpr-field .wpr-flex--egal > div:last-child { + text-align: left; + } +} +.wpr-field .wpr-flex--egal > div .wpr-field-description { + font-style: normal; + color: #666666; +} +.wpr-field p { + margin-bottom: 0; +} +.wpr-field label { + font-weight: 500; +} +.wpr-field h4 { + font-size: 0.875rem; + line-height: 1.7142857143; +} +.wpr-field.wpr-isDisabled { + opacity: 0.55; +} +.wpr-field.wpr-isParent { + padding-bottom: 0; + margin-bottom: 16px; +} +.wpr-field.wpr-Delayjs { + margin-top: 16px; +} +.wpr-field.wpr-RemoveUnUsedCss { + margin-bottom: 0; +} +.wpr-field.wpr-NoPaddingBottom { + padding-bottom: 0; +} +.wpr-field.wpr-isLastElem { + margin-top: 16px; +} +.wpr-field.wpr-isHidden { + display: none; +} +.wpr-field .wpr-isHidden { + display: none; +} +.wpr-field--children { + display: none; + padding-left: 32px; +} +.wpr-field--children.wpr-isOpen { + display: block; +} +.wpr-field--children.wpr-field--textarea { + padding-right: 80px; +} +@media (max-width: 1239px) { + .wpr-field--children.wpr-field--textarea { + padding-right: 32px; + } +} +@media (max-width: 783px) { + .wpr-field--children.wpr-field--textarea { + padding-right: 0; + } +} +.wpr-field--children.no-space { + padding-left: 0; +} +.wpr-field--checkbox .wpr-field-description { + margin-left: 32px; +} +.wpr-field--radio { + padding: 24px 16px; +} +.wpr-field--radio:first-child { + padding-top: 8px; +} +.wpr-field--radio:last-child { + padding-bottom: 8px; +} +.wpr-field--radio .wpr-field-description { + margin-left: 88px; +} +.wpr-field--radio .wpr-field-description button { + color: #666666; +} +.wpr-field--split { + display: inline-block; + width: 50%; + padding-right: 16px; + padding-bottom: 0; +} +.wpr-field--split + .wpr-field--split { + padding-left: 16px; + padding-right: 0; +} +.wpr-field--split + .wpr-field--split:nth-child(2) { + padding-top: 0; + border-top: none; +} +.wpr-field--cache .wpr-field--number, +.wpr-field--cache .wpr-field--select { + display: inline-block; + padding-top: 0; + width: auto; + padding-bottom: 0; + font-weight: bold; +} +.wpr-field--cache .wpr-field--select { + position: relative; + padding-left: 8px; + top: -2px; + border-top: none; +} +.wpr-field--cache .wpr-field--number .wpr-text input[type=number] { + background: #F2F3F6; + height: 35px; + border: 1px solid #E0E4E9; + font-family: inherit; + font-size: 1em; +} +.wpr-field--cache .wpr-field-description { + margin: 8px 0; + color: #00A66B; +} +.wpr-field--cache .wpr-field-description-label { + color: #121116; +} +.wpr-field--textarea .wpr-field-description pre { + background: rgba(0, 0, 0, 0.07); + padding: 1em; + margin: 1em 0 0; + white-space: normal; +} +.wpr-field--textarea .wpr-field-description pre code { + background: transparent; + -webkit-touch-callout: all; + -webkit-user-select: all; + -khtml-user-select: all; + -moz-user-select: all; + -ms-user-select: all; + user-select: all; + color: #121116; +} + +/*-----------------------------------------------*\ + + Field warning + +\*-----------------------------------------------*/ +.wpr-fieldWarning { + display: none; + position: relative; + padding: 16px 16px 24px 56px; + background: #19073B; + margin: 8px 0 0; + color: #fff; +} +.wpr-fieldWarning.wpr-isOpen { + display: block; +} +.wpr-fieldWarning:after { + content: ""; + position: absolute; + display: block; + top: -8px; + left: 20px; + width: 0; + height: 0; + border-style: solid; + border-width: 0 12px 8px 12px; + border-color: transparent transparent #19073B transparent; +} +.wpr-fieldWarning:before { + content: ""; + position: absolute; + display: block; + width: calc(100% + 32px); + height: 100%; + top: 0; + left: -16px; + background: #19073B; +} +.wpr-fieldWarning-title { + position: relative; + color: #F56640; + font-size: 0.875rem; + line-height: 1.4285714286; + font-weight: bold; +} +.wpr-fieldWarning-title:before { + position: absolute; + left: -36px; + font-size: 1.5rem; + line-height: 0.8333333333; +} +.wpr-fieldWarning-description { + position: relative; + margin-top: 8px; +} +.wpr-fieldWarning .wpr-button { + margin-top: 16px; +} +.wpr-fieldWarning.wpr-radio-warning { + margin-left: -32px; +} +.wpr-fieldWarning.wpr-radio-warning:after { + left: 40px; +} + +.wpr-warningContainer + .wpr-warningContainer, +.wpr-warningContainer + .wpr-field, +.wpr-field + .wpr-warningContainer { + border-top: 1px solid #E0E4E9; + padding-top: 16px; +} + +.wpr-warningContainer + .wpr-warningContainer, +.wpr-field + .wpr-warningContainer { + padding-bottom: 16px; +} + +@media only screen and (max-width: 400px) { + .wpr-fieldWarning.wpr-radio-warning { + margin-left: -32px; + } + .wpr-fieldWarning.wpr-radio-warning .wpr-button { + white-space: normal; + padding-right: 32px; + } +} +@media only screen and (max-width: 350px) { + .wpr-radio-buttons { + padding-left: 24px; + } + + .wpr-fieldWarning.wpr-radio-warning { + margin-left: -24px; + padding-left: 30px; + padding-right: 0; + } + .wpr-fieldWarning.wpr-radio-warning .wpr-button { + padding-right: 24px; + } +} +/*-----------------------------------------------*\ + + Documentation + +\*-----------------------------------------------*/ +.wpr-documentation { + padding: 24px 16px; + border-radius: 4px; + color: #fff; + text-align: center; + background: #40BACB; +} +.wpr-documentation p { + margin: 8px 0 16px; + font-weight: 500; +} +.wpr-documentation i { + display: block; + font-size: 2.25rem; + line-height: 1; + margin-bottom: 8px; +} +.wpr-documentation .wpr-button { + padding-left: 16px; + padding-right: 16px; +} + +/*-----------------------------------------------*\ + + Addon style + +\*-----------------------------------------------*/ +.wpr-addon { + padding: 24px 0; +} +.wpr-addon .wpr-flex { + align-items: flex-start; +} +@media (max-width: 783px) { + .wpr-addon .wpr-flex { + align-items: center; + } +} +.wpr-addon .wpr-flex > div { + text-align: left; +} +.wpr-addon .wpr-addon-title { + margin-bottom: 16px; + font-weight: 500; +} +.wpr-addon .wpr-field-description { + font-style: normal; +} +.wpr-addon .wpr-addon-logo { + text-align: center; + flex: 0 0 160px; +} +@media (max-width: 1239px) { + .wpr-addon .wpr-addon-logo { + max-width: 100px; + } + .wpr-addon .wpr-addon-logo img { + width: 100%; + height: auto; + } +} +@media (max-width: 1083px) { + .wpr-addon .wpr-addon-logo { + max-width: 160px; + } +} +@media (max-width: 783px) { + .wpr-addon .wpr-addon-logo { + flex: 0 0 auto; + margin-bottom: 16px; + } +} +.wpr-addon .wpr-addon-text { + margin-left: 32px; + flex: 1 1 auto; +} +@media (max-width: 1239px) { + .wpr-addon .wpr-addon-text { + margin-left: 16px; + } +} +@media (max-width: 1083px) { + .wpr-addon .wpr-addon-text { + margin-left: 32px; + } +} +@media (max-width: 783px) { + .wpr-addon .wpr-addon-text { + margin-left: 0; + } +} +.wpr-addon .wpr-addon-text a { + display: inline-block; + margin-top: 24px; +} +.wpr-addon .wpr-addon-text .button { + margin-top: 24px; +} +.wpr-addon .wpr-addon-text .wpr-add-on-helper { + font-weight: normal; + color: #1eadbf; +} +.wpr-addon .wpr-addon-text .wpr-add-on-helper a { + margin-top: 0; +} + +.wpr-webp-addon .wpr-addon .wpr-addon-text a { + margin-top: 0px; +} + +/*-----------------------------------------------*\ + + Notice for first time on dashboard + +\*-----------------------------------------------*/ +.wpr-notice { + position: relative; + color: #444444; + background: #EBFAF5 url("../img/bg-activated.svg") no-repeat 90% bottom; + background-size: 350px; + margin-top: 24px; + border-radius: 4px; + overflow: hidden; +} +.wpr-notice-container { + padding: 24px 25% 24px 40px; +} +.wpr-notice-supTitle { + font-size: 1rem; + line-height: 1.375; + font-weight: bold; +} +.wpr-notice-title { + font-size: 1.5rem; + line-height: 1.3333333333; + color: #3ECE9D; + margin-top: 16px; + font-weight: bold; +} +.wpr-notice-description { + font-size: 0.875rem; + line-height: 1.5714285714; + margin: 16px 0 24px; +} +.wpr-notice-continue { + color: #666666; +} +.wpr-notice-close { + position: absolute; + top: 24px; + right: 24px; + color: #666666; + text-decoration: none; + font-size: 1.5rem; + line-height: 1; + transition: color 200ms ease-out; + -webkit-transition: color 200ms ease-out; +} +.wpr-notice-close:hover { + color: #444444; +} +.wpr-notice-close:focus { + outline: none; +} + +/*-----------------------------------------------*\ + + Tools style + +\*-----------------------------------------------*/ +.wpr-tools { + position: relative; + display: flex; + flex-direction: row; + padding: 32px 0; +} +@media (max-width: 1239px) { + .wpr-tools { + flex-direction: column; + } +} +@media (max-width: 1083px) { + .wpr-tools { + flex-direction: row; + } +} +@media (max-width: 783px) { + .wpr-tools { + flex-direction: column; + } +} +.wpr-tools:nth-child(2) { + margin-top: 16px; +} +.wpr-tools + .wpr-tools { + border-top: 1px solid #E0E4E9; +} +.wpr-tools-label { + display: block; +} +.wpr-tools-label:before { + position: absolute; + left: 0; + margin-top: 5px; + font-size: 2.25rem; + line-height: 1; + color: #F56640; +} +@media (max-width: 783px) { + .wpr-tools-label:before { + display: block; + position: initial; + } +} +.wpr-tools-col { + flex: 1 1 auto; +} +.wpr-tools-col:first-child { + padding-left: 72px; + padding-right: 24px; + min-width: 340px; +} +@media (max-width: 783px) { + .wpr-tools-col:first-child { + padding-left: 0; + padding-right: 0; + min-width: auto; + } +} +.wpr-tools-col:last-child { + text-align: right; +} +@media (max-width: 783px) { + .wpr-tools-col:last-child { + text-align: left; + } +} +.wpr-tools .wpr-button { + margin-top: 24px; + white-space: normal; +} +.wpr-tools .wpr-field-description { + font-style: normal; + color: #666666; +} + +/*-----------------------------------------------*\ + + Imagify Tab style + +\*-----------------------------------------------*/ +.wpr-imagify { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + margin-top: 30px; +} +.wpr-imagify-description { + width: 33.3333333333%; + padding-right: 60px; +} +@media (max-width: 1239px) { + .wpr-imagify-description { + width: auto; + padding-right: 0; + } +} +.wpr-imagify-screenshot { + width: 66.6666666667%; +} +@media (max-width: 1239px) { + .wpr-imagify-screenshot { + margin-top: 60px; + width: auto; + } +} +.wpr-imagify-screenshot img { + max-width: 100%; + height: auto; +} +.wpr-imagify-more, .wpr-imagify-name { + color: #00a8dc; + font-weight: 700; + margin-bottom: 0; +} +.wpr-imagify-more::before { + content: "✓"; + color: #000; + font-size: 2rem; + margin-right: 5px; +} +.wpr-imagify p { + font-size: 1rem; +} +.wpr-imagify p:first-child { + margin-top: 0; +} +.wpr-imagify ul { + margin-top: 0; + margin-left: 40px; + list-style-type: ">"; +} +.wpr-imagify li { + padding-left: 7px; +} +.wpr-imagify a { + text-decoration: none; +} +.wpr-imagify a:hover { + color: #00a8dc; +} +.wpr-imagify .button-primary { + background: #2abb9b; + border: 1px solid #bebebe; + box-shadow: none; + font-size: 1rem; + font-weight: 700; + height: auto; + line-height: 1; + margin-top: 60px; + padding: 20px 45px; + text-shadow: none; + text-transform: uppercase; +} + +.wpr-tutorials-section { + display: flex; + flex-flow: row wrap; +} + +div.wpr-tutorial-item { + width: 32%; + margin-bottom: 10px; + margin-right: 1%; +} + +.wpr-tutorial-link { + cursor: pointer; + transition: color 200ms ease-out; +} +.wpr-tutorial-link:hover { + color: #1EADBF; +} + +@media (max-width: 1083px) { + div.wpr-tutorial-item { + width: 48%; + } +} +@media (max-width: 783px) { + div.wpr-tutorial-item { + width: 100%; + } +} +/*-----------------------------------------------*\ + + RocketCDN modal style + +\*-----------------------------------------------*/ +.wpr-rocketcdn-modal { + display: none; +} +.wpr-rocketcdn-modal.is-open { + display: block; +} +.wpr-rocketcdn-modal__overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.6); + display: flex; + justify-content: center; + align-items: center; +} +.wpr-rocketcdn-modal__container { + max-width: 674px; + max-height: 100vh; + overflow-y: auto; + box-sizing: border-box; +} +.wpr-rocketcdn-modal iframe { + max-width: 100%; +} + +/*-----------------------------------------------*\ + + Custom checkbox + +\*-----------------------------------------------*/ +.wpr-checkbox { + position: relative; + padding-left: 32px; +} +.wpr-checkbox label { + user-select: none; +} + +.wpr-checkbox [type=checkbox]:not(:checked), +.wpr-checkbox [type=checkbox]:checked { + position: absolute; + left: -9999px; +} + +.wpr-checkbox [type=checkbox]:not(:checked) + label:before, +.wpr-checkbox [type=checkbox]:checked + label:before { + content: ""; + position: absolute; + left: 0; + top: 4px; + width: 14px; + height: 14px; + border: 2px solid #444444; + border-radius: 3px; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} + +.wpr-checkbox [type=checkbox]:not(:checked) + label:after, +.wpr-checkbox [type=checkbox]:checked + label:after { + content: "\e921"; + position: absolute; + top: 5px; + left: 2px; + color: #fff; + font-family: "wpr-icomoon"; + speak: none; + font-size: 0.875rem; + line-height: 1.2857142857; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} + +.wpr-checkbox [type=checkbox]:not(:checked) + label:after { + opacity: 0; + transform: scale(2); +} + +.wpr-checkbox [type=checkbox]:checked + label:after { + opacity: 1; + transform: scale(1); +} + +.wpr-checkbox [type=checkbox]:checked + label:before { + background: #19073B; + border-color: #19073B; +} + +.wpr-checkbox [type=checkbox]:checked:focus + label:before { + background: #665090; + border: 2px dotted #665090; +} + +.wpr-checkbox [type=checkbox]:focus + label:before { + border: 2px dotted #444444; +} + +.wpr-checkbox-warning { + color: #D33F49; + margin-left: 16px; +} + +.wpr-checkbox-warning::before { + margin-right: 8px; +} + +/*-----------------------------------------------*\ + + Custom radio (radio on/off) + +\*-----------------------------------------------*/ +.wpr-radio { + position: relative; + padding-left: 88px; +} +.wpr-radio label { + user-select: none; + font-weight: bold; +} +.wpr-radio [type=checkbox]:not(:checked), +.wpr-radio [type=checkbox]:checked { + position: absolute; + left: -9999px; +} +.wpr-radio [type=checkbox]:not(:checked) + label:before, +.wpr-radio [type=checkbox]:checked + label:before, +.wpr-radio [type=checkbox]:not(:checked) + label:after, +.wpr-radio [type=checkbox]:checked + label:after { + content: ""; + position: absolute; +} +.wpr-radio [type=checkbox]:not(:checked) + label:before, +.wpr-radio [type=checkbox]:checked + label:before { + left: 0; + width: 52px; + height: 22px; + background: #fff; + border-radius: 12px; + border: 1px solid #444444; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +.wpr-radio [type=checkbox]:not(:checked) + label:after, +.wpr-radio [type=checkbox]:checked + label:after { + width: 18px; + height: 18px; + border-radius: 100%; + background: #444444; + top: 3px; + left: 3px; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +.wpr-radio [type=checkbox]:disabled + label:after, +.wpr-radio [type=checkbox]:disabled + label:after { + background: #E0E4E9; +} +.wpr-radio [type=checkbox]:disabled + label:before, +.wpr-radio [type=checkbox]:disabled + label:before { + border: 1px solid #E0E4E9; +} +.wpr-radio [type=checkbox]:checked + label:before { + border-color: #1EADBF; +} +.wpr-radio [type=checkbox]:checked + label:after { + background: #1EADBF; + left: 33px; +} +.wpr-radio [type=checkbox]:checked + label .wpr-radio-ui, +.wpr-radio [type=checkbox]:not(:checked) + label .wpr-radio-ui:before, +.wpr-radio [type=checkbox]:checked + label .wpr-radio-ui:after { + position: absolute; + left: 4px; + width: 52px; + text-transform: uppercase; + letter-spacing: -0.01em; + font-weight: bold; + font-size: 0.6875rem; + line-height: 2.1818181818; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +.wpr-radio [type=checkbox]:not(:checked) + label .wpr-radio-ui:before { + content: attr(data-l10n-inactive); + left: 27px; + color: #666666; +} +.wpr-radio [type=checkbox]:checked + label .wpr-radio-ui:after { + content: attr(data-l10n-active); + color: #02707F; +} +.wpr-radio--reverse { + padding-right: 72px; + padding-left: 0; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label:before, +.wpr-radio--reverse [type=checkbox]:checked + label:before { + right: 0; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label:after, +.wpr-radio--reverse [type=checkbox]:checked + label:after { + right: 33px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:checked + label:after { + right: 3px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:checked + label .wpr-radio-ui, +.wpr-radio--reverse [type=checkbox]:not(:checked) + label .wpr-radio-ui:before, +.wpr-radio--reverse [type=checkbox]:checked + label .wpr-radio-ui:after { + right: -2px; + left: inherit; +} +.wpr-radio--reverse [type=checkbox]:not(:checked) + label .wpr-radio-ui:before { + right: -25px; + left: inherit; +} +.wpr-radio [type=checkbox]:not(:checked):focus + label:before { + border: 1px dashed #444444; +} +.wpr-radio [type=checkbox]:checked:focus + label:before { + border: 1px dashed #1EADBF; +} +.wpr-radio--tips [type=checkbox]:checked + label:before { + border-color: #3ECE9D; +} +.wpr-radio--tips [type=checkbox]:checked + label:after { + background: #3ECE9D; +} +.wpr-radio--tips [type=checkbox]:checked + label .wpr-radio-ui:after { + color: #00A66B; +} +.wpr-radio--tips [type=checkbox]:checked:focus + label:before { + border: 1px dashed #3ECE9D; +} + +/*-----------------------------------------------*\ + + Type = select + +\*-----------------------------------------------*/ +.wpr-select { + position: relative; +} +.wpr-select select { + margin: 0; + padding: 0 8px; + height: 36px; + border: 1px solid #E0E4E9; + background: #F2F3F6; + color: #121116; + box-shadow: none; + border-radius: 0; + letter-spacing: 0.011em; +} +.wpr-select select:focus { + outline: none; + border-color: #444444; + box-shadow: none; +} +.wpr-select label { + font-weight: bold; + margin-left: 8px; +} + +/*-----------------------------------------------*\ + + Type = textearea + +\*-----------------------------------------------*/ +.wpr-textarea { + margin-top: 8px; +} +.wpr-textarea textarea { + padding: 8px; + width: 100%; + height: 100px; + font-family: Monaco; + color: #121116; + background: #fff; + border: 2px solid #c2cad4; + border-radius: 3px; + font-size: 0.8125rem; + line-height: 1.2307692308; + transition: border 200ms ease-out; + -webkit-transition: border 200ms ease-out; +} +.wpr-textarea textarea:focus { + outline: none; + border-color: #444444; + box-shadow: none; +} +.wpr-textarea + .wpr-field-description { + color: #00A66B; +} + +/*-----------------------------------------------*\ + + Type = text + +\*-----------------------------------------------*/ +.wpr-text label { + color: #666666; +} +.wpr-text input[type=text], +.wpr-text input[type=number] { + margin-top: 8px; + padding: 0 8px; + width: 100%; + height: 32px; + color: #121116; + background: #fff; + border: 2px solid #c2cad4; + border-radius: 3px; + font-family: Monaco; + font-size: 0.75rem; + line-height: 1.3333333333; + transition: border 200ms ease-out; + -webkit-transition: border 200ms ease-out; +} +.wpr-text input[type=text]:focus, +.wpr-text input[type=number]:focus { + outline: none; + border-color: #444444; + box-shadow: none; +} +.wpr-text input[type=text].wpr-isError, +.wpr-text input[type=number].wpr-isError { + border-color: #D33F49; +} +.wpr-text input[type=number] { + width: 80px; +} +.wpr-text--number label { + margin-right: 8px; +} + +/*-----------------------------------------------*\ + + Type = File + +\*-----------------------------------------------*/ +.wpr-upload input[type=file] { + display: block; + width: 252px; + margin: 8px 8px 8px 0; + padding: 8px; + border: 1px solid #E0E4E9; + background: #F2F3F6; + color: #121116; + font-size: 0.6875rem; + line-height: 1.4545454545; +} +.wpr-upload input[type=file]:focus { + outline: none; + border-color: #444444; + box-shadow: none; +} + +/*-----------------------------------------------*\ + + Multiple field + +\*-----------------------------------------------*/ +.wpr-multiple { + display: flex; + align-items: center; + flex-wrap: wrap; +} +@media (max-width: 783px) { + .wpr-multiple { + align-items: center; + flex-direction: column; + } +} +.wpr-multiple .wpr-text { + flex: 1 1 auto; + position: relative; + top: -2px; +} +@media (max-width: 783px) { + .wpr-multiple .wpr-text { + width: 100%; + } +} +.wpr-multiple .wpr-button { + margin-left: 16px; + width: auto; + min-width: inherit; + padding-right: 30px; +} +@media (max-width: 783px) { + .wpr-multiple .wpr-button { + margin-left: 0; + } +} +.wpr-multiple input[type=text] { + flex-grow: 2; +} +.wpr-multiple select { + height: 30px; +} +.wpr-multiple-default { + margin-right: 20px; +} +.wpr-multiple-list { + display: none; + padding: 8px 0; + margin: 16px 0 0; + background: #F2F3F6; + border-radius: 2px; +} +.wpr-multiple-list li { + margin-bottom: 0; + padding: 4px 16px; + font-size: 0.8125rem; + line-height: 1.2307692308; + font-family: Monaco; +} +.wpr-multiple-list li span { + display: inline-block; + transition: all 150ms ease-out; + -webkit-transition: all 150ms ease-out; +} +.wpr-multiple-close { + position: relative; + top: 3px; + font-size: 1rem; + line-height: 1; + transition: color 200ms ease-out; + -webkit-transition: color 200ms ease-out; +} +.wpr-multiple-close:focus { + outline: none; +} +.wpr-multiple-close:hover, .wpr-multiple-close:focus { + color: #D33F49; +} +.wpr-multiple-close:hover + span, .wpr-multiple-close:focus + span { + color: #D33F49; +} \ No newline at end of file diff --git a/assets/css/wpr-admin.min.css b/assets/css/wpr-admin.min.css new file mode 100755 index 0000000000..a3c546be14 --- /dev/null +++ b/assets/css/wpr-admin.min.css @@ -0,0 +1 @@ +h1,h2,h3,h4{color:currentColor;margin:0;font-weight:normal}button{padding:0;border:none;background:none;cursor:pointer}a{color:currentColor;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}a:hover{color:currentColor}input[type=submit]{cursor:pointer;border:none}a:active,button:active{outline:none}a:focus,button:focus{color:currentColor;box-shadow:none}.wpr-wrap{padding:16px;margin:0 0 0 -20px}@media(max-width: 783px){.wpr-wrap{padding:0;margin:0 0 0 -10px}}.wpr-body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-ms-interpolation-mode:nearest-neighbor;image-rendering:optimizeQuality;text-rendering:optimizeLegibility;display:flex;color:#121116;font-size:0.875rem;line-height:1.5}.wpr-body *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@media(max-width: 783px){#hs-beacon{display:none !important}}.wpr-u-flex{display:flex;align-items:center;justify-content:center}@font-face{font-family:"wpr-icomoon";src:url("../fonts/icomoon.eot");src:url("../fonts/icomoon.eot?#iefix") format("embedded-opentype"),url("../fonts/icomoon.woff") format("woff"),url("../fonts/icomoon.ttf") format("truetype"),url("../fonts/icomoon.svg#icomoon") format("svg");font-weight:normal;font-style:normal}[class^=wpr-icon-]:before,[class*=" wpr-icon-"]:after,[class^=wpr-icon-]:after,[class*=" wpr-icon-"]:before,[id^=wpr-nav-]:before,[id*=" wpr-nav-"]:after,[id^=wpr-nav-]:after,[id*=" wpr-nav-"]:before{font-family:"wpr-icomoon";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[class^=wpr-icon-] span.hidden,[class*=" wpr-icon-"] span.hidden{display:inline-block;height:0;width:0;overflow:hidden}.wpr-icon-chevron-right:before{content:""}.wpr-icon-chevron-left:before{content:"";transform:rotate(180deg)}.wpr-icon-chevron-down:before{content:"";transform:scale(0.6)}.wpr-icon-chevron-up:before{content:"";top:50%;transform:translateY(-50%) scale(0.6)}.wpr-icon-rollback:before{content:""}.wpr-icon-addon:before,.wpr-addonSubMenuItem:before{content:""}.wpr-icon-addons:before,#wpr-nav-addons:before{content:""}.wpr-icon-book:before{content:""}.wpr-icon-cdn:before,#wpr-nav-page_cdn:before{content:""}.wpr-icon-database:before,#wpr-nav-database:before{content:""}.wpr-icon-export:before{content:""}.wpr-icon-files:before,#wpr-nav-cache:before{content:""}.wpr-icon-help:before{content:""}.wpr-icon-home:before,#wpr-nav-dashboard:before{content:""}.wpr-icon-import:before{content:""}.wpr-icon-important:before{content:""}.wpr-icon-information:before{content:""}.wpr-icon-information2:before{content:""}.wpr-icon-interrogation:before{content:""}.wpr-icon-media:before,#wpr-nav-media:before{content:""}.wpr-icon-plus:before{content:""}.wpr-icon-refresh:before,#wpr-nav-preload:before{content:""}.wpr-icon-rules:before,#wpr-nav-advanced_cache:before{content:""}.wpr-icon-stack:before,#wpr-nav-file_optimization:before{content:""}.wpr-icon-tools:before,#wpr-nav-tools:before{content:""}.wpr-icon-trash:before{content:""}.wpr-icon-user:before{content:""}.wpr-icon-check:before{content:""}.wpr-icon-check2:before{content:""}.wpr-icon-close:before{content:""}.wpr-icon-heartbeat:before,#wpr-nav-heartbeat:before{content:url("../img/heartbeat.svg")}.wpr-icon-heartbeat-hover:before,#wpr-nav-heartbeat.isActive:before,#wpr-nav-heartbeat:hover:before{content:url("../img/heartbeat-hover.svg")}.wpr-icon-imagify:before,#wpr-nav-imagify:before{content:url("../img/imagify.svg")}.wpr-icon-imagify-hover:before,#wpr-nav-imagify.isActive:before,#wpr-nav-imagify:hover:before{content:url("../img/imagify-hover.svg")}.wpr-icon-tutorial:before,#wpr-nav-tutorials:before{content:url("../img/play.svg")}.wpr-icon-tutorial-hover:before,#wpr-nav-tutorials.isActive:before,#wpr-nav-tutorials:hover:before{content:url("../img/play-hover.svg")}.wpr-icon-tutorial-alt:before{content:url("../img/play-alt.svg")}.wpr-title1{font-size:1.625rem;line-height:1;font-weight:600;letter-spacing:.01em}.wpr-title2{font-size:1rem;line-height:1.5;font-weight:bold;letter-spacing:-0.02em}.wpr-title3,.wpr-select label,.wpr-select select,.wpr-field--radio label{font-size:0.875rem;line-height:1.7142857143;font-weight:bold;letter-spacing:-0.011em}.wpr-Header{display:flex;flex-direction:column;flex:0 0 225px}@media(max-width: 783px){.wpr-Header{flex:0 0 50px}}.wpr-Header-logo{padding:32px 0 24px;text-align:center}@media(max-width: 783px){.wpr-Header-logo{padding:16px 0 8px}}@media(max-width: 783px){.wpr-Header-logo-desktop{display:none}}.wpr-Header-logo-mobile{display:none}@media(max-width: 783px){.wpr-Header-logo-mobile{display:inline-block}}.wpr-Header-footer{margin-top:auto;padding:48px 20px 0;font-size:0.6875rem;line-height:4.3636363636;color:#666;opacity:.6;font-weight:bold}@media(max-width: 783px){.wpr-Header-footer{display:none}}.wpr-Sidebar{position:relative;display:none;flex:0 0 290px;padding:24px 16px}@media(max-width: 1239px){.wpr-Sidebar{flex:0 0 260px}}@media(max-width: 1083px){.wpr-Sidebar{display:none !important}}.wpr-Sidebar-title{margin-bottom:32px}.wpr-Sidebar-notice{padding:8px 16px;margin-bottom:16px;background:#fff;border:1px solid #e8ebee;border-left:2px solid #1eadbf;border-radius:0 3px 3px 0;color:#666}.wpr-Sidebar-notice p{margin:0}.wpr-Sidebar-notice-link{display:inline-block;margin-top:8px;font-size:0.6875rem;line-height:1.8181818182;color:#02707f;letter-spacing:-0.05em;text-transform:uppercase;text-decoration:none;font-weight:bold}.wpr-Sidebar-notice-link:hover,.wpr-Sidebar-notice-link:focus{color:#40bacb}.wpr-Sidebar-info{padding:16px;background:#ebfaf5;margin-bottom:16px;border-radius:3px}.wpr-Sidebar-info h4{padding-left:48px;font-weight:500}.wpr-Sidebar-info p{margin:8px 0 0;font-size:0.6875rem;line-height:1.4545454545;color:#666}.wpr-Sidebar-info i{position:absolute;display:block;margin-top:-1px;width:40px;height:40px;color:#00a66b;font-size:1.0625rem;line-height:2.3529411765;background:#c6f0de;border-radius:3px;text-align:center}.wpr-Content{position:relative;background:#fff;padding:32px 24px;flex:1 1 auto;max-width:1230px}@media(max-width: 783px){.wpr-Content{padding:24px 16px}}.wpr-Content form>input:last-child{margin-top:24px;color:#fff !important}.wpr-Content.isNotFull{max-width:960px}.wpr-Content-tips{position:absolute;top:48px;right:24px;font-weight:bold;color:#666}@media(max-width: 1083px){.wpr-Content-tips{display:none !important}}.wpr-Page{margin-bottom:32px}.wpr-Page-row{display:flex;flex-direction:row}@media(max-width: 1239px){.wpr-Page-row{flex-direction:column}}.wpr-Page-col{flex:1 1 auto}.wpr-Page-col--fixed{margin-left:24px;flex:0 0 325px}@media(max-width: 1239px){.wpr-Page-col--fixed{margin-left:0}}.wpr-Page#dashboard #wpr-action-refresh_account:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isHidden:before{opacity:0}.wpr-Page#dashboard #wpr-action-refresh_account.wpr-isShown:before{opacity:1}@keyframes loading{from{transform:rotate(0)}to{transform:rotate(360deg)}}.wpr-Page#dashboard .wpr-documentation{margin-top:98px;padding:43px 16px}@media(max-width: 1239px){.wpr-Page#dashboard .wpr-documentation{margin-top:40px}}.wpr-Page#dashboard .wpr-documentation .wpr-button{margin-top:8px}.wpr-Page#dashboard .wpr-documentation i{font-size:3.375rem;line-height:1}.wpr-Page#dashboard .wpr-radio{padding-left:72px}.wpr-Page#dashboard .wpr-field--radio{padding:16px 8px}.wpr-Page#dashboard .wpr-field--radio:first-child{padding-top:0}.wpr-Page#dashboard .wpr-field--radio:last-child{padding-bottom:0}.wpr-Page#dashboard .wpr-field--radio .wpr-field-description{font-style:normal;color:#666;margin-left:72px}.wpr-Page#dashboard .wpr-field-account{padding-bottom:0}.wpr-Page#dashboard .wpr-infoAccount{font-weight:bold;margin-left:8px;color:#444}.wpr-Page#dashboard .wpr-infoAccount:before{content:"";position:relative;display:inline-block;width:13px;height:13px;background:#e0e4e9;border-radius:50%;color:#fff;margin-right:6px;text-align:center;top:2px;font-size:0.5rem;line-height:1.625}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid{color:#00a66b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isValid:before{content:"";font-family:"wpr-icomoon";speak:none;background:#3ece9d;top:-1px}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid{color:#d60e5b}.wpr-Page#dashboard .wpr-infoAccount.wpr-isInvalid:before{content:"!";font-weight:bold;font-size:0.625rem;line-height:1.3;speak:none;background:#d33f49;top:-1px}.wpr-Page#dashboard #wpr-account-data:before{content:none}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss:before{transition:all 200ms ease-out;opacity:1;transform:translateY(0)}.wpr-Page#tools #wpr-action-rocket_enable_mobile_cpcss.wpr-isLoading:before{animation:loading 1.2s infinite}.wpr-Popin{display:none;position:fixed;width:772px;height:auto;top:50%;left:50%;background:#fff;border-radius:3px;transform:translateX(-50%) translateY(-50%);z-index:100000}.wpr-Popin-overlay{display:none;position:fixed;opacity:0;width:100%;height:100%;top:0;left:0;background:rgba(0,0,0,.8);z-index:99999}.wpr-Popin-header{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 32px;background:#2d1656;color:#fff;font-weight:600}.wpr-Popin-close{color:#665090;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-Popin-close:hover,.wpr-Popin-close:focus{color:#fff;outline:none}.wpr-Popin-content{padding:8px 32px;color:#666}.wpr-Popin-flex{display:flex;flex-direction:row;align-items:center}.wpr-Popin-flex div{margin-left:32px}.wpr-Popin p{margin:16px 0}.wpr-Popin .wp-rocket-data-table{padding:12px 24px;background:#f2f3f6 !important;border:none}.wpr-Popin .wp-rocket-data-table td{width:50%;color:#121116;padding:8px 0;padding-left:4px;border-bottom:1px solid #c2cad4}.wpr-Popin .wp-rocket-data-table td:not(.column-primary){font-family:"Monaco";font-size:0.75rem;line-height:1.6666666667;color:#666;letter-spacing:-0.01em}.wpr-Popin .wp-rocket-data-table tr{background:#f2f3f6;border-bottom:1px solid #e0e4e9}.wpr-Popin .wp-rocket-data-table tr:last-child td{border-bottom:none}.wpr-Popin .wp-rocket-data-table strong{font-weight:500}.wpr-Popin .wp-rocket-data-table em{font-style:normal}.wpr-Popin .wp-rocket-data-table code{padding:0;margin:0;background:transparent}.wpr-rocketcdn-cta-small{border-radius:5px;margin:24px 0;padding:16px}.wpr-rocketcdn-cta-small.wpr-isHidden{display:none}.wpr-rocketcdn-cta-small .notice-title{font-weight:700}.wpr-rocketcdn-cta-small .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta-small .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta{margin:10px 0;position:relative}.wpr-rocketcdn-cta.wpr-isHidden{display:none}.wpr-rocketcdn-cta-close{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(255,255,255,.5)}.wpr-rocketcdn-cta-close--no-promo{position:absolute;top:16px;right:16px;background:transparent;border:0;color:rgba(0,0,0,.5)}.wpr-rocketcdn-cta-close--no-promo:before{content:"✕";font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta-close:before{content:"✕";color:#121116;font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo{background:#ffd147;border-top-left-radius:2px;border-top-right-radius:2px;padding:16px 48px 16px 16px}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-title{font-weight:700;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-promo-date{margin:0;font-weight:500;font-size:1rem;line-height:1.5}.wpr-rocketcdn-cta-subtitle{color:#444;margin-top:0;font-size:0.875rem;line-height:1.7142857143}.wpr-rocketcdn-cta-content{background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta-content--no-promo{border-top-left-radius:2px;border-top-right-radius:2px;background:#f9fafb;border-top:1px solid #e8ebee;border-left:1px solid #e8ebee;border-right:1px solid #e8ebee;padding:16px}.wpr-rocketcdn-cta .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-flex{text-align:start;flex-direction:column}}.wpr-rocketcdn-cta .wpr-rocketcdn-features{margin:0;padding-right:16px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-features{border-right:none}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{background-color:#fff;align-items:center;display:flex;flex-direction:column;padding:16px;padding-bottom:32px;width:33.3333333333%;max-width:219px}@media(max-width: 783px){.wpr-rocketcdn-cta .wpr-rocketcdn-pricing{width:auto}}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing-regular{color:#72777c;margin-bottom:8px}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-billing-detail{margin-bottom:16px;font-size:1rem;line-height:1.375}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-major{font-weight:700;font-size:3rem;line-height:1.1666666667}.wpr-rocketcdn-cta .wpr-rocketcdn-pricing .wpr-rocketcdn-cta-currency-minor{font-weight:700;vertical-align:top;font-size:1.5rem;line-height:1.3333333333}.wpr-rocketcdn-cta .wpr-rocketcdn-feature{margin:24px 0;min-height:30px;padding-left:62px;position:relative}.wpr-rocketcdn-cta .wpr-rocketcdn-feature:before{position:absolute;top:50%;left:5px;transform:translateY(-50%)}.wpr-rocketcdn-cta .wpr-rocketcdn-bandwidth:before{content:url(../img/bandwidth.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-configuration:before{content:url(../img/configuration.svg)}.wpr-rocketcdn-cta .wpr-rocketcdn-automatic:before{content:url(../img/automatic.svg)}.wpr-rocketcdn-cta-footer{color:#121116;font-weight:600;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-cta-footer a{position:relative;padding-left:22px}.wpr-rocketcdn-cta-footer a:before{content:"";position:absolute;width:14px;height:15px;background:url("../img/icon-i-circle.svg") no-repeat center center;top:3px;left:0}.wpr-rocketcdn-cta-promo-footer{color:#121116;padding:16px 8px 8px;font-size:0.875rem;line-height:1.5714285714}.wpr-rocketcdn-subscription{text-align:end}.wpr-rocketcdn-subscription .wpr-rocketcdn-open{color:#666;text-decoration:underline}.wpr-license-upgrade-button{font-weight:bold;text-decoration:underline}.wpr-license-upgrade-button:hover{text-decoration:none}.wpr-field.wpr-field-account .wpr-flex{align-items:flex-start}.wpr-infoAccount-License{flex:1 0 60%;margin-right:16px}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div{width:100%}}.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field.wpr-field-account .wpr-flex>div:last-child{text-align:left}}.wpr-Popin-Upgrade .wpr-Popin-content{padding-bottom:32px}.wpr-Popin-Upgrade .wpr-Popin-flex{justify-content:space-between}.wpr-Popin-Upgrade .wpr-Popin-flex>div{align-items:center;border:1px solid #dadada;border-radius:24px;display:flex;flex-direction:column;margin:0 16px 0 0;padding:24px;text-align:center;width:50%}.wpr-Popin-Upgrade .wpr-Popin-flex>div:last-child{margin-right:0}@media(max-width: 783px){.wpr-Popin-Upgrade .wpr-Popin-flex>div{margin:0;width:100%}}.wpr-Upgrade-Plus .wpr-upgrade-title::before{content:url(../img/plus.svg);display:block;width:117px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}.wpr-Upgrade-Infinite .wpr-upgrade-title::before{content:url(../img/infinite.svg);display:block;width:48px;height:31px;top:0;position:absolute;left:50%;transform:translateX(-50%)}div.wpr-upgrade-saving{background:#ffd147;border-radius:44px;color:#121116;font-weight:bold;margin:0 0 24px 0;padding:8px 16px;text-align:center}.wpr-upgrade-title{color:#f56f46;font-size:1.875rem;line-height:1.2;margin-bottom:16px;padding-top:55px;position:relative}div.wpr-upgrade-prices{color:#121116;font-size:3rem;line-height:1;font-weight:bold;margin:0 0 16px 0}.wpr-upgrade-price-symbol{font-size:1.875rem;line-height:1;vertical-align:super}.wpr-upgrade-price-regular{color:#72777c;font-size:1rem;line-height:1;vertical-align:top}div.wpr-upgrade-websites{color:#121116;font-size:0.875rem;line-height:1;font-weight:bold;margin:0 0 24px 0}.wpr-upgrade-link{background:#fff;border:1px solid #f56f46;border-radius:800px;color:#f56f46;display:block;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.wpr-upgrade-link:hover{background:#f56f46;color:#fff}.wpr-upgrade-link::after{content:"→";font-weight:normal;margin-left:8px}.rocket-promo-banner{background:#ffd147;display:flex;justify-content:space-around;margin-top:16px;padding:24px;position:relative}@media(max-width: 783px){.rocket-promo-banner{flex-flow:column}}.rocket-promo-banner>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-promo-banner>div{width:100%}}.rocket-promo-title{font-weight:bold;margin-bottom:24px}.rocket-promo-discount{background:#fff;border-radius:44px;display:inline-block;margin-right:8px;padding:8px 16px;text-transform:uppercase}.rocket-promo-message,.rocket-promo-deal{font-size:1rem;line-height:1.5;margin-bottom:0}.rocket-promo-deal{margin-top:8px}.rocket-promo-cta-block{align-items:center;margin-right:24px}.rocket-promo-countdown{display:flex;flex-flow:row wrap;width:66%}.rocket-promo-countdown>.rocket-countdown-item{background:#fff;border-radius:8px;flex:1;margin-right:8px;padding:8px;text-align:center}.rocket-promo-countdown>.rocket-countdown-item>.rocket-countdown-value{display:block;font-size:1.5rem;line-height:1;font-weight:bold}.rocket-promo-cta{background:#172153;border-radius:44px;color:#fff;font-weight:bold;padding:16px 32px}.rocket-renewal-banner{background:#ffd147;display:flex;flex-flow:row wrap;align-items:center;justify-content:space-evenly;margin-top:16px;padding:8px}.rocket-renewal-expired-banner{background:#ffd147;margin-top:16px;padding:24px;position:relative}.rocket-renewal-expired-banner-container{display:flex;justify-content:space-around}@media(max-width: 783px){.rocket-renewal-expired-banner-container{flex-flow:column}}.rocket-renewal-expired-banner-container>div{display:flex;flex-flow:column;width:50%}@media(max-width: 783px){.rocket-renewal-expired-banner-container>div{width:100%}}.rocket-renew-message{margin:0 16px}.rocket-renew-message>p{font-size:0.875rem;line-height:1.5}.rocket-expired-message>p{font-size:0.875rem;line-height:1.5;padding-left:80px}.rocket-expired-title{font-size:1.375rem;line-height:1.5;font-weight:bold}.rocket-expired-title::before{content:url(../img/warning.svg);display:inline-block;height:48px;width:63px;margin-right:17px;vertical-align:middle}.rocket-expired-cta-container{justify-content:center;align-items:center}.rocket-renew-cta{display:block;background:#172153;border-radius:44px;color:#fff;font-size:1rem;line-height:1.125;font-weight:bold;padding:16px 24px;text-decoration:none}.rocket-renew-cta:hover,.rocket-renew-cta:active,.rocket-renew-cta:focus{color:#fff}.rocket-renew-cta::after{content:"→";font-weight:normal;margin-left:8px}.wpr-menuItem{position:relative;display:block;padding:16px 44px 18px 20px;text-decoration:none;color:#121116;border-top:1px solid #e0e4e9;border-left:2px solid transparent;overflow:hidden;transition:all 100ms ease-out;-webkit-transition:all 100ms ease-out}@media(max-width: 783px){.wpr-menuItem{width:57px;height:50px;padding:0}}.wpr-menuItem:before{position:absolute;top:calc(50% - 12px);right:18px;text-align:center;font-size:1.4375rem;line-height:1;color:#121116;opacity:.4;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-menuItem:hover,.wpr-menuItem.isActive{color:#121116;background:#fff;border-left:2px solid #f56640}.wpr-menuItem:hover .wpr-menuItem-title,.wpr-menuItem.isActive .wpr-menuItem-title{color:#f56640}.wpr-menuItem:hover:before,.wpr-menuItem.isActive:before{color:#f56640;opacity:1}.wpr-menuItem:focus{color:#121116}.wpr-menuItem:focus:before{color:#121116}.wpr-menuItem-title{font-size:0.8125rem;line-height:1.4615384615;font-weight:bold;letter-spacing:-0.08px;text-transform:uppercase;color:#121116}@media(max-width: 783px){.wpr-menuItem-title{display:none !important}}.wpr-menuItem-description{margin-top:2px;color:#72777c;font-size:0.8125rem;line-height:1.2307692308;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}@media(max-width: 783px){.wpr-menuItem-description{display:none}}.wpr-menuItem.wpr-subMenuItem{display:none;padding:10px 20px 8px 25px}@media(max-width: 783px){.wpr-menuItem.wpr-subMenuItem{padding:8px 20px 8px 23px;height:35px}}.wpr-menuItem.wpr-subMenuItem .wpr-menuItem-title{display:inline-block;font-size:0.8125rem;line-height:1.8461538462;text-transform:inherit;font-weight:600}.wpr-menuItem.wpr-subMenuItem:before{position:relative;display:inline-block;top:2px;right:2px;margin-right:8px;font-size:1rem;line-height:1}#wpr-nav-cache:before{right:20px}#wpr-nav-tools:before{right:20px}.wpr-sectionHeader{position:relative;border-bottom:1px solid #e0e4e9;padding-bottom:24px}.wpr-sectionHeader:before{content:"";position:absolute;display:block;width:48px;height:2px;bottom:-1px;left:0;background:#f56640}.wpr-sectionHeader .wpr-title1{line-height:48px}.wpr-sectionHeader .wpr-title1:before{display:inline-block;width:48px;height:48px;margin-right:24px;background:#fde0d9;color:#f56640;text-align:center;border-radius:3px}.wpr-sectionHeader-title{margin-top:8px;padding-left:72px}.wpr-sectionHeader-description{color:#666;margin-top:8px;padding-left:72px}.wpr-sectionHeader-logo{vertical-align:top;margin-right:24px}.wpr-optionHeader{position:relative;display:flex;justify-content:space-between;margin-top:48px;padding-bottom:9px;border-bottom:1px solid #e0e4e9}.wpr-optionHeader .wpr-title2{line-height:24px;color:#f56640;padding-right:40px}.wpr-optionHeader .wpr-infoAction{margin-right:8px}.wpr-optionHeader.wpr-isHidden{display:none}.wpr-fieldsContainer{margin-top:8px}.wpr-fieldsContainer-description{color:#666}.wpr-fieldsContainer-description a:hover,.wpr-fieldsContainer-description a:focus{color:#1eadbf}.wpr-fieldsContainer-fieldset{margin-top:16px;background:#f9fafb;padding:16px;border:1px solid #e8ebee;border-radius:2px}.wpr-fieldsContainer-fieldset--split{display:flex}.wpr-fieldsContainer-fieldset--split .wpr-field+.wpr-field{border:none}.wpr-fieldsContainer-fieldset--split .wpr-field{flex:0 0 50%;padding:0}.wpr-fieldsContainer-fieldset--split .wpr-field:first-child{padding-right:15px}.wpr-fieldsContainer-fieldset--split .wpr-field:last-child{padding-left:15px}.wpr-fieldsContainer-helper{margin-top:16px;color:#d60e5b;font-weight:500}.wpr-fieldsContainer-helper:before{position:relative;top:3px;font-size:1.125rem;line-height:1;margin-right:4px}.wpr-fieldsContainer.wpr-isHidden{display:none}.wpr-infoAction{position:relative;height:24px;font-size:0.8125rem;line-height:1.8461538462;vertical-align:middle;letter-spacing:-0.03em;font-weight:500;color:#666;white-space:nowrap;text-decoration:none;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out}.wpr-infoAction:before{position:absolute;margin-left:-26px;font-size:1.125rem;line-height:1.3333333333;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-infoAction--help{text-transform:uppercase;color:#02707f;font-weight:bold;font-size:0.75rem;line-height:2;letter-spacing:0}@media(max-width: 783px){.wpr-infoAction--help{display:none}}.wpr-infoAction--help:before{color:#1eadbf}.wpr-infoAction:hover,.wpr-infoAction:focus{color:#f56640;outline:none}.wpr-infoAction:hover:before,.wpr-infoAction:focus:before{color:#ffa58b}.wpr-button{position:relative;display:inline-block;width:auto;padding:8px 24px;text-align:center;background:#f56640;box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08);text-transform:uppercase;text-decoration:none;letter-spacing:-0.08px;font-weight:bold;border-radius:4px;color:#fff !important;white-space:nowrap;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:all 200ms ease-out;-webkit-transition:all 200ms ease-out;font-size:0.8125rem;line-height:1.5384615385}.wpr-button:hover,.wpr-button:focus{color:#fff !important;transform:translateY(-2px);box-shadow:0 7px 14px rgba(50,50,93,.25),0 3px 6px rgba(0,0,0,.2)}.wpr-button--small{padding:5px 0;letter-spacing:-0.08px;font-size:0.6875rem;line-height:1.8181818182}.wpr-button--icon{min-width:160px;padding-left:8px;padding-right:40px;text-align:left}.wpr-button--icon:before{position:absolute;right:8px;font-size:0.9375rem;line-height:1.3333333333}.wpr-button--fixed{position:fixed;display:flex;padding:8px 16px;right:24px;bottom:32px;border-radius:16px}.wpr-button--fixed:before{font-size:1.125rem;line-height:1;margin-right:8px}.wpr-button--purple{background:#2d1656}.wpr-button--blue{min-width:inherit;background:#1eadbf}.wpr-button--lightBlue{min-width:inherit;background:#40bacb}.wpr-button--red{background:#d33f49}.wpr-button--gray{background:#e0e4e9;color:#121116 !important}.wpr-button--gray:hover,.wpr-button--gray:active,.wpr-button--gray:focus{color:#121116 !important}.wpr-button--gray.radio-active{background:#2d1656 !important;color:#fff !important}.wpr-button--gray.radio-active:hover,.wpr-button--gray.radio-active:active,.wpr-button--gray.radio-active:focus{color:#fff !important}.wpr-button--blueDark{background:#02707f}.wpr-button:focus{outline:none;color:#fff !important}.wpr-field{padding:16px 0;transition:opacity 150ms ease-out;-webkit-transition:opacity 150ms ease-out}.wpr-field+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9}.wpr-field:first-child{padding-top:0}.wpr-field:last-child{padding-bottom:0}.wpr-field-description{margin-top:4px;color:#666;font-size:0.8125rem;line-height:1.5384615385}.wpr-field-description .wpr-js-popin{color:#444;text-decoration:underline}.wpr-field-description .wpr-js-popin:hover,.wpr-field-description .wpr-js-popin:focus{color:#1eadbf}.wpr-field-description a:hover,.wpr-field-description a:focus{color:#1eadbf}.wpr-field-description-helper{color:#00a66b}.wpr-field-description-label{font-size:0.875rem;line-height:1.4285714286;font-weight:500;color:#666}.wpr-field-list{margin:0;color:#666;font-weight:500}.wpr-field-list li+li{margin-top:16px}.wpr-field-list li:before{position:relative;top:3px;margin-right:8px;color:#02707f;font-size:1.125rem;line-height:1.1111111111}.wpr-field-list a{text-decoration:none}.wpr-field-list a:hover,.wpr-field-list a:focus{color:#1eadbf}.wpr-field-betweenText{margin:0 16px;font-weight:bold}.wpr-field .wpr-button{margin:8px 0}.wpr-field .wpr-flex{display:flex;justify-content:space-between;align-items:center}@media(max-width: 783px){.wpr-field .wpr-flex{text-align:left;flex-direction:column}}.wpr-field .wpr-flex--egal>div{flex:0 0 50%}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div{width:100%}}.wpr-field .wpr-flex--egal>div:last-child{text-align:right}@media(max-width: 783px){.wpr-field .wpr-flex--egal>div:last-child{text-align:left}}.wpr-field .wpr-flex--egal>div .wpr-field-description{font-style:normal;color:#666}.wpr-field p{margin-bottom:0}.wpr-field label{font-weight:500}.wpr-field h4{font-size:0.875rem;line-height:1.7142857143}.wpr-field.wpr-isDisabled{opacity:.55}.wpr-field.wpr-isParent{padding-bottom:0;margin-bottom:16px}.wpr-field.wpr-Delayjs{margin-top:16px}.wpr-field.wpr-RemoveUnUsedCss{margin-bottom:0}.wpr-field.wpr-NoPaddingBottom{padding-bottom:0}.wpr-field.wpr-isLastElem{margin-top:16px}.wpr-field.wpr-isHidden{display:none}.wpr-field .wpr-isHidden{display:none}.wpr-field--children{display:none;padding-left:32px}.wpr-field--children.wpr-isOpen{display:block}.wpr-field--children.wpr-field--textarea{padding-right:80px}@media(max-width: 1239px){.wpr-field--children.wpr-field--textarea{padding-right:32px}}@media(max-width: 783px){.wpr-field--children.wpr-field--textarea{padding-right:0}}.wpr-field--children.no-space{padding-left:0}.wpr-field--checkbox .wpr-field-description{margin-left:32px}.wpr-field--radio{padding:24px 16px}.wpr-field--radio:first-child{padding-top:8px}.wpr-field--radio:last-child{padding-bottom:8px}.wpr-field--radio .wpr-field-description{margin-left:88px}.wpr-field--radio .wpr-field-description button{color:#666}.wpr-field--split{display:inline-block;width:50%;padding-right:16px;padding-bottom:0}.wpr-field--split+.wpr-field--split{padding-left:16px;padding-right:0}.wpr-field--split+.wpr-field--split:nth-child(2){padding-top:0;border-top:none}.wpr-field--cache .wpr-field--number,.wpr-field--cache .wpr-field--select{display:inline-block;padding-top:0;width:auto;padding-bottom:0;font-weight:bold}.wpr-field--cache .wpr-field--select{position:relative;padding-left:8px;top:-2px;border-top:none}.wpr-field--cache .wpr-field--number .wpr-text input[type=number]{background:#f2f3f6;height:35px;border:1px solid #e0e4e9;font-family:inherit;font-size:1em}.wpr-field--cache .wpr-field-description{margin:8px 0;color:#00a66b}.wpr-field--cache .wpr-field-description-label{color:#121116}.wpr-field--textarea .wpr-field-description pre{background:rgba(0,0,0,.07);padding:1em;margin:1em 0 0;white-space:normal}.wpr-field--textarea .wpr-field-description pre code{background:transparent;-webkit-touch-callout:all;-webkit-user-select:all;-khtml-user-select:all;-moz-user-select:all;-ms-user-select:all;user-select:all;color:#121116}.wpr-fieldWarning{display:none;position:relative;padding:16px 16px 24px 56px;background:#19073b;margin:8px 0 0;color:#fff}.wpr-fieldWarning.wpr-isOpen{display:block}.wpr-fieldWarning:after{content:"";position:absolute;display:block;top:-8px;left:20px;width:0;height:0;border-style:solid;border-width:0 12px 8px 12px;border-color:transparent transparent #19073b transparent}.wpr-fieldWarning:before{content:"";position:absolute;display:block;width:calc(100% + 32px);height:100%;top:0;left:-16px;background:#19073b}.wpr-fieldWarning-title{position:relative;color:#f56640;font-size:0.875rem;line-height:1.4285714286;font-weight:bold}.wpr-fieldWarning-title:before{position:absolute;left:-36px;font-size:1.5rem;line-height:.8333333333}.wpr-fieldWarning-description{position:relative;margin-top:8px}.wpr-fieldWarning .wpr-button{margin-top:16px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning:after{left:40px}.wpr-warningContainer+.wpr-warningContainer,.wpr-warningContainer+.wpr-field,.wpr-field+.wpr-warningContainer{border-top:1px solid #e0e4e9;padding-top:16px}.wpr-warningContainer+.wpr-warningContainer,.wpr-field+.wpr-warningContainer{padding-bottom:16px}@media only screen and (max-width: 400px){.wpr-fieldWarning.wpr-radio-warning{margin-left:-32px}.wpr-fieldWarning.wpr-radio-warning .wpr-button{white-space:normal;padding-right:32px}}@media only screen and (max-width: 350px){.wpr-radio-buttons{padding-left:24px}.wpr-fieldWarning.wpr-radio-warning{margin-left:-24px;padding-left:30px;padding-right:0}.wpr-fieldWarning.wpr-radio-warning .wpr-button{padding-right:24px}}.wpr-documentation{padding:24px 16px;border-radius:4px;color:#fff;text-align:center;background:#40bacb}.wpr-documentation p{margin:8px 0 16px;font-weight:500}.wpr-documentation i{display:block;font-size:2.25rem;line-height:1;margin-bottom:8px}.wpr-documentation .wpr-button{padding-left:16px;padding-right:16px}.wpr-addon{padding:24px 0}.wpr-addon .wpr-flex{align-items:flex-start}@media(max-width: 783px){.wpr-addon .wpr-flex{align-items:center}}.wpr-addon .wpr-flex>div{text-align:left}.wpr-addon .wpr-addon-title{margin-bottom:16px;font-weight:500}.wpr-addon .wpr-field-description{font-style:normal}.wpr-addon .wpr-addon-logo{text-align:center;flex:0 0 160px}@media(max-width: 1239px){.wpr-addon .wpr-addon-logo{max-width:100px}.wpr-addon .wpr-addon-logo img{width:100%;height:auto}}@media(max-width: 1083px){.wpr-addon .wpr-addon-logo{max-width:160px}}@media(max-width: 783px){.wpr-addon .wpr-addon-logo{flex:0 0 auto;margin-bottom:16px}}.wpr-addon .wpr-addon-text{margin-left:32px;flex:1 1 auto}@media(max-width: 1239px){.wpr-addon .wpr-addon-text{margin-left:16px}}@media(max-width: 1083px){.wpr-addon .wpr-addon-text{margin-left:32px}}@media(max-width: 783px){.wpr-addon .wpr-addon-text{margin-left:0}}.wpr-addon .wpr-addon-text a{display:inline-block;margin-top:24px}.wpr-addon .wpr-addon-text .button{margin-top:24px}.wpr-addon .wpr-addon-text .wpr-add-on-helper{font-weight:normal;color:#1eadbf}.wpr-addon .wpr-addon-text .wpr-add-on-helper a{margin-top:0}.wpr-webp-addon .wpr-addon .wpr-addon-text a{margin-top:0px}.wpr-notice{position:relative;color:#444;background:#ebfaf5 url("../img/bg-activated.svg") no-repeat 90% bottom;background-size:350px;margin-top:24px;border-radius:4px;overflow:hidden}.wpr-notice-container{padding:24px 25% 24px 40px}.wpr-notice-supTitle{font-size:1rem;line-height:1.375;font-weight:bold}.wpr-notice-title{font-size:1.5rem;line-height:1.3333333333;color:#3ece9d;margin-top:16px;font-weight:bold}.wpr-notice-description{font-size:0.875rem;line-height:1.5714285714;margin:16px 0 24px}.wpr-notice-continue{color:#666}.wpr-notice-close{position:absolute;top:24px;right:24px;color:#666;text-decoration:none;font-size:1.5rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-notice-close:hover{color:#444}.wpr-notice-close:focus{outline:none}.wpr-tools{position:relative;display:flex;flex-direction:row;padding:32px 0}@media(max-width: 1239px){.wpr-tools{flex-direction:column}}@media(max-width: 1083px){.wpr-tools{flex-direction:row}}@media(max-width: 783px){.wpr-tools{flex-direction:column}}.wpr-tools:nth-child(2){margin-top:16px}.wpr-tools+.wpr-tools{border-top:1px solid #e0e4e9}.wpr-tools-label{display:block}.wpr-tools-label:before{position:absolute;left:0;margin-top:5px;font-size:2.25rem;line-height:1;color:#f56640}@media(max-width: 783px){.wpr-tools-label:before{display:block;position:initial}}.wpr-tools-col{flex:1 1 auto}.wpr-tools-col:first-child{padding-left:72px;padding-right:24px;min-width:340px}@media(max-width: 783px){.wpr-tools-col:first-child{padding-left:0;padding-right:0;min-width:auto}}.wpr-tools-col:last-child{text-align:right}@media(max-width: 783px){.wpr-tools-col:last-child{text-align:left}}.wpr-tools .wpr-button{margin-top:24px;white-space:normal}.wpr-tools .wpr-field-description{font-style:normal;color:#666}.wpr-imagify{display:flex;justify-content:space-between;flex-wrap:wrap;margin-top:30px}.wpr-imagify-description{width:33.3333333333%;padding-right:60px}@media(max-width: 1239px){.wpr-imagify-description{width:auto;padding-right:0}}.wpr-imagify-screenshot{width:66.6666666667%}@media(max-width: 1239px){.wpr-imagify-screenshot{margin-top:60px;width:auto}}.wpr-imagify-screenshot img{max-width:100%;height:auto}.wpr-imagify-more,.wpr-imagify-name{color:#00a8dc;font-weight:700;margin-bottom:0}.wpr-imagify-more::before{content:"✓";color:#000;font-size:2rem;margin-right:5px}.wpr-imagify p{font-size:1rem}.wpr-imagify p:first-child{margin-top:0}.wpr-imagify ul{margin-top:0;margin-left:40px;list-style-type:">"}.wpr-imagify li{padding-left:7px}.wpr-imagify a{text-decoration:none}.wpr-imagify a:hover{color:#00a8dc}.wpr-imagify .button-primary{background:#2abb9b;border:1px solid #bebebe;box-shadow:none;font-size:1rem;font-weight:700;height:auto;line-height:1;margin-top:60px;padding:20px 45px;text-shadow:none;text-transform:uppercase}.wpr-tutorials-section{display:flex;flex-flow:row wrap}div.wpr-tutorial-item{width:32%;margin-bottom:10px;margin-right:1%}.wpr-tutorial-link{cursor:pointer;transition:color 200ms ease-out}.wpr-tutorial-link:hover{color:#1eadbf}@media(max-width: 1083px){div.wpr-tutorial-item{width:48%}}@media(max-width: 783px){div.wpr-tutorial-item{width:100%}}.wpr-rocketcdn-modal{display:none}.wpr-rocketcdn-modal.is-open{display:block}.wpr-rocketcdn-modal__overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);display:flex;justify-content:center;align-items:center}.wpr-rocketcdn-modal__container{max-width:674px;max-height:100vh;overflow-y:auto;box-sizing:border-box}.wpr-rocketcdn-modal iframe{max-width:100%}.wpr-checkbox{position:relative;padding-left:32px}.wpr-checkbox label{user-select:none}.wpr-checkbox [type=checkbox]:not(:checked),.wpr-checkbox [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-checkbox [type=checkbox]:not(:checked)+label:before,.wpr-checkbox [type=checkbox]:checked+label:before{content:"";position:absolute;left:0;top:4px;width:14px;height:14px;border:2px solid #444;border-radius:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after,.wpr-checkbox [type=checkbox]:checked+label:after{content:"";position:absolute;top:5px;left:2px;color:#fff;font-family:"wpr-icomoon";speak:none;font-size:0.875rem;line-height:1.2857142857;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-checkbox [type=checkbox]:not(:checked)+label:after{opacity:0;transform:scale(2)}.wpr-checkbox [type=checkbox]:checked+label:after{opacity:1;transform:scale(1)}.wpr-checkbox [type=checkbox]:checked+label:before{background:#19073b;border-color:#19073b}.wpr-checkbox [type=checkbox]:checked:focus+label:before{background:#665090;border:2px dotted #665090}.wpr-checkbox [type=checkbox]:focus+label:before{border:2px dotted #444}.wpr-checkbox-warning{color:#d33f49;margin-left:16px}.wpr-checkbox-warning::before{margin-right:8px}.wpr-radio{position:relative;padding-left:88px}.wpr-radio label{user-select:none;font-weight:bold}.wpr-radio [type=checkbox]:not(:checked),.wpr-radio [type=checkbox]:checked{position:absolute;left:-9999px}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before,.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{content:"";position:absolute}.wpr-radio [type=checkbox]:not(:checked)+label:before,.wpr-radio [type=checkbox]:checked+label:before{left:0;width:52px;height:22px;background:#fff;border-radius:12px;border:1px solid #444;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label:after,.wpr-radio [type=checkbox]:checked+label:after{width:18px;height:18px;border-radius:100%;background:#444;top:3px;left:3px;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:disabled+label:after,.wpr-radio [type=checkbox]:disabled+label:after{background:#e0e4e9}.wpr-radio [type=checkbox]:disabled+label:before,.wpr-radio [type=checkbox]:disabled+label:before{border:1px solid #e0e4e9}.wpr-radio [type=checkbox]:checked+label:before{border-color:#1eadbf}.wpr-radio [type=checkbox]:checked+label:after{background:#1eadbf;left:33px}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{position:absolute;left:4px;width:52px;text-transform:uppercase;letter-spacing:-0.01em;font-weight:bold;font-size:0.6875rem;line-height:2.1818181818;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-radio [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{content:attr(data-l10n-inactive);left:27px;color:#666}.wpr-radio [type=checkbox]:checked+label .wpr-radio-ui:after{content:attr(data-l10n-active);color:#02707f}.wpr-radio--reverse{padding-right:72px;padding-left:0}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:before,.wpr-radio--reverse [type=checkbox]:checked+label:before{right:0;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label:after,.wpr-radio--reverse [type=checkbox]:checked+label:after{right:33px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label:after{right:3px;left:inherit}.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui,.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before,.wpr-radio--reverse [type=checkbox]:checked+label .wpr-radio-ui:after{right:-2px;left:inherit}.wpr-radio--reverse [type=checkbox]:not(:checked)+label .wpr-radio-ui:before{right:-25px;left:inherit}.wpr-radio [type=checkbox]:not(:checked):focus+label:before{border:1px dashed #444}.wpr-radio [type=checkbox]:checked:focus+label:before{border:1px dashed #1eadbf}.wpr-radio--tips [type=checkbox]:checked+label:before{border-color:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label:after{background:#3ece9d}.wpr-radio--tips [type=checkbox]:checked+label .wpr-radio-ui:after{color:#00a66b}.wpr-radio--tips [type=checkbox]:checked:focus+label:before{border:1px dashed #3ece9d}.wpr-select{position:relative}.wpr-select select{margin:0;padding:0 8px;height:36px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;box-shadow:none;border-radius:0;letter-spacing:.011em}.wpr-select select:focus{outline:none;border-color:#444;box-shadow:none}.wpr-select label{font-weight:bold;margin-left:8px}.wpr-textarea{margin-top:8px}.wpr-textarea textarea{padding:8px;width:100%;height:100px;font-family:Monaco;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-size:0.8125rem;line-height:1.2307692308;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-textarea textarea:focus{outline:none;border-color:#444;box-shadow:none}.wpr-textarea+.wpr-field-description{color:#00a66b}.wpr-text label{color:#666}.wpr-text input[type=text],.wpr-text input[type=number]{margin-top:8px;padding:0 8px;width:100%;height:32px;color:#121116;background:#fff;border:2px solid #c2cad4;border-radius:3px;font-family:Monaco;font-size:0.75rem;line-height:1.3333333333;transition:border 200ms ease-out;-webkit-transition:border 200ms ease-out}.wpr-text input[type=text]:focus,.wpr-text input[type=number]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-text input[type=text].wpr-isError,.wpr-text input[type=number].wpr-isError{border-color:#d33f49}.wpr-text input[type=number]{width:80px}.wpr-text--number label{margin-right:8px}.wpr-upload input[type=file]{display:block;width:252px;margin:8px 8px 8px 0;padding:8px;border:1px solid #e0e4e9;background:#f2f3f6;color:#121116;font-size:0.6875rem;line-height:1.4545454545}.wpr-upload input[type=file]:focus{outline:none;border-color:#444;box-shadow:none}.wpr-multiple{display:flex;align-items:center;flex-wrap:wrap}@media(max-width: 783px){.wpr-multiple{align-items:center;flex-direction:column}}.wpr-multiple .wpr-text{flex:1 1 auto;position:relative;top:-2px}@media(max-width: 783px){.wpr-multiple .wpr-text{width:100%}}.wpr-multiple .wpr-button{margin-left:16px;width:auto;min-width:inherit;padding-right:30px}@media(max-width: 783px){.wpr-multiple .wpr-button{margin-left:0}}.wpr-multiple input[type=text]{flex-grow:2}.wpr-multiple select{height:30px}.wpr-multiple-default{margin-right:20px}.wpr-multiple-list{display:none;padding:8px 0;margin:16px 0 0;background:#f2f3f6;border-radius:2px}.wpr-multiple-list li{margin-bottom:0;padding:4px 16px;font-size:0.8125rem;line-height:1.2307692308;font-family:Monaco}.wpr-multiple-list li span{display:inline-block;transition:all 150ms ease-out;-webkit-transition:all 150ms ease-out}.wpr-multiple-close{position:relative;top:3px;font-size:1rem;line-height:1;transition:color 200ms ease-out;-webkit-transition:color 200ms ease-out}.wpr-multiple-close:focus{outline:none}.wpr-multiple-close:hover,.wpr-multiple-close:focus{color:#d33f49}.wpr-multiple-close:hover+span,.wpr-multiple-close:focus+span{color:#d33f49} \ No newline at end of file diff --git a/assets/css/wpr-modal.css b/assets/css/wpr-modal.css index 0601f860fc..7f4fa9eb6d 100644 --- a/assets/css/wpr-modal.css +++ b/assets/css/wpr-modal.css @@ -68,3 +68,4 @@ .wpr-modal-confirm:hover { box-shadow: none; } + diff --git a/assets/js/wpr-admin.js b/assets/js/wpr-admin.js index 181df03553..985e21ac02 100644 --- a/assets/js/wpr-admin.js +++ b/assets/js/wpr-admin.js @@ -1,2 +1,3292 @@ -!function s(n,r,a){function o(e,t){if(!r[e]){if(!n[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(l)return l(e,!0);throw(i=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",i}i=r[e]={exports:{}},n[e][0].call(i.exports,function(t){return o(n[e][1][t]||t)},i,i.exports,s,n,r,a)}return r[e].exports}for(var l="function"==typeof require&&require,t=0;t form > #wpr-options-submit"),this.$pages=document.querySelectorAll(".wpr-Page"),this.$sidebar=document.querySelector(".wpr-Sidebar"),this.$content=document.querySelector(".wpr-Content"),this.$tips=document.querySelector(".wpr-Content-tips"),this.$links=document.querySelectorAll(".wpr-body a"),this.$menuItem=null,this.$page=null,this.pageId=null,this.bodyTop=0,this.buttonText=this.$submitButton.value,i.getBodyTop(),window.onhashchange=function(){i.detectID()},window.location.hash?(this.bodyTop=0,this.detectID()):(e=localStorage.getItem("wpr-hash"),this.bodyTop=0,e?(window.location.hash=e,this.detectID()):(this.$menuItems[0].classList.add("isActive"),localStorage.setItem("wpr-hash","dashboard"),window.location.hash="#dashboard"));for(var s=0;s{a.querySelectorAll(".wpr-rocketcdn-open").forEach(t=>{t.addEventListener("click",t=>{t.preventDefault()})}),function(){var t="";t+="action=rocketcdn_process_status";const e=r(t+="&nonce="+rocket_ajax_data.nonce);e.onreadystatechange=()=>{e.readyState===XMLHttpRequest.DONE&&200===e.status&&!0===JSON.parse(e.responseText).success&&MicroModal.show("wpr-rocketcdn-modal")}}(),MicroModal.init({disableScroll:!0})}),s.addEventListener("load",()=>{let t=a.querySelector("#wpr-rocketcdn-open-cta"),e=a.querySelector("#wpr-rocketcdn-close-cta"),i=a.querySelector("#wpr-rocketcdn-cta-small"),s=a.querySelector("#wpr-rocketcdn-cta");function n(t){var e="";return e+="action=toggle_rocketcdn_cta",e+="&status="+t,e+="&nonce="+rocket_ajax_data.nonce}null!==t&&null!==i&&null!==s&&t.addEventListener("click",t=>{t.preventDefault(),i.classList.add("wpr-isHidden"),s.classList.remove("wpr-isHidden"),r(n("big"))}),null!==e&&null!==i&&null!==s&&e.addEventListener("click",t=>{t.preventDefault(),i.classList.remove("wpr-isHidden"),s.classList.add("wpr-isHidden"),r(n("small"))})}),s.onmessage=t=>{var e,i,s=rocket_ajax_data.origin_url;t.origin===s&&((e=t.data).hasOwnProperty("cdnFrameHeight")&&(a.getElementById("rocketcdn-iframe").style.height="".concat(e.cdnFrameHeight,"px")),(i=t.data).hasOwnProperty("cdnFrameClose")&&(MicroModal.close("wpr-rocketcdn-modal"),i.hasOwnProperty("cdn_page_message")&&-1!==["iframe-payment-success","iframe-unsubscribe-success"].indexOf(i.cdn_page_message)&&a.location.reload()),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_token")){var s="";s+="action=save_rocketcdn_token",s+="&value="+t.rocketcdn_token;const n=r(s+="&nonce="+rocket_ajax_data.nonce);n.onreadystatechange=()=>{var t;n.readyState===XMLHttpRequest.DONE&&200===n.status&&(t=JSON.parse(n.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}else{s={process:"subscribe",message:"token_not_received"};i.postMessage({success:!1,data:s,rocketcdn:!0},e)}}(t.data,s),(e=t.data).hasOwnProperty("rocketcdn_process")&&(i="",i+="action=rocketcdn_process_set",i+="&status="+e.rocketcdn_process,r(i+="&nonce="+rocket_ajax_data.nonce)),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_url")){var s="";s+="action=rocketcdn_enable",s+="&cdn_url="+t.rocketcdn_url;const n=r(s+="&nonce="+rocket_ajax_data.nonce);n.onreadystatechange=()=>{var t;n.readyState===XMLHttpRequest.DONE&&200===n.status&&(t=JSON.parse(n.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}}(t.data,s),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_disable")){t="";t+="action=rocketcdn_disable";const s=r(t+="&nonce="+rocket_ajax_data.nonce);s.onreadystatechange=()=>{var t;s.readyState===XMLHttpRequest.DONE&&200===s.status&&(t=JSON.parse(s.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}}(t.data,s),(s=t.data).hasOwnProperty("rocketcdn_validate_token")&&s.hasOwnProperty("rocketcdn_validate_cname")&&(t="",t+="action=rocketcdn_validate_token_cname",t+="&cdn_url="+s.rocketcdn_validate_cname,t+="&cdn_token="+s.rocketcdn_validate_token,r(t+="&nonce="+rocket_ajax_data.nonce)))}},{}],9:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(h,u,p){function d(t){u.call(this,t),this._labels={},this.autoRemoveChildren=!0===this.vars.autoRemoveChildren,this.smoothChildTiming=!0===this.vars.smoothChildTiming,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var e,i,s=this.vars;for(i in s)e=s[i],g(e)&&-1!==e.join("").indexOf("{self}")&&(s[i]=this._swapSelfInParams(e));g(s.tweens)&&this.add(s.tweens,0,s.align,s.stagger)}function _(t){var e,i={};for(e in t)i[e]=t[e];return i}function n(t,e,i,s){t._timeline.pause(t._startTime),e&&e.apply(s||t._timeline,i||v)}var f=1e-10,m=p._internals.isSelector,g=p._internals.isArray,v=[],a=window._gsDefine.globals,w=v.slice,t=d.prototype=new u;return d.version="1.12.1",t.constructor=d,t.kill()._gc=!1,t.to=function(t,e,i,s){var n=i.repeat&&a.TweenMax||p;return e?this.add(new n(t,e,i),s):this.set(t,i,s)},t.from=function(t,e,i,s){return this.add((i.repeat&&a.TweenMax||p).from(t,e,i),s)},t.fromTo=function(t,e,i,s,n){var r=s.repeat&&a.TweenMax||p;return e?this.add(r.fromTo(t,e,i,s),n):this.set(t,s,n)},t.staggerTo=function(t,e,i,s,n,r,a,o){var l,c=new d({onComplete:r,onCompleteParams:a,onCompleteScope:o,smoothChildTiming:this.smoothChildTiming});for("string"==typeof t&&(t=p.selector(t)||t),m(t)&&(t=w.call(t,0)),s=s||0,l=0;t.length>l;l++)i.startAt&&(i.startAt=_(i.startAt)),c.to(t[l],e,_(i),l*s);return this.add(c,n)},t.staggerFrom=function(t,e,i,s,n,r,a,o){return i.immediateRender=0!=i.immediateRender,i.runBackwards=!0,this.staggerTo(t,e,i,s,n,r,a,o)},t.staggerFromTo=function(t,e,i,s,n,r,a,o,l){return s.startAt=i,s.immediateRender=0!=s.immediateRender&&0!=i.immediateRender,this.staggerTo(t,e,s,n,r,a,o,l)},t.call=function(t,e,i,s){return this.add(p.delayedCall(0,t,e,i),s)},t.set=function(t,e,i){return i=this._parseTimeOrLabel(i,0,!0),null==e.immediateRender&&(e.immediateRender=i===this._time&&!this._paused),this.add(new p(t,0,e),i)},d.exportRoot=function(t,e){null==(t=t||{}).smoothChildTiming&&(t.smoothChildTiming=!0);var i,s,n=new d(t),t=n._timeline;for(null==e&&(e=!0),t._remove(n,!0),n._startTime=0,n._rawPrevTime=n._time=n._totalTime=t._time,i=t._first;i;)s=i._next,e&&i instanceof p&&i.target===i.vars.onComplete||n.add(i,i._startTime-i._delay),i=s;return t.add(n,0),n},t.add=function(t,e,i,s){var n,r,a,o,l,c;if("number"!=typeof e&&(e=this._parseTimeOrLabel(e,0,!0,t)),!(t instanceof h)){if(t instanceof Array||t&&t.push&&g(t)){for(i=i||"normal",s=s||0,n=e,r=t.length,a=0;at._startTime;l._timeline;)c&&l._timeline.smoothChildTiming?l.totalTime(l._totalTime,!0):l._gc&&l._enabled(!0,!1),l=l._timeline;return this},t.remove=function(t){if(t instanceof h)return this._remove(t,!1);if(t instanceof Array||t&&t.push&&g(t)){for(var e=t.length;-1<--e;)this.remove(t[e]);return this}return"string"==typeof t?this.removeLabel(t):this.kill(null,t)},t._remove=function(t,e){u.prototype._remove.call(this,t,e);e=this._last;return e?this._time>e._startTime+e._totalDuration/e._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},t.append=function(t,e){return this.add(t,this._parseTimeOrLabel(null,e,!0,t))},t.insert=t.insertMultiple=function(t,e,i,s){return this.add(t,e||0,i,s)},t.appendMultiple=function(t,e,i,s){return this.add(t,this._parseTimeOrLabel(null,e,!0,t),i,s)},t.addLabel=function(t,e){return this._labels[t]=this._parseTimeOrLabel(e),this},t.addPause=function(t,e,i,s){return this.call(n,["{self}",e,i,s],this,t)},t.removeLabel=function(t){return delete this._labels[t],this},t.getLabelTime=function(t){return null!=this._labels[t]?this._labels[t]:-1},t._parseTimeOrLabel=function(t,e,i,s){var n;if(s instanceof h&&s.timeline===this)this.remove(s);else if(s&&(s instanceof Array||s.push&&g(s)))for(n=s.length;-1<--n;)s[n]instanceof h&&s[n].timeline===this&&this.remove(s[n]);if("string"==typeof e)return this._parseTimeOrLabel(e,i&&"number"==typeof t&&null==this._labels[e]?t-this.duration():0,i);if(e=e||0,"string"!=typeof t||!isNaN(t)&&null==this._labels[t])null==t&&(t=this.duration());else{if(-1===(n=t.indexOf("=")))return null==this._labels[t]?i?this._labels[t]=this.duration()+e:e:this._labels[t]+e;e=parseInt(t.charAt(n-1)+"1",10)*Number(t.substr(n+1)),t=1f&&(a="onReverseComplete"))),this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:f,t=l+1e-4):t<1e-7?(((this._totalTime=this._time=0)!==c||0===this._duration&&this._rawPrevTime!==f&&(0=c)for(s=this._first;s&&(r=s._next,!this._paused||p);)(s._active||s._startTime<=this._time&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=r;else for(s=this._last;s&&(r=s._prev,!this._paused||p);)(s._active||c>=s._startTime&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=r;this._onUpdate&&(e||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||v)),a&&(this._gc||h!==this._startTime&&u===this._timeScale||!(0===this._time||l>=this.totalDuration())||(n&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!e&&this.vars[a]&&this.vars[a].apply(this.vars[a+"Scope"]||this,this.vars[a+"Params"]||v)))}},t._hasPausedChild=function(){for(var t=this._first;t;){if(t._paused||t instanceof d&&t._hasPausedChild())return!0;t=t._next}return!1},t.getChildren=function(t,e,i,s){s=s||-9999999999;for(var n=[],r=this._first,a=0;r;)s>r._startTime||(r instanceof p?!1!==e&&(n[a++]=r):(!1!==i&&(n[a++]=r),!1!==t&&(a=(n=n.concat(r.getChildren(!0,e,i))).length))),r=r._next;return n},t.getTweensOf=function(t,e){var i,s,n=this._gc,r=[],a=0;for(n&&this._enabled(!0,!0),s=(i=p.getTweensOf(t)).length;-1<--s;)(i[s].timeline===this||e&&this._contains(i[s]))&&(r[a++]=i[s]);return n&&this._enabled(!1,!0),r},t._contains=function(t){for(var e=t.timeline;e;){if(e===this)return!0;e=e.timeline}return!1},t.shiftChildren=function(t,e,i){i=i||0;for(var s,n=this._first,r=this._labels;n;)n._startTime>=i&&(n._startTime+=t),n=n._next;if(e)for(s in r)r[s]>=i&&(r[s]+=t);return this._uncache(!0)},t._kill=function(t,e){if(!t&&!e)return this._enabled(!1,!1);for(var i=e?this.getTweensOf(e):this.getChildren(!0,!0,!1),s=i.length,n=!1;-1<--s;)i[s]._kill(t,e)&&(n=!0);return n},t.clear=function(t){var e=this.getChildren(!1,!0,!0),i=e.length;for(this._time=this._totalTime=0;-1<--i;)e[i]._enabled(!1,!1);return!1!==t&&(this._labels={}),this._uncache(!0)},t.invalidate=function(){for(var t=this._first;t;)t.invalidate(),t=t._next;return this},t._enabled=function(t,e){if(t===this._gc)for(var i=this._first;i;)i._enabled(t,!0),i=i._next;return u.prototype._enabled.call(this,t,e)},t.duration=function(t){return arguments.length?(0!==this.duration()&&0!==t&&this.timeScale(this._duration/t),this):(this._dirty&&this.totalDuration(),this._duration)},t.totalDuration=function(t){if(arguments.length)return 0!==this.totalDuration()&&0!==t&&this.timeScale(this._totalDuration/t),this;if(this._dirty){for(var e,i,s=0,n=this._last,r=999999999999;n;)e=n._prev,n._dirty&&n.totalDuration(),n._startTime>r&&this._sortChildren&&!n._paused?this.add(n,n._startTime-n._delay):r=n._startTime,n._startTime<0&&!n._paused&&(s-=n._startTime,this._timeline.smoothChildTiming&&(this._startTime+=n._startTime/this._timeScale),this.shiftChildren(-n._startTime,!1,-9999999999),r=0),s<(i=n._startTime+n._totalDuration/n._timeScale)&&(s=i),n=e;this._duration=this._totalDuration=s,this._dirty=!1}return this._totalDuration},t.usesFrames=function(){for(var t=this._timeline;t._timeline;)t=t._timeline;return t===h._rootFramesTimeline},t.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},d},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],10:[function(t,Q,e){"use strict";!function(p){var e,i,d=p.GreenSockGlobals||p;if(!d.TweenLite){var _,f=function(t){for(var e=t.split("."),i=d,s=0;e.length>s;s++)i[e[s]]=i=i[e[s]]||{};return i},u=f("com.greensock"),m=1e-10,o=[].slice,g=function(){},h=(e=Object.prototype.toString,i=e.call([]),function(t){return null!=t&&(t instanceof Array||"object"==typeof t&&!!t.push&&e.call(t)===i)}),v={},w=function(o,l,c,h){this.sc=v[o]?v[o].sc:[],(v[o]=this).gsClass=null,this.func=c;var u=[];this.check=function(t){for(var e,i,s,n,r=l.length,a=r;-1<--r;)(e=v[l[r]]||new w(l[r],[])).gsClass?(u[r]=e.gsClass,a--):t&&e.sc.push(this);if(0===a&&c)for(s=(i=("com.greensock."+o).split(".")).pop(),n=f(i.join("."))[s]=this.gsClass=c.apply(c,u),h&&(d[s]=n,"function"==typeof define&&define.amd?define((p.GreenSockAMDPath?p.GreenSockAMDPath+"/":"")+o.split(".").join("/"),[],function(){return n}):void 0!==Q&&Q.exports&&(Q.exports=n)),r=0;this.sc.length>r;r++)this.sc[r].check()},this.check(!0)},s=p._gsDefine=function(t,e,i,s){return new w(t,e,i,s)},y=u._class=function(t,e,i){return e=e||function(){},s(t,[],function(){return e},i),e};s.globals=d;var t,n=[0,0,1,1],x=[],b=y("easing.Ease",function(t,e,i,s){this._func=t,this._type=i||0,this._power=s||0,this._params=e?n.concat(e):n},!0),T=b.map={},r=b.register=function(t,e,i,s){for(var n,r,a,o,l=e.split(","),c=l.length,h=(i||"easeIn,easeOut,easeInOut").split(",");-1<--c;)for(r=l[c],n=s?y("easing."+r,null,!0):u.easing[r]||{},a=h.length;-1<--a;)o=h[a],T[r+"."+o]=T[o+r]=n[o]=t.getRatio?t:t[o]||new t};for((t=b.prototype)._calcEnd=!1,t.getRatio=function(t){if(this._func)return this._params[0]=t,this._func.apply(null,this._params);var e=this._type,i=this._power,s=1===e?1-t:2===e?t:t<.5?2*t:2*(1-t);return 1===i?s*=s:2===i?s*=s*s:3===i?s*=s*s*s:4===i&&(s*=s*s*s*s),1===e?1-s:2===e?s:t<.5?s/2:1-s/2},l=(a=["Linear","Quad","Cubic","Quart","Quint,Strong"]).length;-1<--l;)t=a[l]+",Power"+l,r(new b(null,null,1,l),t,"easeOut",!0),r(new b(null,null,2,l),t,"easeIn"+(0===l?",easeNone":"")),r(new b(null,null,3,l),t,"easeInOut");T.linear=u.easing.Linear.easeIn,T.swing=u.easing.Quad.easeInOut;var k=y("events.EventDispatcher",function(t){this._listeners={},this._eventTarget=t||this});(t=k.prototype).addEventListener=function(t,e,i,s,n){n=n||0;var r,a,o=this._listeners[t],l=0;for(null==o&&(this._listeners[t]=o=[]),a=o.length;-1<--a;)(r=o[a]).c===e&&r.s===i?o.splice(a,1):0===l&&n>r.pr&&(l=a+1);o.splice(l,0,{c:e,s:i,up:s,pr:n}),this!==A||_||A.wake()},t.removeEventListener=function(t,e){var i,s=this._listeners[t];if(s)for(i=s.length;-1<--i;)if(s[i].c===e)return void s.splice(i,1)},t.dispatchEvent=function(t){var e,i,s,n=this._listeners[t];if(n)for(e=n.length,i=this._eventTarget;-1<--e;)(s=n[e]).up?s.c.call(s.s||i,{type:t,target:i}):s.c.call(s.s||i)};for(var a,P=p.requestAnimationFrame,S=p.cancelAnimationFrame,O=Date.now||function(){return(new Date).getTime()},C=O(),l=(a=["ms","moz","webkit","o"]).length;-1<--l&&!P;)P=p[a[l]+"RequestAnimationFrame"],S=p[a[l]+"CancelAnimationFrame"]||p[a[l]+"CancelRequestAnimationFrame"];y("Ticker",function(t,e){var s,n,r,a,o,l=this,c=O(),i=!1!==e&&P,h=500,u=33,p=function(t){var e,i=O()-C;h=i&&i+this.totalDuration()/this._timeScale>t},t._enabled=function(t,e){return _||A.wake(),this._gc=!t,this._active=this.isActive(),!0!==e&&(t&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!t&&this.timeline&&this._timeline._remove(this,!0)),!1},t._kill=function(){return this._enabled(!1,!1)},t.kill=function(t,e){return this._kill(t,e),this},t._uncache=function(t){for(var e=t?this:this.timeline;e;)e._dirty=!0,e=e.timeline;return this},t._swapSelfInParams=function(t){for(var e=t.length,i=t.concat();-1<--e;)"{self}"===t[e]&&(i[e]=this);return i},t.eventCallback=function(t,e,i,s){if("on"===(t||"").substr(0,2)){var n=this.vars;if(1===arguments.length)return n[t];null==e?delete n[t]:(n[t]=e,n[t+"Params"]=h(i)&&-1!==i.join("").indexOf("{self}")?this._swapSelfInParams(i):i,n[t+"Scope"]=s),"onUpdate"===t&&(this._onUpdate=e)}return this},t.delay=function(t){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+t-this._delay),this._delay=t,this):this._delay},t.duration=function(t){return arguments.length?(this._duration=this._totalDuration=t,this._uncache(!0),this._timeline.smoothChildTiming&&0this._duration?this._duration:t,e)):this._time},t.totalTime=function(t,e,i){if(_||A.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(t<0&&!i&&(t+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var s=this._totalDuration,n=this._timeline;if(ss;)i=i._prev;return i?(t._next=i._next,i._next=t):(t._next=this._first,this._first=t),t._next?t._next._prev=t:this._last=t,t._prev=i,this._timeline&&this._uncache(!0),this},t._remove=function(t,e){return t.timeline===this&&(e||t._enabled(!1,!0),t.timeline=null,t._prev?t._prev._next=t._next:this._first===t&&(this._first=t._next),t._next?t._next._prev=t._prev:this._last===t&&(this._last=t._prev),this._timeline&&this._uncache(!0)),this},t.render=function(t,e,i){var s,n=this._first;for(this._totalTime=this._time=this._rawPrevTime=t;n;)s=n._next,(n._active||t>=n._startTime&&!n._paused)&&(n._reversed?n.render((n._dirty?n.totalDuration():n._totalDuration)-(t-n._startTime)*n._timeScale,e,i):n.render((t-n._startTime)*n._timeScale,e,i)),n=s},t.rawTime=function(){return _||A.wake(),this._totalTime};var I=y("TweenLite",function(t,e,i){if(c.call(this,e,i),this.render=I.prototype.render,null==t)throw"Cannot tween a null target.";this.target=t="string"==typeof t&&I.selector(t)||t;var s,n,r,i=t.jquery||t.length&&t!==p&&t[0]&&(t[0]===p||t[0].nodeType&&t[0].style&&!t.nodeType),a=this.vars.overwrite;if(this._overwrite=a=null==a?F[I.defaultOverwrite]:"number"==typeof a?a>>0:F[a],(i||t instanceof Array||t.push&&h(t))&&"number"!=typeof t[0])for(this._targets=r=o.call(t,0),this._propLookup=[],this._siblings=[],s=0;r.length>s;s++)(n=r[s])?"string"!=typeof n?n.length&&n!==p&&n[0]&&(n[0]===p||n[0].nodeType&&n[0].style&&!n.nodeType)?(r.splice(s--,1),this._targets=r=r.concat(o.call(n,0))):(this._siblings[s]=H(n,this,!1),1===a&&1=a._startTime&&a._startTime+a.totalDuration()/a._timeScale>c&&((p||!a._initted)&&c-a._startTime<=2e-10||(h[u++]=a)));for(d=u;-1<--d;)a=h[d],2===s&&a._kill(i,t)&&(r=!0),(2!==s||!a._firstPT&&a._initted)&&a._enabled(!1,!1)&&(r=!0);return r},V=function(t,e,i){for(var s=t._timeline,n=s._timeScale,r=t._startTime;s._timeline;){if(r+=s._startTime,n*=s._timeScale,s._paused)return-100;s=s._timeline}return e<(r/=n)?r-e:i&&r===e||!t._initted&&r-e<2*m?m:(r+=t.totalDuration()/t._timeScale/n)>e+m?0:r-e-m};t._init=function(){var t,e,i,s,n,r=this.vars,a=this._overwrittenProps,o=this._duration,l=!!r.immediateRender,c=r.ease;if(r.startAt){for(s in this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),n={},r.startAt)n[s]=r.startAt[s];if(n.overwrite=!1,n.immediateRender=!0,n.lazy=l&&!1!==r.lazy,n.startAt=n.delay=null,this._startAt=I.to(this.target,0,n),l)if(0o.pr;)s=s._next;(o._prev=s?s._prev:r)?o._prev._next=o:n=o,(o._next=s)?s._prev=o:r=o,o=a}o=e._firstPT=n}for(;o;)o.pg&&"function"==typeof o.t[t]&&o.t[t]()&&(i=!0),o=o._next;return i},W.activate=function(t){for(var e=t.length;-1<--e;)t[e].API===W.API&&(E[(new t[e])._propName]=t[e]);return!0},s.plugin=function(t){if(!(t&&t.propName&&t.init&&t.API))throw"illegal plugin definition.";var e,i=t.propName,s=t.priority||0,n=t.overwriteProps,r={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},a=y("plugins."+i.charAt(0).toUpperCase()+i.substr(1)+"Plugin",function(){W.call(this,i,s),this._overwriteProps=n||[]},!0===t.global),o=a.prototype=new W(i);for(e in(o.constructor=a).API=t.API,r)"function"==typeof t[e]&&(o[r[e]]=t[e]);return a.version=t.version,W.activate([a]),a},a=p._gsQueue){for(l=0;a.length>l;l++)a[l]();for(t in v)v[t].func||p.console.log("GSAP encountered missing dependency: com.greensock."+t)}_=!1}}(window)},{}],11:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("easing.Back",["easing.Ease"],function(m){function t(t,e){var i=c("easing."+t,function(){},!0);return(t=i.prototype=new m).constructor=i,t.getRatio=e,i}function e(t,e,i,s){return s=c("easing."+t,{easeOut:new e,easeIn:new i,easeInOut:new s},!0),h(s,t),s}function g(t,e,i){this.t=t,this.v=e,i&&(((this.next=i).prev=this).c=i.v-e,this.gap=i.t-t)}function i(t,e){var i=c("easing."+t,function(t){this._p1=t||0===t?t:1.70158,this._p2=1.525*this._p1},!0);return(t=i.prototype=new m).constructor=i,t.getRatio=e,t.config=function(t){return new i(t)},i}var s,n,r=window.GreenSockGlobals||window,a=r.com.greensock,o=2*Math.PI,l=Math.PI/2,c=a._class,h=m.register||function(){},u=e("Back",i("BackOut",function(t){return--t*t*((this._p1+1)*t+this._p1)+1}),i("BackIn",function(t){return t*t*((this._p1+1)*t-this._p1)}),i("BackInOut",function(t){return(t*=2)<1?.5*t*t*((this._p2+1)*t-this._p2):.5*((t-=2)*t*((this._p2+1)*t+this._p2)+2)})),p=c("easing.SlowMo",function(t,e,i){e=e||0===e?e:.7,null==t?t=.7:1t?this._calcEnd?1-(t=1-t/this._p1)*t:e-(t=1-t/this._p1)*t*t*t*e:t>this._p3?this._calcEnd?1-(t=(t-this._p3)/this._p1)*t:e+(t-e)*(t=(t-this._p3)/this._p1)*t*t*t:this._calcEnd?1:e},p.ease=new p(.7,.7),a.config=p.config=function(t,e,i){return new p(t,e,i)},(a=(s=c("easing.SteppedEase",function(t){this._p1=1/(t=t||1),this._p2=t+1},!0)).prototype=new m).constructor=s,a.getRatio=function(t){return t<0?t=0:1<=t&&(t=.999999999),(this._p2*t>>0)*this._p1},a.config=s.config=function(t){return new s(t)},(a=(n=c("easing.RoughEase",function(t){for(var e,i,s,n,r,a,o=(t=t||{}).taper||"none",l=[],c=0,h=0|(t.points||20),u=h,p=!1!==t.randomize,d=!0===t.clamp,_=t.template instanceof m?t.template:null,f="number"==typeof t.strength?.4*t.strength:.4;-1<--u;)e=p?Math.random():1/h*u,i=_?_.getRatio(e):e,s="none"===o?f:"out"===o?(n=1-e)*n*f:"in"===o?e*e*f:.5*(n=e<.5?2*e:2*(1-e))*n*f,p?i+=Math.random()*s-.5*s:u%2?i+=.5*s:i-=.5*s,d&&(1e.t){for(;e.next&&t>=e.t;)e=e.next;e=e.prev}else for(;e.prev&&e.t>=t;)e=e.prev;return(this._prev=e).v+(t-e.t)/e.gap*e.c},a.config=function(t){return new n(t)},n.ease=new n,e("Bounce",t("BounceOut",function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}),t("BounceIn",function(t){return 1/2.75>(t=1-t)?1-7.5625*t*t:t<2/2.75?1-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?1-(7.5625*(t-=2.25/2.75)*t+.9375):1-(7.5625*(t-=2.625/2.75)*t+.984375)}),t("BounceInOut",function(t){var e=t<.5;return t=(t=e?1-2*t:2*t-1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,e?.5*(1-t):.5*t+.5})),e("Circ",t("CircOut",function(t){return Math.sqrt(1- --t*t)}),t("CircIn",function(t){return-(Math.sqrt(1-t*t)-1)}),t("CircInOut",function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)})),e("Elastic",(a=function(t,e,i){var s=c("easing."+t,function(t,e){this._p1=t||1,this._p2=e||i,this._p3=this._p2/o*(Math.asin(1/this._p1)||0)},!0),t=s.prototype=new m;return t.constructor=s,t.getRatio=e,t.config=function(t,e){return new s(t,e)},s})("ElasticOut",function(t){return this._p1*Math.pow(2,-10*t)*Math.sin((t-this._p3)*o/this._p2)+1},.3),a("ElasticIn",function(t){return-(this._p1*Math.pow(2,10*--t)*Math.sin((t-this._p3)*o/this._p2))},.3),a("ElasticInOut",function(t){return(t*=2)<1?-.5*this._p1*Math.pow(2,10*--t)*Math.sin((t-this._p3)*o/this._p2):.5*this._p1*Math.pow(2,-10*--t)*Math.sin((t-this._p3)*o/this._p2)+1},.45)),e("Expo",t("ExpoOut",function(t){return 1-Math.pow(2,-10*t)}),t("ExpoIn",function(t){return Math.pow(2,10*(t-1))-.001}),t("ExpoInOut",function(t){return(t*=2)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*(t-1)))})),e("Sine",t("SineOut",function(t){return Math.sin(t*l)}),t("SineIn",function(t){return 1-Math.cos(t*l)}),t("SineInOut",function(t){return-.5*(Math.cos(Math.PI*t)-1)})),c("easing.EaseLookup",{find:function(t){return m.map[t]}},!0),h(r.SlowMo,"SlowMo","ease,"),h(n,"RoughEase","ease,"),h(s,"SteppedEase","ease,"),u},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],12:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(r,p){function N(){r.call(this,"css"),this._overwriteProps.length=0,this.setRatio=N.prototype.setRatio}var d,x,b,u,_={},t=N.prototype=new r("css");(t.constructor=N).version="1.12.1",N.API=2,N.defaultTransformPerspective=0,N.defaultSkewType="compensated",N.suffixMap={top:t="px",right:t,bottom:t,left:t,width:t,height:t,fontSize:t,padding:t,margin:t,perspective:t,lineHeight:""};function n(t,e){return e.toUpperCase()}function a(t){return j.test("string"==typeof t?t:(t.currentStyle||t.style).filter||"")?parseFloat(RegExp.$1)/100:1}function f(t){window.console&&console.log(t)}function T(t,e){var i,s,n=(e=e||Z).style;if(void 0!==n[t])return t;for(t=t.charAt(0).toUpperCase()+t.substr(1),i=["O","Moz","ms","Ms","Webkit"],s=5;-1<--s&&void 0===n[i[s]+t];);return 0<=s?(tt="-"+(et=3===s?"ms":i[s]).toLowerCase()+"-",et+t):null}function m(t,e){var i,s={};if(e=e||it(t,null))if(i=e.length)for(;-1<--i;)s[e[i].replace(Y,n)]=e.getPropertyValue(e[i]);else for(i in e)s[i]=e[i];else if(e=t.currentStyle||t.style)for(i in e)"string"==typeof i&&void 0===s[i]&&(s[i.replace(Y,n)]=e[i]);return J||(s.opacity=a(t)),t=Pt(t,e,!1),s.rotation=t.rotation,s.skewX=t.skewX,s.scaleX=t.scaleX,s.scaleY=t.scaleY,s.x=t.x,s.y=t.y,Tt&&(s.z=t.z,s.rotationX=t.rotationX,s.rotationY=t.rotationY,s.scaleZ=t.scaleZ),s.filters&&delete s.filters,s}function g(t,e,i,s,n){var r,a,o,l={},c=t.style;for(a in i)"cssText"!==a&&"length"!==a&&isNaN(a)&&(e[a]!==(r=i[a])||n&&n[a])&&-1===a.indexOf("Origin")&&("number"==typeof r||"string"==typeof r)&&(l[a]="auto"!==r||"left"!==a&&"top"!==a?""!==r&&"auto"!==r&&"none"!==r||"string"!=typeof e[a]||""===e[a].replace(D,"")?r:0:rt(t,a),void 0!==c[a]&&(o=new pt(c,a,c[a],o)));if(s)for(a in s)"className"!==a&&(l[a]=s[a]);return{difs:l,firstMPT:o}}function v(t,e){var i=(t=null==t||""===t||"auto"===t||"auto auto"===t?"0 0":t).split(" "),s=-1!==t.indexOf("left")?"0%":-1!==t.indexOf("right")?"100%":i[0];return null==(t=-1!==t.indexOf("top")?"0%":-1!==t.indexOf("bottom")?"100%":i[1])?t="0":"center"===t&&(t="50%"),("center"===s||isNaN(parseFloat(s))&&-1===(s+"").indexOf("="))&&(s="50%"),e&&(e.oxp=-1!==s.indexOf("%"),e.oyp=-1!==t.indexOf("%"),e.oxr="="===s.charAt(1),e.oyr="="===t.charAt(1),e.ox=parseFloat(s.replace(D,"")),e.oy=parseFloat(t.replace(D,""))),s+" "+t+(2>16,255&t>>8,255&t]:(","===t.charAt(t.length-1)&&(t=t.substr(0,t.length-1)),lt[t]||("#"===t.charAt(0)?(4===t.length&&(t="#"+(e=t.charAt(1))+e+(i=t.charAt(2))+i+(r=t.charAt(3))+r),[(t=parseInt(t.substr(1),16))>>16,255&t>>8,255&t]):("hsl"===t.substr(0,3)?(t=t.match(A),s=Number(t[0])%360/360,n=Number(t[1])/100,e=2*(r=Number(t[2])/100)-(i=r<=.5?r*(1+n):r+n-r*n),3a",!!(i=i.getElementsByTagName("a")[0])&&/^0.55/.test(i.style.opacity)),tt="",et="",it=Q.defaultView?Q.defaultView.getComputedStyle:function(){},st=N.getStyle=function(t,e,i,s,n){var r;return J||"opacity"!==e?(!s&&t.style[e]?r=t.style[e]:(i=i||it(t))?r=i[e]||i.getPropertyValue(e)||i.getPropertyValue(e.replace(z,"-$1").toLowerCase()):t.currentStyle&&(r=t.currentStyle[e]),null==n||r&&"none"!==r&&"auto"!==r&&"auto auto"!==r?r:n):a(t)},nt=s.convertToPixels=function(t,e,i,s,n){if("px"===s||!s)return i;if("auto"===s||!i)return 0;var r,a,o,l=$.test(e),c=t,h=Z.style,u=i<0;if(u&&(i=-i),"%"===s&&-1!==e.indexOf("border"))r=i/100*(l?t.clientWidth:t.clientHeight);else{if(h.cssText="border:0 solid red;position:"+st(t,"position")+";line-height:0;","%"!==s&&c.appendChild)h[l?"borderLeftWidth":"borderTopWidth"]=i+s;else{if(a=(c=t.parentNode||Q.body)._gsCache,o=p.ticker.frame,a&&l&&a.time===o)return a.width*i/100;h[l?"width":"height"]=i+s}c.appendChild(Z),r=parseFloat(Z[l?"offsetWidth":"offsetHeight"]),c.removeChild(Z),l&&"%"===s&&!1!==N.cacheWidths&&((a=c._gsCache=c._gsCache||{}).time=o,a.width=r/i*100),0!==r||n||(r=nt(t,e,i,s,!0))}return u?-r:r},rt=s.calculateOffset=function(t,e,i){if("absolute"!==st(t,"position",i))return 0;var s="left"===e?"Left":"Top",i=st(t,"margin"+s,i);return t["offset"+s]-(nt(t,e,parseFloat(i),i.replace(L,""))||0)},at={width:["Left","Right"],height:["Top","Bottom"]},ot=["marginLeft","marginRight","marginTop","marginBottom"],lt={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ct="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";for(t in lt)ct+="|"+t+"\\b";function ht(t,e,r,a){if(null==t)return function(t){return t};var o,l=e?(t.match(ct)||[""])[0]:"",c=t.split(l).join("").match(I)||[],h=t.substr(0,t.indexOf(c[0])),u=")"===t.charAt(t.length-1)?")":"",p=-1!==t.indexOf(" ")?" ":",",d=c.length,_=0s;s++)n[s]=o(n[s]);return n.join(",")}if(e=(t.match(ct)||[l])[0],s=(i=t.split(e).join("").match(I)||[]).length,d>s--)for(;d>++s;)i[s]=r?i[0|(s-1)/2]:c[s];return h+i.join(p)+p+e+u+(-1!==t.indexOf("inset")?" inset":"")}:function(t){var e,i,s;if("number"==typeof t)t+=_;else if(a&&H.test(t)){for(i=t.replace(H,"|").split("|"),s=0;i.length>s;s++)i[s]=o(i[s]);return i.join(",")}if(s=(e=t.match(I)||[]).length,d>s--)for(;d>++s;)e[s]=r?e[0|(s-1)/2]:c[s];return h+e.join(p)+u}:function(t){return t}}function ut(c){return c=c.split(","),function(t,e,i,s,n,r,a){var o,l=(e+"").split(" ");for(a={},o=0;o<4;o++)a[c[o]]=l[o]=l[o]||l[(o-1)/2>>0];return s.parse(t,a,n,r)}}var ct=RegExp(ct+")","gi"),pt=(s._setPluginRatio=function(t){this.plugin.setRatio(t);for(var e,i,s,n,r=this.data,a=r.proxy,o=r.firstMPT;o;)e=a[o.v],o.r?e=Math.round(e):e<1e-6&&-1e-6s;s++)n+=i["xn"+s]+i["xs"+(s+1)];i.e=n}}else i.e=i.s+i.xs0;o=o._next}},function(t,e,i,s,n){this.t=t,this.p=e,this.v=i,this.r=n,s&&((s._prev=this)._next=s)}),dt=(s._parseToProxy=function(t,e,i,s,n,r){var a,o,l,c,h=s,u={},p={},d=i._transform,_=W;for(i._transform=null,W=e,s=n=i.parse(t,e,s,n),W=_,r&&(i._transform=d,h&&(h._prev=null,h._prev&&(h._prev._next=null)));s&&s!==h;){if(s.type<=1&&(p[o=s.p]=s.s+s.c,u[o]=s.s,r||(c=new pt(s,"s",o,c,s.r),s.c=0),1===s.type))for(a=s.l;0<--a;)p[o=s.p+"_"+(l="xn"+a)]=s.data[l],u[o]=s[l],r||(c=new pt(s,l,o,c,s.rxp[l]));s=s._next}return{proxy:u,end:p,firstMPT:c,pt:n}},s.CSSPropTween=function(t,e,i,s,n,r,a,o,l,c,h){this.t=t,this.p=e,this.s=i,this.c=s,this.n=a||e,t instanceof dt||u.push(this.n),this.r=o,this.type=r||0,l&&(this.pr=l,d=!0),this.b=void 0===c?i:c,this.e=void 0===h?i+s:h,n&&((this._next=n)._prev=this)}),_t=N.parseComplex=function(t,e,i,s,n,r,a,o,l,c){a=new dt(t,e,0,0,a,c?2:1,null,!1,o,i=i||r||"",s),s+="";var h,u,p,d,_,f,m,g,v,w,y,x=i.split(", ").join(",").split(" "),b=s.split(", ").join(",").split(" "),T=x.length,k=!1!==O;for(-1===s.indexOf(",")&&-1===i.indexOf(",")||(x=x.join(" ").replace(H,", ").split(" "),b=b.join(" ").replace(H,", ").split(" "),T=x.length),T!==b.length&&(T=(x=(r||"").split(" ")).length),a.plugin=l,a.setRatio=c,h=0;hu;u++)w=f[u],v=d.indexOf(w,p),a.appendXtra(d.substr(p,v-p),Number(w),P(m[u],w),"",k&&"px"===d.substr(v+w.length,2),0===u),p=v+w.length;a["xs"+a.l]+=d.substr(p)}else a["xs"+a.l]+=a.l?" "+d:d;if(-1!==s.indexOf("=")&&a.data){for(y=a.xs0+a.data.s,h=1;a.l>h;h++)y+=a["xs"+h]+a.data["xn"+h];a.e=y+a["xs"+h]}return a.l||(a.type=-1,a.xs0=a.e),a.xfirst||a},ft=9;for((t=dt.prototype).l=t.pr=0;0<--ft;)t["xn"+ft]=0,t["xs"+ft]="";t.xs0="",t._next=t._prev=t.xfirst=t.data=t.plugin=t.setRatio=t.rxp=null,t.appendXtra=function(t,e,i,s,n,r){var a=this,o=a.l;return a["xs"+o]+=r&&o?" "+t:t||"",i||0===o||a.plugin?(a.l++,a.type=a.setRatio?2:1,a["xs"+a.l]=s||"",0s;s++)e.prefix=0===s&&e.prefix,e.defaultValue=i[s]||r,new mt(n[s],e)};(t=mt.prototype).parseComplex=function(t,e,i,s,n,r){var a,o,l,c,h,u=this.keyword;if(this.multi&&(H.test(i)||H.test(e)?(o=e.replace(H,"|").split("|"),l=i.replace(H,"|").split("|")):u&&(o=[e],l=[i])),l){for(c=(l.length>o.length?l:o).length,a=0;aI[r]&&I[r]>-L&&(I[r]=0);return i&&(t._gsTransform=I),I},St=s.set3DTransformRatio=function(t){var e,i,s,n,r,a,o,l,c,h,u,p,d,_,f,m,g,v,w,y,x,b,T=this.data,k=this.t.style,P=T.rotation*U,S=T.scaleX,O=T.scaleY,C=T.scaleZ,A=T.perspective;if(1!==t&&0!==t||"auto"!==T.force3D||T.rotationY||T.rotationX||1!==C||A||T.z){if(M&&(S<1e-4&&-1e-4y;y++)this.p.indexOf("border")&&(f[y]=T(f[y])),-1!==(o=a=st(t,f[y],b,!1,"0px")).indexOf(" ")&&(o=(a=o.split(" "))[0],a=a[1]),l=r=w[y],d=parseFloat(o),_=o.substr((d+"").length),(h=""===(h=(u="="===l.charAt(1))?(c=parseInt(l.charAt(0)+"1",10),l=l.substr(2),c*=parseFloat(l),l.substr((c+"").length-(c<0?1:0))||""):(c=parseFloat(l),l.substr((c+"").length)))?x[i]||_:h)!==_&&(p=nt(t,"borderLeft",d,_),d=nt(t,"borderTop",d,_),a="%"===h?(o=p/g*100+"%",d/v*100+"%"):"em"===h?(o=p/(_=nt(t,"borderLeft",1,"em"))+"em",d/_+"em"):(o=p+"px",d+"px"),u&&(l=parseFloat(o)+c+h,r=parseFloat(a)+c+h)),n=_t(m,f[y],o+" "+a,l+" "+r,!1,"0px",n);return n},prefix:!0,formatter:ht("0px 0px 0px 0px",!1,!0)}),gt("backgroundPosition",{defaultValue:"0 0",parser:function(t,e,i,s,n,r){var a,o,l,c,h,u,p="background-position",d=b||it(t,null),_=this.format((d?C?d.getPropertyValue(p+"-x")+" "+d.getPropertyValue(p+"-y"):d.getPropertyValue(p):t.currentStyle.backgroundPositionX+" "+t.currentStyle.backgroundPositionY)||"0 0"),e=this.format(e);if(-1!==_.indexOf("%")!=(-1!==e.indexOf("%"))&&((u=st(t,"backgroundImage").replace(F,""))&&"none"!==u)){for(a=_.split(" "),o=e.split(" "),G.setAttribute("src",u),l=2;-1<--l;)(c=-1!==(_=a[l]).indexOf("%"))!=(-1!==o[l].indexOf("%"))&&(h=0===l?t.offsetWidth-G.width:t.offsetHeight-G.height,a[l]=c?parseFloat(_)/100*h+"px":parseFloat(_)/h*100+"%");_=a.join(" ")}return this.parseComplex(t.style,_,e,n,r)},formatter:v}),gt("backgroundSize",{defaultValue:"0 0",formatter:v}),gt("perspective",{defaultValue:"0px",prefix:!0}),gt("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),gt("transformStyle",{prefix:!0}),gt("backfaceVisibility",{prefix:!0}),gt("userSelect",{prefix:!0}),gt("margin",{parser:ut("marginTop,marginRight,marginBottom,marginLeft")}),gt("padding",{parser:ut("paddingTop,paddingRight,paddingBottom,paddingLeft")}),gt("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(t,e,i,s,n,r){var a,o;return e=C<9?(a=t.currentStyle,o=C<8?" ":",",a="rect("+a.clipTop+o+a.clipRight+o+a.clipBottom+o+a.clipLeft+")",this.format(e).split(",").join(o)):(a=this.format(st(t,this.p,b,!1,this.dflt)),this.format(e)),this.parseComplex(t.style,a,e,n,r)}}),gt("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),gt("autoRound,strictUnits",{parser:function(t,e,i,s,n){return n}}),gt("border",{defaultValue:"0px solid #000",parser:function(t,e,i,s,n,r){return this.parseComplex(t.style,this.format(st(t,"borderTopWidth",b,!1,"0px")+" "+st(t,"borderTopStyle",b,!1,"solid")+" "+st(t,"borderTopColor",b,!1,"#000")),this.format(e),n,r)},color:!0,formatter:function(t){var e=t.split(" ");return e[0]+" "+(e[1]||"solid")+" "+(t.match(ct)||["#000"])[0]}}),gt("borderWidth",{parser:ut("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),gt("float,cssFloat,styleFloat",{parser:function(t,e,i,s,n){var r=t.style,t="cssFloat"in r?"cssFloat":"styleFloat";return new dt(r,t,0,0,n,-1,i,!1,0,r[t],e)}});function Ct(t){var e,i=this.t,s=i.filter||st(this.data,"filter"),t=0|this.s+this.c*t;(e=100==t?-1===s.indexOf("atrix(")&&-1===s.indexOf("radient(")&&-1===s.indexOf("oader(")?(i.removeAttribute("filter"),!st(this.data,"filter")):(i.filter=s.replace(l,""),!0):e)||(this.xn1&&(i.filter=s=s||"alpha(opacity="+t+")"),-1===s.indexOf("pacity")?0==t&&this.xn1||(i.filter=s+" alpha(opacity="+t+")"):i.filter=s.replace(j,"opacity="+t))}gt("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(t,e,i,s,n,r){var a=parseFloat(st(t,"opacity",b,!1,"1")),o=t.style,l="autoAlpha"===i;return"string"==typeof e&&"="===e.charAt(1)&&(e=("-"===e.charAt(0)?-1:1)*parseFloat(e.substr(2))+a),l&&1===a&&"hidden"===st(t,"visibility",b)&&0!==e&&(a=0),J?n=new dt(o,"opacity",a,e-a,n):((n=new dt(o,"opacity",100*a,100*(e-a),n)).xn1=l?1:0,o.zoom=1,n.type=2,n.b="alpha(opacity="+n.s+")",n.e="alpha(opacity="+(n.s+n.c)+")",n.data=t,n.plugin=r,n.setRatio=Ct),l&&((n=new dt(o,"visibility",0,0,n,-1,null,!1,0,0!==a?"inherit":"hidden",0===e?"hidden":"inherit")).xs0="inherit",s._overwriteProps.push(n.n),s._overwriteProps.push(i)),n}});function At(t,e){e&&(t.removeProperty?("ms"===e.substr(0,2)&&(e="M"+e.substr(1)),t.removeProperty(e.replace(z,"-$1").toLowerCase())):t.removeAttribute(e))}function Mt(t){if(this.t._gsClassPT=this,1===t||0===t){this.t.setAttribute("class",0===t?this.b:this.e);for(var e=this.data,i=this.t.style;e;)e.v?i[e.p]=e.v:At(i,e.p),e=e._next;1===t&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)}gt("className",{parser:function(t,e,i,s,n,r,a){var o,l,c,h=t.getAttribute("class")||"",u=t.style.cssText;if((n=s._classNamePT=new dt(t,i,0,0,n,2)).setRatio=Mt,n.pr=-11,d=!0,n.b=h,o=m(t,b),i=t._gsClassPT){for(l={},c=i.data;c;)l[c.p]=1,c=c._next;i.setRatio(1)}return(t._gsClassPT=n).e="="!==e.charAt(1)?e:h.replace(RegExp("\\s*\\b"+e.substr(2)+"\\b"),"")+("+"===e.charAt(0)?" "+e.substr(2):""),s._tween._duration&&(t.setAttribute("class",n.e),a=g(t,o,m(t),a,l),t.setAttribute("class",h),n.data=a.firstMPT,t.style.cssText=u,n=n.xfirst=s.parse(t,a.difs,n,r)),n}});function Rt(t){if((1===t||0===t)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var e,i,s,n,r=this.t.style,a=_.transform.parse;if("all"===this.e)n=!(r.cssText="");else for(s=(e=this.e.split(",")).length;-1<--s;)i=e[s],_[i]&&(_[i].parse===a?n=!0:i="transformOrigin"===i?bt:_[i].p),At(r,i);n&&(At(r,yt),this.t._gsTransform&&delete this.t._gsTransform)}}for(gt("clearProps",{parser:function(t,e,i,s,n){return(n=new dt(t,i,0,0,n,2)).setRatio=Rt,n.e=e,n.pr=-10,n.data=s._tween,d=!0,n}}),t="bezier,throwProps,physicsProps,physics2D".split(","),ft=t.length;ft--;)!function(t){var l;_[t]||(l=t.charAt(0).toUpperCase()+t.substr(1)+"Plugin",gt(t,{parser:function(t,e,i,s,n,r,a){var o=(window.GreenSockGlobals||window).com.greensock.plugins[l];return o?(o._cssRegister(),_[i].parse(t,e,i,s,n,r,a)):(f("Error: "+l+" js file not loaded."),n)}}))}(t[ft]);(t=N.prototype)._firstPT=null,t._onInitTween=function(t,e,i){if(!t.nodeType)return!1;this._target=t,this._tween=i,this._vars=e,O=e.autoRound,d=!1,x=e.suffixMap||N.suffixMap,b=it(t,""),u=this._overwriteProps;var s,n,r,a,o,l,i=t.style;if(c&&""===i.zIndex&&("auto"!==(l=st(t,"zIndex",b))&&""!==l||this._addLazySet(i,"zIndex",0)),"string"==typeof e&&(r=i.cssText,l=m(t,b),i.cssText=r+";"+e,l=g(t,l,m(t)).difs,!J&&X.test(e)&&(l.opacity=parseFloat(RegExp.$1)),e=l,i.cssText=r),this._firstPT=s=this.parse(t,e,null),this._transformType){for(l=3===this._transformType,yt?h&&(c=!0,""===i.zIndex&&("auto"!==(e=st(t,"zIndex",b))&&""!==e||this._addLazySet(i,"zIndex",0)),k&&this._addLazySet(i,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(l?"visible":"hidden"))):i.zoom=1,n=s;n&&n._next;)n=n._next;i=new dt(t,"transform",0,0,null,2),this._linkCSSP(i,null,n),i.setRatio=l&&Tt?St:yt?Ot:vt,i.data=this._transform||Pt(t,b,!0),u.pop()}if(d){for(;s;){for(o=s._next,n=r;n&&n.pr>s.pr;)n=n._next;(s._prev=n?n._prev:a)?s._prev._next=s:r=s,(s._next=n)?n._prev=s:a=s,s=o}this._firstPT=r}return!0},t.parse=function(t,e,i,s){var n,r,a,o,l,c,h,u,p=t.style;for(n in e)l=e[n],u=_[n],u?i=u.parse(t,l,n,this,i,s,e):(o=st(t,n,b)+"",h="string"==typeof l,"color"===n||"fill"===n||"stroke"===n||-1!==n.indexOf("Color")||h&&E.test(l)?(h||(l=S(l),l=(3s;s++)i+=n["xn"+s]+n["xs"+(s+1)];n.t[n.p]=i}else-1===n.type?n.t[n.p]=n.xs0:n.setRatio&&n.setRatio(t);else n.t[n.p]=e+n.xs0;n=n._next}else for(;n;)2!==n.type?n.t[n.p]=n.b:n.setRatio(t),n=n._next;else for(;n;)2!==n.type?n.t[n.p]=n.e:n.setRatio(t),n=n._next},t._enableTransforms=function(t){this._transformType=t||3===this._transformType?3:2,this._transform=this._transform||Pt(this._target,b,!0)};function It(){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)}t._addLazySet=function(t,e,i){e=this._firstPT=new dt(t,e,0,0,this._firstPT,2);e.e=i,e.setRatio=It,e.data=this},t._linkCSSP=function(t,e,i,s){return t&&(e&&(e._prev=t),t._next&&(t._next._prev=t._prev),t._prev?t._prev._next=t._next:this._firstPT===t&&(this._firstPT=t._next,s=!0),i?i._next=t:s||null!==this._firstPT||(this._firstPT=t),t._next=e,t._prev=i),t},t._kill=function(t){var e,i,s,n=t;if(t.autoAlpha||t.alpha){for(i in n={},t)n[i]=t[i];n.opacity=1,n.autoAlpha&&(n.visibility=1)}return t.className&&(e=this._classNamePT)&&((s=e.xfirst)&&s._prev?this._linkCSSP(s._prev,e._next,s._prev._prev):s===this._firstPT&&(this._firstPT=e._next),e._next&&this._linkCSSP(e._next,e._next._next,s._prev),this._classNamePT=null),r.prototype._kill.call(this,n)};function Dt(t,e,i){var s,n,r,a;if(t.slice)for(n=t.length;-1<--n;)Dt(t[n],e,i);else for(n=(s=t.childNodes).length;-1<--n;)a=(r=s[n]).type,r.style&&(e.push(m(r)),i&&i.push(r)),1!==a&&9!==a&&11!==a||!r.childNodes.length||Dt(r,e,i)}return N.cascadeTo=function(t,e,i){var s,n,r,a=p.to(t,e,i),o=[a],l=[],c=[],h=[],u=p._internals.reservedProps;for(t=a._targets||a.target,Dt(t,l,h),a.render(e,!0),Dt(t,c),a.render(0,!0),a._enabled(!0),s=h.length;-1<--s;)if((n=g(h[s],l[s],c[s])).firstMPT){for(r in n=n.difs,i)u[r]&&(n[r]=i[r]);o.push(p.to(h[s],e,n))}return o},r.activate([N]),N},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],13:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){function n(t,e){var i="x"===e?"Width":"Height",s="scroll"+i,n="client"+i,e=document.body;return t===a||t===r||t===e?Math.max(r[s],e[s])-(a["inner"+i]||Math.max(r[n],e[n])):t[s]-t["offset"+i]}var r=document.documentElement,a=window,t=window._gsDefine.plugin({propName:"scrollTo",API:2,version:"1.7.3",init:function(t,e,i){return this._wdw=t===a,this._target=t,this._tween=i,this._autoKill=!1!==(e="object"!=typeof e?{y:e}:e).autoKill,this.x=this.xPrev=this.getX(),this.y=this.yPrev=this.getY(),null!=e.x?(this._addTween(this,"x",this.x,"max"===e.x?n(t,"x"):e.x,"scrollTo_x",!0),this._overwriteProps.push("scrollTo_x")):this.skipX=!0,null!=e.y?(this._addTween(this,"y",this.y,"max"===e.y?n(t,"y"):e.y,"scrollTo_y",!0),this._overwriteProps.push("scrollTo_y")):this.skipY=!0,!0},set:function(t){this._super.setRatio.call(this,t);var e=this._wdw||!this.skipX?this.getX():this.xPrev,i=this._wdw||!this.skipY?this.getY():this.yPrev,s=i-this.yPrev,t=e-this.xPrev;this._autoKill&&(!this.skipX&&(7e&&(this.skipX=!0),!this.skipY&&(7i&&(this.skipY=!0),this.skipX&&this.skipY&&this._tween.kill()),this._wdw?a.scrollTo(this.skipX?e:this.x,this.skipY?i:this.y):(this.skipY||(this._target.scrollTop=this.y),this.skipX||(this._target.scrollLeft=this.x)),this.xPrev=this.x,this.yPrev=this.y}}),e=t.prototype;t.max=n,e.getX=function(){return this._wdw?null!=a.pageXOffset?a.pageXOffset:(null!=r.scrollLeft?r:document.body).scrollLeft:this._target.scrollLeft},e.getY=function(){return this._wdw?null!=a.pageYOffset?a.pageYOffset:(null!=r.scrollTop?r:document.body).scrollTop:this._target.scrollTop},e._kill=function(t){return t.scrollTo_x&&(this.skipX=!0),t.scrollTo_y&&(this.skipY=!0),this._super._kill.call(this,t)}}),window._gsDefine&&window._gsQueue.pop()()},{}]},{},[2]); +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i= 0) { + return; + } + + $.post(ajaxurl, { + action: 'rocket_toggle_option', + _ajax_nonce: rocket_ajax_data.nonce, + option: { + name: name, + value: value + } + }, function (response) {}); + }); + /** + * Save enable CPCSS for mobiles option. + */ + + $('#wpr-action-rocket_enable_mobile_cpcss').on('click', function (e) { + e.preventDefault(); + $('#wpr-action-rocket_enable_mobile_cpcss').addClass('wpr-isLoading'); + $.post(ajaxurl, { + action: 'rocket_enable_mobile_cpcss', + _ajax_nonce: rocket_ajax_data.nonce + }, function (response) { + if (response.success) { + // Hide Mobile CPCSS btn on success. + $('#wpr-action-rocket_enable_mobile_cpcss').hide(); + $('.wpr-hide-on-click').hide(); + $('.wpr-show-on-click').show(); + $('#wpr-action-rocket_enable_mobile_cpcss').removeClass('wpr-isLoading'); + } + }); + }); + /** + * Save enable Google Fonts Optimization option. + */ + + $('#wpr-action-rocket_enable_google_fonts').on('click', function (e) { + e.preventDefault(); + $('#wpr-action-rocket_enable_google_fonts').addClass('wpr-isLoading'); + $.post(ajaxurl, { + action: 'rocket_enable_google_fonts', + _ajax_nonce: rocket_ajax_data.nonce + }, function (response) { + if (response.success) { + // Hide Mobile CPCSS btn on success. + $('#wpr-action-rocket_enable_google_fonts').hide(); + $('.wpr-hide-on-click').hide(); + $('.wpr-show-on-click').show(); + $('#wpr-action-rocket_enable_google_fonts').removeClass('wpr-isLoading'); + $('#minify_google_fonts').val(1); + } + }); + }); + $('#rocket-dismiss-promotion').on('click', function (e) { + e.preventDefault(); + $.post(ajaxurl, { + action: 'rocket_dismiss_promo', + nonce: rocket_ajax_data.nonce + }, function (response) { + if (response.success) { + $('#rocket-promo-banner').hide('slow'); + } + }); + }); + $('#rocket-dismiss-renewal').on('click', function (e) { + e.preventDefault(); + $.post(ajaxurl, { + action: 'rocket_dismiss_renewal', + nonce: rocket_ajax_data.nonce + }, function (response) { + if (response.success) { + $('#rocket-renewal-banner').hide('slow'); + } + }); + }); +}); + +},{}],2:[function(require,module,exports){ +"use strict"; + +require("../lib/greensock/TweenLite.min.js"); + +require("../lib/greensock/TimelineLite.min.js"); + +require("../lib/greensock/easing/EasePack.min.js"); + +require("../lib/greensock/plugins/CSSPlugin.min.js"); + +require("../lib/greensock/plugins/ScrollToPlugin.min.js"); + +require("../global/pageManager.js"); + +require("../global/main.js"); + +require("../global/fields.js"); + +require("../global/beacon.js"); + +require("../global/ajax.js"); + +require("../global/rocketcdn.js"); + +require("../global/countdown.js"); + +},{"../global/ajax.js":1,"../global/beacon.js":3,"../global/countdown.js":4,"../global/fields.js":5,"../global/main.js":6,"../global/pageManager.js":7,"../global/rocketcdn.js":8,"../lib/greensock/TimelineLite.min.js":9,"../lib/greensock/TweenLite.min.js":10,"../lib/greensock/easing/EasePack.min.js":11,"../lib/greensock/plugins/CSSPlugin.min.js":12,"../lib/greensock/plugins/ScrollToPlugin.min.js":13}],3:[function(require,module,exports){ +"use strict"; + +var $ = jQuery; +$(document).ready(function () { + if ('Beacon' in window) { + /** + * Show beacons on button "help" click + */ + var $help = $('.wpr-infoAction--help'); + $help.on('click', function (e) { + var ids = $(this).data('beacon-id'); + wprCallBeacon(ids); + return false; + }); + + function wprCallBeacon(aID) { + aID = aID.split(','); + + if (aID.length === 0) { + return; + } + + if (aID.length > 1) { + window.Beacon("suggest", aID); + setTimeout(function () { + window.Beacon("open"); + }, 200); + } else { + window.Beacon("article", aID.toString()); + } + } + } +}); + +},{}],4:[function(require,module,exports){ +"use strict"; + +function getTimeRemaining(endtime) { + const start = Date.now(); + const total = endtime * 1000 - start; + const seconds = Math.floor(total / 1000 % 60); + const minutes = Math.floor(total / 1000 / 60 % 60); + const hours = Math.floor(total / (1000 * 60 * 60) % 24); + const days = Math.floor(total / (1000 * 60 * 60 * 24)); + return { + total, + days, + hours, + minutes, + seconds + }; +} + +function initializeClock(id, endtime) { + const clock = document.getElementById(id); + + if (clock === null) { + return; + } + + const daysSpan = clock.querySelector('.rocket-countdown-days'); + const hoursSpan = clock.querySelector('.rocket-countdown-hours'); + const minutesSpan = clock.querySelector('.rocket-countdown-minutes'); + const secondsSpan = clock.querySelector('.rocket-countdown-seconds'); + + function updateClock() { + const t = getTimeRemaining(endtime); + + if (t.total < 0) { + clearInterval(timeinterval); + return; + } + + daysSpan.innerHTML = t.days; + hoursSpan.innerHTML = ('0' + t.hours).slice(-2); + minutesSpan.innerHTML = ('0' + t.minutes).slice(-2); + secondsSpan.innerHTML = ('0' + t.seconds).slice(-2); + } + + updateClock(); + const timeinterval = setInterval(updateClock, 1000); +} + +function rucssTimer(id, endtime) { + const timer = document.getElementById(id); + const notice = document.getElementById('rocket-notice-rucss-processing'); + const success = document.getElementById('rocket-notice-rucss-success'); + + if (timer === null) { + return; + } + + function updateTimer() { + const start = Date.now(); + const remaining = Math.floor((endtime * 1000 - start) / 1000); + + if (remaining <= 0) { + clearInterval(timerInterval); + + if (notice !== null) { + notice.classList.add('hidden'); + } + + if (success !== null) { + success.classList.remove('hidden'); + } + + const data = new FormData(); + data.append('action', 'rocket_spawn_cron'); + data.append('nonce', rocket_ajax_data.nonce); + fetch(ajaxurl, { + method: 'POST', + credentials: 'same-origin', + body: data + }); + return; + } + + timer.innerHTML = remaining; + } + + updateTimer(); + const timerInterval = setInterval(updateTimer, 1000); +} + +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} + +if (typeof rocket_ajax_data.promo_end !== 'undefined') { + initializeClock('rocket-promo-countdown', rocket_ajax_data.promo_end); +} + +if (typeof rocket_ajax_data.license_expiration !== 'undefined') { + initializeClock('rocket-renew-countdown', rocket_ajax_data.license_expiration); +} + +if (typeof rocket_ajax_data.notice_end_time !== 'undefined') { + rucssTimer('rocket-rucss-timer', rocket_ajax_data.notice_end_time); +} + +},{}],5:[function(require,module,exports){ +"use strict"; + +var $ = jQuery; +$(document).ready(function () { + /*** + * Check parent / show children + ***/ + function wprShowChildren(aElem) { + var parentId, $children; + aElem = $(aElem); + parentId = aElem.attr('id'); + $children = $('[data-parent="' + parentId + '"]'); // Test check for switch + + if (aElem.is(':checked')) { + $children.addClass('wpr-isOpen'); + $children.each(function () { + if ($(this).find('input[type=checkbox]').is(':checked')) { + var id = $(this).find('input[type=checkbox]').attr('id'); + $('[data-parent="' + id + '"]').addClass('wpr-isOpen'); + } + }); + } else { + $children.removeClass('wpr-isOpen'); + $children.each(function () { + var id = $(this).find('input[type=checkbox]').attr('id'); + $('[data-parent="' + id + '"]').removeClass('wpr-isOpen'); + }); + } + } + /** + * Tell if the given child field has an active parent field. + * + * @param object $field A jQuery object of a ".wpr-field" field. + * @return bool|null + */ + + + function wprIsParentActive($field) { + var $parent; + + if (!$field.length) { + // ¯\_(ツ)_/¯ + return null; + } + + $parent = $field.data('parent'); + + if (typeof $parent !== 'string') { + // This field has no parent field: then we can display it. + return true; + } + + $parent = $parent.replace(/^\s+|\s+$/g, ''); + + if ('' === $parent) { + // This field has no parent field: then we can display it. + return true; + } + + $parent = $('#' + $parent); + + if (!$parent.length) { + // This field's parent is missing: let's consider it's not active then. + return false; + } + + if (!$parent.is(':checked') && $parent.is('input')) { + // This field's parent is checkbox and not checked: don't display the field then. + return false; + } + + if (!$parent.hasClass('radio-active') && $parent.is('button')) { + // This field's parent button and is not active: don't display the field then. + return false; + } // Go recursive to the last parent. + + + return wprIsParentActive($parent.closest('.wpr-field')); + } // Display/Hide childern fields on checkbox change. + + + $('.wpr-isParent input[type=checkbox]').on('change', function () { + wprShowChildren($(this)); + }); // On page load, display the active fields. + + $('.wpr-field--children').each(function () { + var $field = $(this); + + if (wprIsParentActive($field)) { + $field.addClass('wpr-isOpen'); + } + }); + /*** + * Warning fields + ***/ + + var $warningParent = $('.wpr-field--parent'); + var $warningParentInput = $('.wpr-field--parent input[type=checkbox]'); // If already checked + + $warningParentInput.each(function () { + wprShowChildren($(this)); + }); + $warningParent.on('change', function () { + wprShowWarning($(this)); + }); + + function wprShowWarning(aElem) { + var $warningField = aElem.next('.wpr-fieldWarning'), + $thisCheckbox = aElem.find('input[type=checkbox]'), + $nextWarning = aElem.parent().next('.wpr-warningContainer'), + $nextFields = $nextWarning.find('.wpr-field'), + parentId = aElem.find('input[type=checkbox]').attr('id'), + $children = $('[data-parent="' + parentId + '"]'); // Check warning parent + + if ($thisCheckbox.is(':checked')) { + $warningField.addClass('wpr-isOpen'); + $thisCheckbox.prop('checked', false); + aElem.trigger('change'); + var $warningButton = $warningField.find('.wpr-button'); // Validate the warning + + $warningButton.on('click', function () { + $thisCheckbox.prop('checked', true); + $warningField.removeClass('wpr-isOpen'); + $children.addClass('wpr-isOpen'); // If next elem = disabled + + if ($nextWarning.length > 0) { + $nextFields.removeClass('wpr-isDisabled'); + $nextFields.find('input').prop('disabled', false); + } + + return false; + }); + } else { + $nextFields.addClass('wpr-isDisabled'); + $nextFields.find('input').prop('disabled', true); + $nextFields.find('input[type=checkbox]').prop('checked', false); + $children.removeClass('wpr-isOpen'); + } + } + /** + * CNAMES add/remove lines + */ + + + $(document).on('click', '.wpr-multiple-close', function (e) { + e.preventDefault(); + $(this).parent().slideUp('slow', function () { + $(this).remove(); + }); + }); + $('.wpr-button--addMulti').on('click', function (e) { + e.preventDefault(); + $($('#wpr-cname-model').html()).appendTo('#wpr-cnames-list'); + }); + /*** + * Wpr Radio button + ***/ + + var disable_radio_warning = false; + $(document).on('click', '.wpr-radio-buttons-container button', function (e) { + e.preventDefault(); + + if ($(this).hasClass('radio-active')) { + return false; + } + + var $parent = $(this).parents('.wpr-radio-buttons'); + $parent.find('.wpr-radio-buttons-container button').removeClass('radio-active'); + $parent.find('.wpr-extra-fields-container').removeClass('wpr-isOpen'); + $parent.find('.wpr-fieldWarning').removeClass('wpr-isOpen'); + $(this).addClass('radio-active'); + wprShowRadioWarning($(this)); + }); + + function wprShowRadioWarning($elm) { + disable_radio_warning = false; + $elm.trigger("before_show_radio_warning", [$elm]); + + if (!$elm.hasClass('has-warning') || disable_radio_warning) { + wprShowRadioButtonChildren($elm); + $elm.trigger("radio_button_selected", [$elm]); + return false; + } + + var $warningField = $('[data-parent="' + $elm.attr('id') + '"].wpr-fieldWarning'); + $warningField.addClass('wpr-isOpen'); + var $warningButton = $warningField.find('.wpr-button'); // Validate the warning + + $warningButton.on('click', function () { + $warningField.removeClass('wpr-isOpen'); + wprShowRadioButtonChildren($elm); + $elm.trigger("radio_button_selected", [$elm]); + return false; + }); + } + + function wprShowRadioButtonChildren($elm) { + var $parent = $elm.parents('.wpr-radio-buttons'); + var $children = $('.wpr-extra-fields-container[data-parent="' + $elm.attr('id') + '"]'); + $children.addClass('wpr-isOpen'); + } + /*** + * Wpr Optimize Css Delivery Field + ***/ + + + var rucssActive = parseInt($('#remove_unused_css').val()); + $("#optimize_css_delivery_method .wpr-radio-buttons-container button").on("radio_button_selected", function (event, $elm) { + toggleActiveOptimizeCssDeliveryMethod($elm); + }); + $("#optimize_css_delivery").on("change", function () { + if ($(this).is(":not(:checked)")) { + disableOptimizeCssDelivery(); + } else { + var default_radio_button_id = '#' + $('#optimize_css_delivery_method').data('default'); + $(default_radio_button_id).trigger('click'); + } + }); + + function toggleActiveOptimizeCssDeliveryMethod($elm) { + var optimize_method = $elm.data('value'); + + if ('remove_unused_css' === optimize_method) { + $('#remove_unused_css').val(1); + $('#async_css').val(0); + } else { + $('#remove_unused_css').val(0); + $('#async_css').val(1); + } + } + + function disableOptimizeCssDelivery() { + $('#remove_unused_css').val(0); + $('#async_css').val(0); + } + + $("#optimize_css_delivery_method .wpr-radio-buttons-container button").on("before_show_radio_warning", function (event, $elm) { + disable_radio_warning = 'remove_unused_css' === $elm.data('value') && 1 === rucssActive; + }); +}); + +},{}],6:[function(require,module,exports){ +"use strict"; + +var $ = jQuery; +$(document).ready(function () { + /*** + * Dashboard notice + ***/ + var $notice = $('.wpr-notice'); + var $noticeClose = $('#wpr-congratulations-notice'); + $noticeClose.on('click', function () { + wprCloseDashboardNotice(); + return false; + }); + + function wprCloseDashboardNotice() { + var vTL = new TimelineLite().to($notice, 1, { + autoAlpha: 0, + x: 40, + ease: Power4.easeOut + }).to($notice, 0.6, { + height: 0, + marginTop: 0, + ease: Power4.easeOut + }, '=-.4').set($notice, { + 'display': 'none' + }); + } + /** + * Rocket Analytics notice info collect + */ + + + $('.rocket-analytics-data-container').hide(); + $('.rocket-preview-analytics-data').on('click', function (e) { + e.preventDefault(); + $(this).parent().next('.rocket-analytics-data-container').toggle(); + }); + /*** + * Hide / show Rocket addon tabs. + ***/ + + $('.wpr-toggle-button').each(function () { + var $button = $(this); + var $checkbox = $button.closest('.wpr-fieldsContainer-fieldset').find('.wpr-radio :checkbox'); + var $menuItem = $('[href="' + $button.attr('href') + '"].wpr-menuItem'); + $checkbox.on('change', function () { + if ($checkbox.is(':checked')) { + $menuItem.css('display', 'block'); + $button.css('display', 'inline-block'); + } else { + $menuItem.css('display', 'none'); + $button.css('display', 'none'); + } + }).trigger('change'); + }); + /*** + * Show popin analytics + ***/ + + var $wprAnalyticsPopin = $('.wpr-Popin-Analytics'), + $wprPopinOverlay = $('.wpr-Popin-overlay'), + $wprAnalyticsClosePopin = $('.wpr-Popin-Analytics-close'), + $wprAnalyticsPopinButton = $('.wpr-Popin-Analytics .wpr-button'), + $wprAnalyticsOpenPopin = $('.wpr-js-popin'); + $wprAnalyticsOpenPopin.on('click', function (e) { + e.preventDefault(); + wprOpenAnalytics(); + return false; + }); + $wprAnalyticsClosePopin.on('click', function (e) { + e.preventDefault(); + wprCloseAnalytics(); + return false; + }); + $wprAnalyticsPopinButton.on('click', function (e) { + e.preventDefault(); + wprActivateAnalytics(); + return false; + }); + + function wprOpenAnalytics() { + var vTL = new TimelineLite().set($wprAnalyticsPopin, { + 'display': 'block' + }).set($wprPopinOverlay, { + 'display': 'block' + }).fromTo($wprPopinOverlay, 0.6, { + autoAlpha: 0 + }, { + autoAlpha: 1, + ease: Power4.easeOut + }).fromTo($wprAnalyticsPopin, 0.6, { + autoAlpha: 0, + marginTop: -24 + }, { + autoAlpha: 1, + marginTop: 0, + ease: Power4.easeOut + }, '=-.5'); + } + + function wprCloseAnalytics() { + var vTL = new TimelineLite().fromTo($wprAnalyticsPopin, 0.6, { + autoAlpha: 1, + marginTop: 0 + }, { + autoAlpha: 0, + marginTop: -24, + ease: Power4.easeOut + }).fromTo($wprPopinOverlay, 0.6, { + autoAlpha: 1 + }, { + autoAlpha: 0, + ease: Power4.easeOut + }, '=-.5').set($wprAnalyticsPopin, { + 'display': 'none' + }).set($wprPopinOverlay, { + 'display': 'none' + }); + } + + function wprActivateAnalytics() { + wprCloseAnalytics(); + $('#analytics_enabled').prop('checked', true); + $('#analytics_enabled').trigger('change'); + } + /*** + * Show popin upgrade + ***/ + + + var $wprUpgradePopin = $('.wpr-Popin-Upgrade'), + $wprUpgradeClosePopin = $('.wpr-Popin-Upgrade-close'), + $wprUpgradeOpenPopin = $('.wpr-popin-upgrade-toggle'); + $wprUpgradeOpenPopin.on('click', function (e) { + e.preventDefault(); + wprOpenUpgradePopin(); + return false; + }); + $wprUpgradeClosePopin.on('click', function () { + wprCloseUpgradePopin(); + return false; + }); + + function wprOpenUpgradePopin() { + var vTL = new TimelineLite(); + vTL.set($wprUpgradePopin, { + 'display': 'block' + }).set($wprPopinOverlay, { + 'display': 'block' + }).fromTo($wprPopinOverlay, 0.6, { + autoAlpha: 0 + }, { + autoAlpha: 1, + ease: Power4.easeOut + }).fromTo($wprUpgradePopin, 0.6, { + autoAlpha: 0, + marginTop: -24 + }, { + autoAlpha: 1, + marginTop: 0, + ease: Power4.easeOut + }, '=-.5'); + } + + function wprCloseUpgradePopin() { + var vTL = new TimelineLite(); + vTL.fromTo($wprUpgradePopin, 0.6, { + autoAlpha: 1, + marginTop: 0 + }, { + autoAlpha: 0, + marginTop: -24, + ease: Power4.easeOut + }).fromTo($wprPopinOverlay, 0.6, { + autoAlpha: 1 + }, { + autoAlpha: 0, + ease: Power4.easeOut + }, '=-.5').set($wprUpgradePopin, { + 'display': 'none' + }).set($wprPopinOverlay, { + 'display': 'none' + }); + } + /*** + * Sidebar on/off + ***/ + + + var $wprSidebar = $('.wpr-Sidebar'); + var $wprButtonTips = $('.wpr-js-tips'); + $wprButtonTips.on('change', function () { + wprDetectTips($(this)); + }); + + function wprDetectTips(aElem) { + if (aElem.is(':checked')) { + $wprSidebar.css('display', 'block'); + localStorage.setItem('wpr-show-sidebar', 'on'); + } else { + $wprSidebar.css('display', 'none'); + localStorage.setItem('wpr-show-sidebar', 'off'); + } + } + /*** + * Detect Adblock + ***/ + + + if (document.getElementById('LKgOcCRpwmAj')) { + $('.wpr-adblock').css('display', 'none'); + } else { + $('.wpr-adblock').css('display', 'block'); + } + + var $adblock = $('.wpr-adblock'); + var $adblockClose = $('.wpr-adblock-close'); + $adblockClose.on('click', function () { + wprCloseAdblockNotice(); + return false; + }); + + function wprCloseAdblockNotice() { + var vTL = new TimelineLite().to($adblock, 1, { + autoAlpha: 0, + x: 40, + ease: Power4.easeOut + }).to($adblock, 0.4, { + height: 0, + marginTop: 0, + ease: Power4.easeOut + }, '=-.4').set($adblock, { + 'display': 'none' + }); + } +}); + +},{}],7:[function(require,module,exports){ +"use strict"; + +document.addEventListener('DOMContentLoaded', function () { + var $pageManager = document.querySelector(".wpr-Content"); + + if ($pageManager) { + new PageManager($pageManager); + } +}); +/*-----------------------------------------------*\ + CLASS PAGEMANAGER +\*-----------------------------------------------*/ + +/** + * Manages the display of pages / section for WP Rocket plugin + * + * Public method : + detectID - Detect ID with hash + getBodyTop - Get body top position + change - Displays the corresponding page + * + */ + +function PageManager(aElem) { + var refThis = this; + this.$body = document.querySelector('.wpr-body'); + this.$menuItems = document.querySelectorAll('.wpr-menuItem'); + this.$submitButton = document.querySelector('.wpr-Content > form > #wpr-options-submit'); + this.$pages = document.querySelectorAll('.wpr-Page'); + this.$sidebar = document.querySelector('.wpr-Sidebar'); + this.$content = document.querySelector('.wpr-Content'); + this.$tips = document.querySelector('.wpr-Content-tips'); + this.$links = document.querySelectorAll('.wpr-body a'); + this.$menuItem = null; + this.$page = null; + this.pageId = null; + this.bodyTop = 0; + this.buttonText = this.$submitButton.value; + refThis.getBodyTop(); // If url page change + + window.onhashchange = function () { + refThis.detectID(); + }; // If hash already exist (after refresh page for example) + + + if (window.location.hash) { + this.bodyTop = 0; + this.detectID(); + } else { + var session = localStorage.getItem('wpr-hash'); + this.bodyTop = 0; + + if (session) { + window.location.hash = session; + this.detectID(); + } else { + this.$menuItems[0].classList.add('isActive'); + localStorage.setItem('wpr-hash', 'dashboard'); + window.location.hash = '#dashboard'; + } + } // Click link same hash + + + for (var i = 0; i < this.$links.length; i++) { + this.$links[i].onclick = function () { + refThis.getBodyTop(); + var hrefSplit = this.href.split('#')[1]; + + if (hrefSplit == refThis.pageId && hrefSplit != undefined) { + refThis.detectID(); + return false; + } + }; + } // Click links not WP rocket to reset hash + + + var $otherlinks = document.querySelectorAll('#adminmenumain a, #wpadminbar a'); + + for (var i = 0; i < $otherlinks.length; i++) { + $otherlinks[i].onclick = function () { + localStorage.setItem('wpr-hash', ''); + }; + } +} +/* +* Page detect ID +*/ + + +PageManager.prototype.detectID = function () { + this.pageId = window.location.hash.split('#')[1]; + localStorage.setItem('wpr-hash', this.pageId); + this.$page = document.querySelector('.wpr-Page#' + this.pageId); + this.$menuItem = document.getElementById('wpr-nav-' + this.pageId); + this.change(); +}; +/* +* Get body top position +*/ + + +PageManager.prototype.getBodyTop = function () { + var bodyPos = this.$body.getBoundingClientRect(); + this.bodyTop = bodyPos.top + window.pageYOffset - 47; // #wpadminbar + padding-top .wpr-wrap - 1 - 47 +}; +/* +* Page change +*/ + + +PageManager.prototype.change = function () { + var refThis = this; + document.documentElement.scrollTop = refThis.bodyTop; // Hide other pages + + for (var i = 0; i < this.$pages.length; i++) { + this.$pages[i].style.display = 'none'; + } + + for (var i = 0; i < this.$menuItems.length; i++) { + this.$menuItems[i].classList.remove('isActive'); + } // Show current default page + + + this.$page.style.display = 'block'; + this.$submitButton.style.display = 'block'; + + if (null === localStorage.getItem('wpr-show-sidebar')) { + localStorage.setItem('wpr-show-sidebar', 'on'); + } + + if ('on' === localStorage.getItem('wpr-show-sidebar')) { + this.$sidebar.style.display = 'block'; + } else if ('off' === localStorage.getItem('wpr-show-sidebar')) { + this.$sidebar.style.display = 'none'; + document.querySelector('#wpr-js-tips').removeAttribute('checked'); + } + + this.$tips.style.display = 'block'; + this.$menuItem.classList.add('isActive'); + this.$submitButton.value = this.buttonText; + this.$content.classList.add('isNotFull'); // Exception for dashboard + + if (this.pageId == "dashboard") { + this.$sidebar.style.display = 'none'; + this.$tips.style.display = 'none'; + this.$submitButton.style.display = 'none'; + this.$content.classList.remove('isNotFull'); + } // Exception for addons + + + if (this.pageId == "addons") { + this.$submitButton.style.display = 'none'; + } // Exception for database + + + if (this.pageId == "database") { + this.$submitButton.style.display = 'none'; + } // Exception for tools and addons + + + if (this.pageId == "tools" || this.pageId == "addons") { + this.$submitButton.style.display = 'none'; + } + + if (this.pageId == "imagify") { + this.$sidebar.style.display = 'none'; + this.$tips.style.display = 'none'; + this.$submitButton.style.display = 'none'; + } + + if (this.pageId == "tutorials") { + this.$submitButton.style.display = 'none'; + } +}; + +},{}],8:[function(require,module,exports){ +"use strict"; + +/*eslint-env es6*/ +((document, window) => { + 'use strict'; + + document.addEventListener('DOMContentLoaded', () => { + document.querySelectorAll('.wpr-rocketcdn-open').forEach(el => { + el.addEventListener('click', e => { + e.preventDefault(); + }); + }); + maybeOpenModal(); + MicroModal.init({ + disableScroll: true + }); + }); + window.addEventListener('load', () => { + let openCTA = document.querySelector('#wpr-rocketcdn-open-cta'), + closeCTA = document.querySelector('#wpr-rocketcdn-close-cta'), + smallCTA = document.querySelector('#wpr-rocketcdn-cta-small'), + bigCTA = document.querySelector('#wpr-rocketcdn-cta'); + + if (null !== openCTA && null !== smallCTA && null !== bigCTA) { + openCTA.addEventListener('click', e => { + e.preventDefault(); + smallCTA.classList.add('wpr-isHidden'); + bigCTA.classList.remove('wpr-isHidden'); + sendHTTPRequest(getPostData('big')); + }); + } + + if (null !== closeCTA && null !== smallCTA && null !== bigCTA) { + closeCTA.addEventListener('click', e => { + e.preventDefault(); + smallCTA.classList.remove('wpr-isHidden'); + bigCTA.classList.add('wpr-isHidden'); + sendHTTPRequest(getPostData('small')); + }); + } + + function getPostData(status) { + let postData = ''; + postData += 'action=toggle_rocketcdn_cta'; + postData += '&status=' + status; + postData += '&nonce=' + rocket_ajax_data.nonce; + return postData; + } + }); + + window.onmessage = e => { + const iframeURL = rocket_ajax_data.origin_url; + + if (e.origin !== iframeURL) { + return; + } + + setCDNFrameHeight(e.data); + closeModal(e.data); + tokenHandler(e.data, iframeURL); + processStatus(e.data); + enableCDN(e.data, iframeURL); + disableCDN(e.data, iframeURL); + validateTokenAndCNAME(e.data); + }; + + function maybeOpenModal() { + let postData = ''; + postData += 'action=rocketcdn_process_status'; + postData += '&nonce=' + rocket_ajax_data.nonce; + const request = sendHTTPRequest(postData); + + request.onreadystatechange = () => { + if (request.readyState === XMLHttpRequest.DONE && 200 === request.status) { + let responseTxt = JSON.parse(request.responseText); + + if (true === responseTxt.success) { + MicroModal.show('wpr-rocketcdn-modal'); + } + } + }; + } + + function closeModal(data) { + if (!data.hasOwnProperty('cdnFrameClose')) { + return; + } + + MicroModal.close('wpr-rocketcdn-modal'); + let pages = ['iframe-payment-success', 'iframe-unsubscribe-success']; + + if (!data.hasOwnProperty('cdn_page_message')) { + return; + } + + if (pages.indexOf(data.cdn_page_message) === -1) { + return; + } + + document.location.reload(); + } + + function processStatus(data) { + if (!data.hasOwnProperty('rocketcdn_process')) { + return; + } + + let postData = ''; + postData += 'action=rocketcdn_process_set'; + postData += '&status=' + data.rocketcdn_process; + postData += '&nonce=' + rocket_ajax_data.nonce; + sendHTTPRequest(postData); + } + + function enableCDN(data, iframeURL) { + let iframe = document.querySelector('#rocketcdn-iframe').contentWindow; + + if (!data.hasOwnProperty('rocketcdn_url')) { + return; + } + + let postData = ''; + postData += 'action=rocketcdn_enable'; + postData += '&cdn_url=' + data.rocketcdn_url; + postData += '&nonce=' + rocket_ajax_data.nonce; + const request = sendHTTPRequest(postData); + + request.onreadystatechange = () => { + if (request.readyState === XMLHttpRequest.DONE && 200 === request.status) { + let responseTxt = JSON.parse(request.responseText); + iframe.postMessage({ + 'success': responseTxt.success, + 'data': responseTxt.data, + 'rocketcdn': true + }, iframeURL); + } + }; + } + + function disableCDN(data, iframeURL) { + let iframe = document.querySelector('#rocketcdn-iframe').contentWindow; + + if (!data.hasOwnProperty('rocketcdn_disable')) { + return; + } + + let postData = ''; + postData += 'action=rocketcdn_disable'; + postData += '&nonce=' + rocket_ajax_data.nonce; + const request = sendHTTPRequest(postData); + + request.onreadystatechange = () => { + if (request.readyState === XMLHttpRequest.DONE && 200 === request.status) { + let responseTxt = JSON.parse(request.responseText); + iframe.postMessage({ + 'success': responseTxt.success, + 'data': responseTxt.data, + 'rocketcdn': true + }, iframeURL); + } + }; + } + + function sendHTTPRequest(postData) { + const httpRequest = new XMLHttpRequest(); + httpRequest.open('POST', ajaxurl); + httpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + httpRequest.send(postData); + return httpRequest; + } + + function setCDNFrameHeight(data) { + if (!data.hasOwnProperty('cdnFrameHeight')) { + return; + } + + document.getElementById('rocketcdn-iframe').style.height = "".concat(data.cdnFrameHeight, "px"); + } + + function tokenHandler(data, iframeURL) { + let iframe = document.querySelector('#rocketcdn-iframe').contentWindow; + + if (!data.hasOwnProperty('rocketcdn_token')) { + let data = { + process: "subscribe", + message: "token_not_received" + }; + iframe.postMessage({ + 'success': false, + 'data': data, + 'rocketcdn': true + }, iframeURL); + return; + } + + let postData = ''; + postData += 'action=save_rocketcdn_token'; + postData += '&value=' + data.rocketcdn_token; + postData += '&nonce=' + rocket_ajax_data.nonce; + const request = sendHTTPRequest(postData); + + request.onreadystatechange = () => { + if (request.readyState === XMLHttpRequest.DONE && 200 === request.status) { + let responseTxt = JSON.parse(request.responseText); + iframe.postMessage({ + 'success': responseTxt.success, + 'data': responseTxt.data, + 'rocketcdn': true + }, iframeURL); + } + }; + } + + function validateTokenAndCNAME(data) { + if (!data.hasOwnProperty('rocketcdn_validate_token') || !data.hasOwnProperty('rocketcdn_validate_cname')) { + return; + } + + let postData = ''; + postData += 'action=rocketcdn_validate_token_cname'; + postData += '&cdn_url=' + data.rocketcdn_validate_cname; + postData += '&cdn_token=' + data.rocketcdn_validate_token; + postData += '&nonce=' + rocket_ajax_data.nonce; + const request = sendHTTPRequest(postData); + } +})(document, window); + +},{}],9:[function(require,module,exports){ +"use strict"; + +/*! + * VERSION: 1.12.1 + * DATE: 2014-06-26 + * UPDATES AND DOCS AT: http://www.greensock.com + * + * @license Copyright (c) 2008-2014, GreenSock. All rights reserved. + * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for + * Club GreenSock members, the software agreement that was issued with your membership. + * + * @author: Jack Doyle, jack@greensock.com + */ +(window._gsQueue || (window._gsQueue = [])).push(function () { + "use strict"; + + window._gsDefine("TimelineLite", ["core.Animation", "core.SimpleTimeline", "TweenLite"], function (t, e, i) { + var s = function (t) { + e.call(this, t), this._labels = {}, this.autoRemoveChildren = this.vars.autoRemoveChildren === !0, this.smoothChildTiming = this.vars.smoothChildTiming === !0, this._sortChildren = !0, this._onUpdate = this.vars.onUpdate; + var i, + s, + r = this.vars; + + for (s in r) i = r[s], a(i) && -1 !== i.join("").indexOf("{self}") && (r[s] = this._swapSelfInParams(i)); + + a(r.tweens) && this.add(r.tweens, 0, r.align, r.stagger); + }, + r = 1e-10, + n = i._internals.isSelector, + a = i._internals.isArray, + o = [], + h = window._gsDefine.globals, + l = function (t) { + var e, + i = {}; + + for (e in t) i[e] = t[e]; + + return i; + }, + _ = function (t, e, i, s) { + t._timeline.pause(t._startTime), e && e.apply(s || t._timeline, i || o); + }, + u = o.slice, + f = s.prototype = new e(); + + return s.version = "1.12.1", f.constructor = s, f.kill()._gc = !1, f.to = function (t, e, s, r) { + var n = s.repeat && h.TweenMax || i; + return e ? this.add(new n(t, e, s), r) : this.set(t, s, r); + }, f.from = function (t, e, s, r) { + return this.add((s.repeat && h.TweenMax || i).from(t, e, s), r); + }, f.fromTo = function (t, e, s, r, n) { + var a = r.repeat && h.TweenMax || i; + return e ? this.add(a.fromTo(t, e, s, r), n) : this.set(t, r, n); + }, f.staggerTo = function (t, e, r, a, o, h, _, f) { + var p, + c = new s({ + onComplete: h, + onCompleteParams: _, + onCompleteScope: f, + smoothChildTiming: this.smoothChildTiming + }); + + for ("string" == typeof t && (t = i.selector(t) || t), n(t) && (t = u.call(t, 0)), a = a || 0, p = 0; t.length > p; p++) r.startAt && (r.startAt = l(r.startAt)), c.to(t[p], e, l(r), p * a); + + return this.add(c, o); + }, f.staggerFrom = function (t, e, i, s, r, n, a, o) { + return i.immediateRender = 0 != i.immediateRender, i.runBackwards = !0, this.staggerTo(t, e, i, s, r, n, a, o); + }, f.staggerFromTo = function (t, e, i, s, r, n, a, o, h) { + return s.startAt = i, s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender, this.staggerTo(t, e, s, r, n, a, o, h); + }, f.call = function (t, e, s, r) { + return this.add(i.delayedCall(0, t, e, s), r); + }, f.set = function (t, e, s) { + return s = this._parseTimeOrLabel(s, 0, !0), null == e.immediateRender && (e.immediateRender = s === this._time && !this._paused), this.add(new i(t, 0, e), s); + }, s.exportRoot = function (t, e) { + t = t || {}, null == t.smoothChildTiming && (t.smoothChildTiming = !0); + var r, + n, + a = new s(t), + o = a._timeline; + + for (null == e && (e = !0), o._remove(a, !0), a._startTime = 0, a._rawPrevTime = a._time = a._totalTime = o._time, r = o._first; r;) n = r._next, e && r instanceof i && r.target === r.vars.onComplete || a.add(r, r._startTime - r._delay), r = n; + + return o.add(a, 0), a; + }, f.add = function (r, n, o, h) { + var l, _, u, f, p, c; + + if ("number" != typeof n && (n = this._parseTimeOrLabel(n, 0, !0, r)), !(r instanceof t)) { + if (r instanceof Array || r && r.push && a(r)) { + for (o = o || "normal", h = h || 0, l = n, _ = r.length, u = 0; _ > u; u++) a(f = r[u]) && (f = new s({ + tweens: f + })), this.add(f, l), "string" != typeof f && "function" != typeof f && ("sequence" === o ? l = f._startTime + f.totalDuration() / f._timeScale : "start" === o && (f._startTime -= f.delay())), l += h; + + return this._uncache(!0); + } + + if ("string" == typeof r) return this.addLabel(r, n); + if ("function" != typeof r) throw "Cannot add " + r + " into the timeline; it is not a tween, timeline, function, or string."; + r = i.delayedCall(0, r); + } + + if (e.prototype.add.call(this, r, n), (this._gc || this._time === this._duration) && !this._paused && this._duration < this.duration()) for (p = this, c = p.rawTime() > r._startTime; p._timeline;) c && p._timeline.smoothChildTiming ? p.totalTime(p._totalTime, !0) : p._gc && p._enabled(!0, !1), p = p._timeline; + return this; + }, f.remove = function (e) { + if (e instanceof t) return this._remove(e, !1); + + if (e instanceof Array || e && e.push && a(e)) { + for (var i = e.length; --i > -1;) this.remove(e[i]); + + return this; + } + + return "string" == typeof e ? this.removeLabel(e) : this.kill(null, e); + }, f._remove = function (t, i) { + e.prototype._remove.call(this, t, i); + + var s = this._last; + return s ? this._time > s._startTime + s._totalDuration / s._timeScale && (this._time = this.duration(), this._totalTime = this._totalDuration) : this._time = this._totalTime = this._duration = this._totalDuration = 0, this; + }, f.append = function (t, e) { + return this.add(t, this._parseTimeOrLabel(null, e, !0, t)); + }, f.insert = f.insertMultiple = function (t, e, i, s) { + return this.add(t, e || 0, i, s); + }, f.appendMultiple = function (t, e, i, s) { + return this.add(t, this._parseTimeOrLabel(null, e, !0, t), i, s); + }, f.addLabel = function (t, e) { + return this._labels[t] = this._parseTimeOrLabel(e), this; + }, f.addPause = function (t, e, i, s) { + return this.call(_, ["{self}", e, i, s], this, t); + }, f.removeLabel = function (t) { + return delete this._labels[t], this; + }, f.getLabelTime = function (t) { + return null != this._labels[t] ? this._labels[t] : -1; + }, f._parseTimeOrLabel = function (e, i, s, r) { + var n; + if (r instanceof t && r.timeline === this) this.remove(r);else if (r && (r instanceof Array || r.push && a(r))) for (n = r.length; --n > -1;) r[n] instanceof t && r[n].timeline === this && this.remove(r[n]); + if ("string" == typeof i) return this._parseTimeOrLabel(i, s && "number" == typeof e && null == this._labels[i] ? e - this.duration() : 0, s); + if (i = i || 0, "string" != typeof e || !isNaN(e) && null == this._labels[e]) null == e && (e = this.duration());else { + if (n = e.indexOf("="), -1 === n) return null == this._labels[e] ? s ? this._labels[e] = this.duration() + i : i : this._labels[e] + i; + i = parseInt(e.charAt(n - 1) + "1", 10) * Number(e.substr(n + 1)), e = n > 1 ? this._parseTimeOrLabel(e.substr(0, n - 1), 0, s) : this.duration(); + } + return Number(e) + i; + }, f.seek = function (t, e) { + return this.totalTime("number" == typeof t ? t : this._parseTimeOrLabel(t), e !== !1); + }, f.stop = function () { + return this.paused(!0); + }, f.gotoAndPlay = function (t, e) { + return this.play(t, e); + }, f.gotoAndStop = function (t, e) { + return this.pause(t, e); + }, f.render = function (t, e, i) { + this._gc && this._enabled(!0, !1); + + var s, + n, + a, + h, + l, + _ = this._dirty ? this.totalDuration() : this._totalDuration, + u = this._time, + f = this._startTime, + p = this._timeScale, + c = this._paused; + + if (t >= _ ? (this._totalTime = this._time = _, this._reversed || this._hasPausedChild() || (n = !0, h = "onComplete", 0 === this._duration && (0 === t || 0 > this._rawPrevTime || this._rawPrevTime === r) && this._rawPrevTime !== t && this._first && (l = !0, this._rawPrevTime > r && (h = "onReverseComplete"))), this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : r, t = _ + 1e-4) : 1e-7 > t ? (this._totalTime = this._time = 0, (0 !== u || 0 === this._duration && this._rawPrevTime !== r && (this._rawPrevTime > 0 || 0 > t && this._rawPrevTime >= 0)) && (h = "onReverseComplete", n = this._reversed), 0 > t ? (this._active = !1, 0 === this._duration && this._rawPrevTime >= 0 && this._first && (l = !0), this._rawPrevTime = t) : (this._rawPrevTime = this._duration || !e || t || this._rawPrevTime === t ? t : r, t = 0, this._initted || (l = !0))) : this._totalTime = this._time = this._rawPrevTime = t, this._time !== u && this._first || i || l) { + if (this._initted || (this._initted = !0), this._active || !this._paused && this._time !== u && t > 0 && (this._active = !0), 0 === u && this.vars.onStart && 0 !== this._time && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || o)), this._time >= u) for (s = this._first; s && (a = s._next, !this._paused || c);) (s._active || s._startTime <= this._time && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)), s = a;else for (s = this._last; s && (a = s._prev, !this._paused || c);) (s._active || u >= s._startTime && !s._paused && !s._gc) && (s._reversed ? s.render((s._dirty ? s.totalDuration() : s._totalDuration) - (t - s._startTime) * s._timeScale, e, i) : s.render((t - s._startTime) * s._timeScale, e, i)), s = a; + this._onUpdate && (e || this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || o)), h && (this._gc || (f === this._startTime || p !== this._timeScale) && (0 === this._time || _ >= this.totalDuration()) && (n && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[h] && this.vars[h].apply(this.vars[h + "Scope"] || this, this.vars[h + "Params"] || o))); + } + }, f._hasPausedChild = function () { + for (var t = this._first; t;) { + if (t._paused || t instanceof s && t._hasPausedChild()) return !0; + t = t._next; + } + + return !1; + }, f.getChildren = function (t, e, s, r) { + r = r || -9999999999; + + for (var n = [], a = this._first, o = 0; a;) r > a._startTime || (a instanceof i ? e !== !1 && (n[o++] = a) : (s !== !1 && (n[o++] = a), t !== !1 && (n = n.concat(a.getChildren(!0, e, s)), o = n.length))), a = a._next; + + return n; + }, f.getTweensOf = function (t, e) { + var s, + r, + n = this._gc, + a = [], + o = 0; + + for (n && this._enabled(!0, !0), s = i.getTweensOf(t), r = s.length; --r > -1;) (s[r].timeline === this || e && this._contains(s[r])) && (a[o++] = s[r]); + + return n && this._enabled(!1, !0), a; + }, f._contains = function (t) { + for (var e = t.timeline; e;) { + if (e === this) return !0; + e = e.timeline; + } + + return !1; + }, f.shiftChildren = function (t, e, i) { + i = i || 0; + + for (var s, r = this._first, n = this._labels; r;) r._startTime >= i && (r._startTime += t), r = r._next; + + if (e) for (s in n) n[s] >= i && (n[s] += t); + return this._uncache(!0); + }, f._kill = function (t, e) { + if (!t && !e) return this._enabled(!1, !1); + + for (var i = e ? this.getTweensOf(e) : this.getChildren(!0, !0, !1), s = i.length, r = !1; --s > -1;) i[s]._kill(t, e) && (r = !0); + + return r; + }, f.clear = function (t) { + var e = this.getChildren(!1, !0, !0), + i = e.length; + + for (this._time = this._totalTime = 0; --i > -1;) e[i]._enabled(!1, !1); + + return t !== !1 && (this._labels = {}), this._uncache(!0); + }, f.invalidate = function () { + for (var t = this._first; t;) t.invalidate(), t = t._next; + + return this; + }, f._enabled = function (t, i) { + if (t === this._gc) for (var s = this._first; s;) s._enabled(t, !0), s = s._next; + return e.prototype._enabled.call(this, t, i); + }, f.duration = function (t) { + return arguments.length ? (0 !== this.duration() && 0 !== t && this.timeScale(this._duration / t), this) : (this._dirty && this.totalDuration(), this._duration); + }, f.totalDuration = function (t) { + if (!arguments.length) { + if (this._dirty) { + for (var e, i, s = 0, r = this._last, n = 999999999999; r;) e = r._prev, r._dirty && r.totalDuration(), r._startTime > n && this._sortChildren && !r._paused ? this.add(r, r._startTime - r._delay) : n = r._startTime, 0 > r._startTime && !r._paused && (s -= r._startTime, this._timeline.smoothChildTiming && (this._startTime += r._startTime / this._timeScale), this.shiftChildren(-r._startTime, !1, -9999999999), n = 0), i = r._startTime + r._totalDuration / r._timeScale, i > s && (s = i), r = e; + + this._duration = this._totalDuration = s, this._dirty = !1; + } + + return this._totalDuration; + } + + return 0 !== this.totalDuration() && 0 !== t && this.timeScale(this._totalDuration / t), this; + }, f.usesFrames = function () { + for (var e = this._timeline; e._timeline;) e = e._timeline; + + return e === t._rootFramesTimeline; + }, f.rawTime = function () { + return this._paused ? this._totalTime : (this._timeline.rawTime() - this._startTime) * this._timeScale; + }, s; + }, !0); +}), window._gsDefine && window._gsQueue.pop()(); + +},{}],10:[function(require,module,exports){ +"use strict"; + +/*! + * VERSION: 1.12.1 + * DATE: 2014-06-26 + * UPDATES AND DOCS AT: http://www.greensock.com + * + * @license Copyright (c) 2008-2014, GreenSock. All rights reserved. + * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for + * Club GreenSock members, the software agreement that was issued with your membership. + * + * @author: Jack Doyle, jack@greensock.com + */ +(function (t) { + "use strict"; + + var e = t.GreenSockGlobals || t; + + if (!e.TweenLite) { + var i, + s, + n, + r, + a, + o = function (t) { + var i, + s = t.split("."), + n = e; + + for (i = 0; s.length > i; i++) n[s[i]] = n = n[s[i]] || {}; + + return n; + }, + l = o("com.greensock"), + h = 1e-10, + _ = [].slice, + u = function () {}, + m = function () { + var t = Object.prototype.toString, + e = t.call([]); + return function (i) { + return null != i && (i instanceof Array || "object" == typeof i && !!i.push && t.call(i) === e); + }; + }(), + f = {}, + p = function (i, s, n, r) { + this.sc = f[i] ? f[i].sc : [], f[i] = this, this.gsClass = null, this.func = n; + var a = []; + this.check = function (l) { + for (var h, _, u, m, c = s.length, d = c; --c > -1;) (h = f[s[c]] || new p(s[c], [])).gsClass ? (a[c] = h.gsClass, d--) : l && h.sc.push(this); + + if (0 === d && n) for (_ = ("com.greensock." + i).split("."), u = _.pop(), m = o(_.join("."))[u] = this.gsClass = n.apply(n, a), r && (e[u] = m, "function" == typeof define && define.amd ? define((t.GreenSockAMDPath ? t.GreenSockAMDPath + "/" : "") + i.split(".").join("/"), [], function () { + return m; + }) : "undefined" != typeof module && module.exports && (module.exports = m)), c = 0; this.sc.length > c; c++) this.sc[c].check(); + }, this.check(!0); + }, + c = t._gsDefine = function (t, e, i, s) { + return new p(t, e, i, s); + }, + d = l._class = function (t, e, i) { + return e = e || function () {}, c(t, [], function () { + return e; + }, i), e; + }; + + c.globals = e; + + var v = [0, 0, 1, 1], + g = [], + T = d("easing.Ease", function (t, e, i, s) { + this._func = t, this._type = i || 0, this._power = s || 0, this._params = e ? v.concat(e) : v; + }, !0), + y = T.map = {}, + w = T.register = function (t, e, i, s) { + for (var n, r, a, o, h = e.split(","), _ = h.length, u = (i || "easeIn,easeOut,easeInOut").split(","); --_ > -1;) for (r = h[_], n = s ? d("easing." + r, null, !0) : l.easing[r] || {}, a = u.length; --a > -1;) o = u[a], y[r + "." + o] = y[o + r] = n[o] = t.getRatio ? t : t[o] || new t(); + }; + + for (n = T.prototype, n._calcEnd = !1, n.getRatio = function (t) { + if (this._func) return this._params[0] = t, this._func.apply(null, this._params); + var e = this._type, + i = this._power, + s = 1 === e ? 1 - t : 2 === e ? t : .5 > t ? 2 * t : 2 * (1 - t); + return 1 === i ? s *= s : 2 === i ? s *= s * s : 3 === i ? s *= s * s * s : 4 === i && (s *= s * s * s * s), 1 === e ? 1 - s : 2 === e ? s : .5 > t ? s / 2 : 1 - s / 2; + }, i = ["Linear", "Quad", "Cubic", "Quart", "Quint,Strong"], s = i.length; --s > -1;) n = i[s] + ",Power" + s, w(new T(null, null, 1, s), n, "easeOut", !0), w(new T(null, null, 2, s), n, "easeIn" + (0 === s ? ",easeNone" : "")), w(new T(null, null, 3, s), n, "easeInOut"); + + y.linear = l.easing.Linear.easeIn, y.swing = l.easing.Quad.easeInOut; + var P = d("events.EventDispatcher", function (t) { + this._listeners = {}, this._eventTarget = t || this; + }); + n = P.prototype, n.addEventListener = function (t, e, i, s, n) { + n = n || 0; + var o, + l, + h = this._listeners[t], + _ = 0; + + for (null == h && (this._listeners[t] = h = []), l = h.length; --l > -1;) o = h[l], o.c === e && o.s === i ? h.splice(l, 1) : 0 === _ && n > o.pr && (_ = l + 1); + + h.splice(_, 0, { + c: e, + s: i, + up: s, + pr: n + }), this !== r || a || r.wake(); + }, n.removeEventListener = function (t, e) { + var i, + s = this._listeners[t]; + if (s) for (i = s.length; --i > -1;) if (s[i].c === e) return s.splice(i, 1), void 0; + }, n.dispatchEvent = function (t) { + var e, + i, + s, + n = this._listeners[t]; + if (n) for (e = n.length, i = this._eventTarget; --e > -1;) s = n[e], s.up ? s.c.call(s.s || i, { + type: t, + target: i + }) : s.c.call(s.s || i); + }; + + var k = t.requestAnimationFrame, + b = t.cancelAnimationFrame, + A = Date.now || function () { + return new Date().getTime(); + }, + S = A(); + + for (i = ["ms", "moz", "webkit", "o"], s = i.length; --s > -1 && !k;) k = t[i[s] + "RequestAnimationFrame"], b = t[i[s] + "CancelAnimationFrame"] || t[i[s] + "CancelRequestAnimationFrame"]; + + d("Ticker", function (t, e) { + var i, + s, + n, + o, + l, + _ = this, + m = A(), + f = e !== !1 && k, + p = 500, + c = 33, + d = function (t) { + var e, + r, + a = A() - S; + a > p && (m += a - c), S += a, _.time = (S - m) / 1e3, e = _.time - l, (!i || e > 0 || t === !0) && (_.frame++, l += e + (e >= o ? .004 : o - e), r = !0), t !== !0 && (n = s(d)), r && _.dispatchEvent("tick"); + }; + + P.call(_), _.time = _.frame = 0, _.tick = function () { + d(!0); + }, _.lagSmoothing = function (t, e) { + p = t || 1 / h, c = Math.min(e, p, 0); + }, _.sleep = function () { + null != n && (f && b ? b(n) : clearTimeout(n), s = u, n = null, _ === r && (a = !1)); + }, _.wake = function () { + null !== n ? _.sleep() : _.frame > 10 && (S = A() - p + 5), s = 0 === i ? u : f && k ? k : function (t) { + return setTimeout(t, 0 | 1e3 * (l - _.time) + 1); + }, _ === r && (a = !0), d(2); + }, _.fps = function (t) { + return arguments.length ? (i = t, o = 1 / (i || 60), l = this.time + o, _.wake(), void 0) : i; + }, _.useRAF = function (t) { + return arguments.length ? (_.sleep(), f = t, _.fps(i), void 0) : f; + }, _.fps(t), setTimeout(function () { + f && (!n || 5 > _.frame) && _.useRAF(!1); + }, 1500); + }), n = l.Ticker.prototype = new l.events.EventDispatcher(), n.constructor = l.Ticker; + var x = d("core.Animation", function (t, e) { + if (this.vars = e = e || {}, this._duration = this._totalDuration = t || 0, this._delay = Number(e.delay) || 0, this._timeScale = 1, this._active = e.immediateRender === !0, this.data = e.data, this._reversed = e.reversed === !0, B) { + a || r.wake(); + var i = this.vars.useFrames ? Q : B; + i.add(this, i._time), this.vars.paused && this.paused(!0); + } + }); + r = x.ticker = new l.Ticker(), n = x.prototype, n._dirty = n._gc = n._initted = n._paused = !1, n._totalTime = n._time = 0, n._rawPrevTime = -1, n._next = n._last = n._onUpdate = n._timeline = n.timeline = null, n._paused = !1; + + var C = function () { + a && A() - S > 2e3 && r.wake(), setTimeout(C, 2e3); + }; + + C(), n.play = function (t, e) { + return null != t && this.seek(t, e), this.reversed(!1).paused(!1); + }, n.pause = function (t, e) { + return null != t && this.seek(t, e), this.paused(!0); + }, n.resume = function (t, e) { + return null != t && this.seek(t, e), this.paused(!1); + }, n.seek = function (t, e) { + return this.totalTime(Number(t), e !== !1); + }, n.restart = function (t, e) { + return this.reversed(!1).paused(!1).totalTime(t ? -this._delay : 0, e !== !1, !0); + }, n.reverse = function (t, e) { + return null != t && this.seek(t || this.totalDuration(), e), this.reversed(!0).paused(!1); + }, n.render = function () {}, n.invalidate = function () { + return this; + }, n.isActive = function () { + var t, + e = this._timeline, + i = this._startTime; + return !e || !this._gc && !this._paused && e.isActive() && (t = e.rawTime()) >= i && i + this.totalDuration() / this._timeScale > t; + }, n._enabled = function (t, e) { + return a || r.wake(), this._gc = !t, this._active = this.isActive(), e !== !0 && (t && !this.timeline ? this._timeline.add(this, this._startTime - this._delay) : !t && this.timeline && this._timeline._remove(this, !0)), !1; + }, n._kill = function () { + return this._enabled(!1, !1); + }, n.kill = function (t, e) { + return this._kill(t, e), this; + }, n._uncache = function (t) { + for (var e = t ? this : this.timeline; e;) e._dirty = !0, e = e.timeline; + + return this; + }, n._swapSelfInParams = function (t) { + for (var e = t.length, i = t.concat(); --e > -1;) "{self}" === t[e] && (i[e] = this); + + return i; + }, n.eventCallback = function (t, e, i, s) { + if ("on" === (t || "").substr(0, 2)) { + var n = this.vars; + if (1 === arguments.length) return n[t]; + null == e ? delete n[t] : (n[t] = e, n[t + "Params"] = m(i) && -1 !== i.join("").indexOf("{self}") ? this._swapSelfInParams(i) : i, n[t + "Scope"] = s), "onUpdate" === t && (this._onUpdate = e); + } + + return this; + }, n.delay = function (t) { + return arguments.length ? (this._timeline.smoothChildTiming && this.startTime(this._startTime + t - this._delay), this._delay = t, this) : this._delay; + }, n.duration = function (t) { + return arguments.length ? (this._duration = this._totalDuration = t, this._uncache(!0), this._timeline.smoothChildTiming && this._time > 0 && this._time < this._duration && 0 !== t && this.totalTime(this._totalTime * (t / this._duration), !0), this) : (this._dirty = !1, this._duration); + }, n.totalDuration = function (t) { + return this._dirty = !1, arguments.length ? this.duration(t) : this._totalDuration; + }, n.time = function (t, e) { + return arguments.length ? (this._dirty && this.totalDuration(), this.totalTime(t > this._duration ? this._duration : t, e)) : this._time; + }, n.totalTime = function (t, e, i) { + if (a || r.wake(), !arguments.length) return this._totalTime; + + if (this._timeline) { + if (0 > t && !i && (t += this.totalDuration()), this._timeline.smoothChildTiming) { + this._dirty && this.totalDuration(); + var s = this._totalDuration, + n = this._timeline; + if (t > s && !i && (t = s), this._startTime = (this._paused ? this._pauseTime : n._time) - (this._reversed ? s - t : t) / this._timeScale, n._dirty || this._uncache(!1), n._timeline) for (; n._timeline;) n._timeline._time !== (n._startTime + n._totalTime) / n._timeScale && n.totalTime(n._totalTime, !0), n = n._timeline; + } + + this._gc && this._enabled(!0, !1), (this._totalTime !== t || 0 === this._duration) && (this.render(t, e, !1), z.length && q()); + } + + return this; + }, n.progress = n.totalProgress = function (t, e) { + return arguments.length ? this.totalTime(this.duration() * t, e) : this._time / this.duration(); + }, n.startTime = function (t) { + return arguments.length ? (t !== this._startTime && (this._startTime = t, this.timeline && this.timeline._sortChildren && this.timeline.add(this, t - this._delay)), this) : this._startTime; + }, n.timeScale = function (t) { + if (!arguments.length) return this._timeScale; + + if (t = t || h, this._timeline && this._timeline.smoothChildTiming) { + var e = this._pauseTime, + i = e || 0 === e ? e : this._timeline.totalTime(); + this._startTime = i - (i - this._startTime) * this._timeScale / t; + } + + return this._timeScale = t, this._uncache(!1); + }, n.reversed = function (t) { + return arguments.length ? (t != this._reversed && (this._reversed = t, this.totalTime(this._timeline && !this._timeline.smoothChildTiming ? this.totalDuration() - this._totalTime : this._totalTime, !0)), this) : this._reversed; + }, n.paused = function (t) { + if (!arguments.length) return this._paused; + + if (t != this._paused && this._timeline) { + a || t || r.wake(); + var e = this._timeline, + i = e.rawTime(), + s = i - this._pauseTime; + !t && e.smoothChildTiming && (this._startTime += s, this._uncache(!1)), this._pauseTime = t ? i : null, this._paused = t, this._active = this.isActive(), !t && 0 !== s && this._initted && this.duration() && this.render(e.smoothChildTiming ? this._totalTime : (i - this._startTime) / this._timeScale, !0, !0); + } + + return this._gc && !t && this._enabled(!0, !1), this; + }; + var R = d("core.SimpleTimeline", function (t) { + x.call(this, 0, t), this.autoRemoveChildren = this.smoothChildTiming = !0; + }); + n = R.prototype = new x(), n.constructor = R, n.kill()._gc = !1, n._first = n._last = null, n._sortChildren = !1, n.add = n.insert = function (t, e) { + var i, s; + if (t._startTime = Number(e || 0) + t._delay, t._paused && this !== t._timeline && (t._pauseTime = t._startTime + (this.rawTime() - t._startTime) / t._timeScale), t.timeline && t.timeline._remove(t, !0), t.timeline = t._timeline = this, t._gc && t._enabled(!0, !0), i = this._last, this._sortChildren) for (s = t._startTime; i && i._startTime > s;) i = i._prev; + return i ? (t._next = i._next, i._next = t) : (t._next = this._first, this._first = t), t._next ? t._next._prev = t : this._last = t, t._prev = i, this._timeline && this._uncache(!0), this; + }, n._remove = function (t, e) { + return t.timeline === this && (e || t._enabled(!1, !0), t.timeline = null, t._prev ? t._prev._next = t._next : this._first === t && (this._first = t._next), t._next ? t._next._prev = t._prev : this._last === t && (this._last = t._prev), this._timeline && this._uncache(!0)), this; + }, n.render = function (t, e, i) { + var s, + n = this._first; + + for (this._totalTime = this._time = this._rawPrevTime = t; n;) s = n._next, (n._active || t >= n._startTime && !n._paused) && (n._reversed ? n.render((n._dirty ? n.totalDuration() : n._totalDuration) - (t - n._startTime) * n._timeScale, e, i) : n.render((t - n._startTime) * n._timeScale, e, i)), n = s; + }, n.rawTime = function () { + return a || r.wake(), this._totalTime; + }; + + var D = d("TweenLite", function (e, i, s) { + if (x.call(this, i, s), this.render = D.prototype.render, null == e) throw "Cannot tween a null target."; + this.target = e = "string" != typeof e ? e : D.selector(e) || e; + var n, + r, + a, + o = e.jquery || e.length && e !== t && e[0] && (e[0] === t || e[0].nodeType && e[0].style && !e.nodeType), + l = this.vars.overwrite; + if (this._overwrite = l = null == l ? G[D.defaultOverwrite] : "number" == typeof l ? l >> 0 : G[l], (o || e instanceof Array || e.push && m(e)) && "number" != typeof e[0]) for (this._targets = a = _.call(e, 0), this._propLookup = [], this._siblings = [], n = 0; a.length > n; n++) r = a[n], r ? "string" != typeof r ? r.length && r !== t && r[0] && (r[0] === t || r[0].nodeType && r[0].style && !r.nodeType) ? (a.splice(n--, 1), this._targets = a = a.concat(_.call(r, 0))) : (this._siblings[n] = M(r, this, !1), 1 === l && this._siblings[n].length > 1 && $(r, this, null, 1, this._siblings[n])) : (r = a[n--] = D.selector(r), "string" == typeof r && a.splice(n + 1, 1)) : a.splice(n--, 1);else this._propLookup = {}, this._siblings = M(e, this, !1), 1 === l && this._siblings.length > 1 && $(e, this, null, 1, this._siblings); + (this.vars.immediateRender || 0 === i && 0 === this._delay && this.vars.immediateRender !== !1) && (this._time = -h, this.render(-this._delay)); + }, !0), + I = function (e) { + return e.length && e !== t && e[0] && (e[0] === t || e[0].nodeType && e[0].style && !e.nodeType); + }, + E = function (t, e) { + var i, + s = {}; + + for (i in t) j[i] || i in e && "transform" !== i && "x" !== i && "y" !== i && "width" !== i && "height" !== i && "className" !== i && "border" !== i || !(!L[i] || L[i] && L[i]._autoCSS) || (s[i] = t[i], delete t[i]); + + t.css = s; + }; + + n = D.prototype = new x(), n.constructor = D, n.kill()._gc = !1, n.ratio = 0, n._firstPT = n._targets = n._overwrittenProps = n._startAt = null, n._notifyPluginsOfEnabled = n._lazy = !1, D.version = "1.12.1", D.defaultEase = n._ease = new T(null, null, 1, 1), D.defaultOverwrite = "auto", D.ticker = r, D.autoSleep = !0, D.lagSmoothing = function (t, e) { + r.lagSmoothing(t, e); + }, D.selector = t.$ || t.jQuery || function (e) { + return t.$ ? (D.selector = t.$, t.$(e)) : t.document ? t.document.getElementById("#" === e.charAt(0) ? e.substr(1) : e) : e; + }; + + var z = [], + O = {}, + N = D._internals = { + isArray: m, + isSelector: I, + lazyTweens: z + }, + L = D._plugins = {}, + U = N.tweenLookup = {}, + F = 0, + j = N.reservedProps = { + ease: 1, + delay: 1, + overwrite: 1, + onComplete: 1, + onCompleteParams: 1, + onCompleteScope: 1, + useFrames: 1, + runBackwards: 1, + startAt: 1, + onUpdate: 1, + onUpdateParams: 1, + onUpdateScope: 1, + onStart: 1, + onStartParams: 1, + onStartScope: 1, + onReverseComplete: 1, + onReverseCompleteParams: 1, + onReverseCompleteScope: 1, + onRepeat: 1, + onRepeatParams: 1, + onRepeatScope: 1, + easeParams: 1, + yoyo: 1, + immediateRender: 1, + repeat: 1, + repeatDelay: 1, + data: 1, + paused: 1, + reversed: 1, + autoCSS: 1, + lazy: 1 + }, + G = { + none: 0, + all: 1, + auto: 2, + concurrent: 3, + allOnStart: 4, + preexisting: 5, + "true": 1, + "false": 0 + }, + Q = x._rootFramesTimeline = new R(), + B = x._rootTimeline = new R(), + q = function () { + var t = z.length; + + for (O = {}; --t > -1;) i = z[t], i && i._lazy !== !1 && (i.render(i._lazy, !1, !0), i._lazy = !1); + + z.length = 0; + }; + + B._startTime = r.time, Q._startTime = r.frame, B._active = Q._active = !0, setTimeout(q, 1), x._updateRoot = D.render = function () { + var t, e, i; + + if (z.length && q(), B.render((r.time - B._startTime) * B._timeScale, !1, !1), Q.render((r.frame - Q._startTime) * Q._timeScale, !1, !1), z.length && q(), !(r.frame % 120)) { + for (i in U) { + for (e = U[i].tweens, t = e.length; --t > -1;) e[t]._gc && e.splice(t, 1); + + 0 === e.length && delete U[i]; + } + + if (i = B._first, (!i || i._paused) && D.autoSleep && !Q._first && 1 === r._listeners.tick.length) { + for (; i && i._paused;) i = i._next; + + i || r.sleep(); + } + } + }, r.addEventListener("tick", x._updateRoot); + + var M = function (t, e, i) { + var s, + n, + r = t._gsTweenID; + if (U[r || (t._gsTweenID = r = "t" + F++)] || (U[r] = { + target: t, + tweens: [] + }), e && (s = U[r].tweens, s[n = s.length] = e, i)) for (; --n > -1;) s[n] === e && s.splice(n, 1); + return U[r].tweens; + }, + $ = function (t, e, i, s, n) { + var r, a, o, l; + + if (1 === s || s >= 4) { + for (l = n.length, r = 0; l > r; r++) if ((o = n[r]) !== e) o._gc || o._enabled(!1, !1) && (a = !0);else if (5 === s) break; + + return a; + } + + var _, + u = e._startTime + h, + m = [], + f = 0, + p = 0 === e._duration; + + for (r = n.length; --r > -1;) (o = n[r]) === e || o._gc || o._paused || (o._timeline !== e._timeline ? (_ = _ || K(e, 0, p), 0 === K(o, _, p) && (m[f++] = o)) : u >= o._startTime && o._startTime + o.totalDuration() / o._timeScale > u && ((p || !o._initted) && 2e-10 >= u - o._startTime || (m[f++] = o))); + + for (r = f; --r > -1;) o = m[r], 2 === s && o._kill(i, t) && (a = !0), (2 !== s || !o._firstPT && o._initted) && o._enabled(!1, !1) && (a = !0); + + return a; + }, + K = function (t, e, i) { + for (var s = t._timeline, n = s._timeScale, r = t._startTime; s._timeline;) { + if (r += s._startTime, n *= s._timeScale, s._paused) return -100; + s = s._timeline; + } + + return r /= n, r > e ? r - e : i && r === e || !t._initted && 2 * h > r - e ? h : (r += t.totalDuration() / t._timeScale / n) > e + h ? 0 : r - e - h; + }; + + n._init = function () { + var t, + e, + i, + s, + n, + r = this.vars, + a = this._overwrittenProps, + o = this._duration, + l = !!r.immediateRender, + h = r.ease; + + if (r.startAt) { + this._startAt && (this._startAt.render(-1, !0), this._startAt.kill()), n = {}; + + for (s in r.startAt) n[s] = r.startAt[s]; + + if (n.overwrite = !1, n.immediateRender = !0, n.lazy = l && r.lazy !== !1, n.startAt = n.delay = null, this._startAt = D.to(this.target, 0, n), l) if (this._time > 0) this._startAt = null;else if (0 !== o) return; + } else if (r.runBackwards && 0 !== o) if (this._startAt) this._startAt.render(-1, !0), this._startAt.kill(), this._startAt = null;else { + i = {}; + + for (s in r) j[s] && "autoCSS" !== s || (i[s] = r[s]); + + if (i.overwrite = 0, i.data = "isFromStart", i.lazy = l && r.lazy !== !1, i.immediateRender = l, this._startAt = D.to(this.target, 0, i), l) { + if (0 === this._time) return; + } else this._startAt._init(), this._startAt._enabled(!1); + } + + if (this._ease = h ? h instanceof T ? r.easeParams instanceof Array ? h.config.apply(h, r.easeParams) : h : "function" == typeof h ? new T(h, r.easeParams) : y[h] || D.defaultEase : D.defaultEase, this._easeType = this._ease._type, this._easePower = this._ease._power, this._firstPT = null, this._targets) for (t = this._targets.length; --t > -1;) this._initProps(this._targets[t], this._propLookup[t] = {}, this._siblings[t], a ? a[t] : null) && (e = !0);else e = this._initProps(this.target, this._propLookup, this._siblings, a); + if (e && D._onPluginEvent("_onInitAllProps", this), a && (this._firstPT || "function" != typeof this.target && this._enabled(!1, !1)), r.runBackwards) for (i = this._firstPT; i;) i.s += i.c, i.c = -i.c, i = i._next; + this._onUpdate = r.onUpdate, this._initted = !0; + }, n._initProps = function (e, i, s, n) { + var r, a, o, l, h, _; + + if (null == e) return !1; + O[e._gsTweenID] && q(), this.vars.css || e.style && e !== t && e.nodeType && L.css && this.vars.autoCSS !== !1 && E(this.vars, e); + + for (r in this.vars) { + if (_ = this.vars[r], j[r]) _ && (_ instanceof Array || _.push && m(_)) && -1 !== _.join("").indexOf("{self}") && (this.vars[r] = _ = this._swapSelfInParams(_, this));else if (L[r] && (l = new L[r]())._onInitTween(e, this.vars[r], this)) { + for (this._firstPT = h = { + _next: this._firstPT, + t: l, + p: "setRatio", + s: 0, + c: 1, + f: !0, + n: r, + pg: !0, + pr: l._priority + }, a = l._overwriteProps.length; --a > -1;) i[l._overwriteProps[a]] = this._firstPT; + + (l._priority || l._onInitAllProps) && (o = !0), (l._onDisable || l._onEnable) && (this._notifyPluginsOfEnabled = !0); + } else this._firstPT = i[r] = h = { + _next: this._firstPT, + t: e, + p: r, + f: "function" == typeof e[r], + n: r, + pg: !1, + pr: 0 + }, h.s = h.f ? e[r.indexOf("set") || "function" != typeof e["get" + r.substr(3)] ? r : "get" + r.substr(3)]() : parseFloat(e[r]), h.c = "string" == typeof _ && "=" === _.charAt(1) ? parseInt(_.charAt(0) + "1", 10) * Number(_.substr(2)) : Number(_) - h.s || 0; + h && h._next && (h._next._prev = h); + } + + return n && this._kill(n, e) ? this._initProps(e, i, s, n) : this._overwrite > 1 && this._firstPT && s.length > 1 && $(e, this, i, this._overwrite, s) ? (this._kill(i, e), this._initProps(e, i, s, n)) : (this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration) && (O[e._gsTweenID] = !0), o); + }, n.render = function (t, e, i) { + var s, + n, + r, + a, + o = this._time, + l = this._duration, + _ = this._rawPrevTime; + if (t >= l) this._totalTime = this._time = l, this.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1, this._reversed || (s = !0, n = "onComplete"), 0 === l && (this._initted || !this.vars.lazy || i) && (this._startTime === this._timeline._duration && (t = 0), (0 === t || 0 > _ || _ === h) && _ !== t && (i = !0, _ > h && (n = "onReverseComplete")), this._rawPrevTime = a = !e || t || _ === t ? t : h);else if (1e-7 > t) this._totalTime = this._time = 0, this.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0, (0 !== o || 0 === l && _ > 0 && _ !== h) && (n = "onReverseComplete", s = this._reversed), 0 > t ? (this._active = !1, 0 === l && (this._initted || !this.vars.lazy || i) && (_ >= 0 && (i = !0), this._rawPrevTime = a = !e || t || _ === t ? t : h)) : this._initted || (i = !0);else if (this._totalTime = this._time = t, this._easeType) { + var u = t / l, + m = this._easeType, + f = this._easePower; + (1 === m || 3 === m && u >= .5) && (u = 1 - u), 3 === m && (u *= 2), 1 === f ? u *= u : 2 === f ? u *= u * u : 3 === f ? u *= u * u * u : 4 === f && (u *= u * u * u * u), this.ratio = 1 === m ? 1 - u : 2 === m ? u : .5 > t / l ? u / 2 : 1 - u / 2; + } else this.ratio = this._ease.getRatio(t / l); + + if (this._time !== o || i) { + if (!this._initted) { + if (this._init(), !this._initted || this._gc) return; + if (!i && this._firstPT && (this.vars.lazy !== !1 && this._duration || this.vars.lazy && !this._duration)) return this._time = this._totalTime = o, this._rawPrevTime = _, z.push(this), this._lazy = t, void 0; + this._time && !s ? this.ratio = this._ease.getRatio(this._time / l) : s && this._ease._calcEnd && (this.ratio = this._ease.getRatio(0 === this._time ? 0 : 1)); + } + + for (this._lazy !== !1 && (this._lazy = !1), this._active || !this._paused && this._time !== o && t >= 0 && (this._active = !0), 0 === o && (this._startAt && (t >= 0 ? this._startAt.render(t, e, i) : n || (n = "_dummyGS")), this.vars.onStart && (0 !== this._time || 0 === l) && (e || this.vars.onStart.apply(this.vars.onStartScope || this, this.vars.onStartParams || g))), r = this._firstPT; r;) r.f ? r.t[r.p](r.c * this.ratio + r.s) : r.t[r.p] = r.c * this.ratio + r.s, r = r._next; + + this._onUpdate && (0 > t && this._startAt && this._startTime && this._startAt.render(t, e, i), e || (this._time !== o || s) && this._onUpdate.apply(this.vars.onUpdateScope || this, this.vars.onUpdateParams || g)), n && (this._gc || (0 > t && this._startAt && !this._onUpdate && this._startTime && this._startAt.render(t, e, i), s && (this._timeline.autoRemoveChildren && this._enabled(!1, !1), this._active = !1), !e && this.vars[n] && this.vars[n].apply(this.vars[n + "Scope"] || this, this.vars[n + "Params"] || g), 0 === l && this._rawPrevTime === h && a !== h && (this._rawPrevTime = 0))); + } + }, n._kill = function (t, e) { + if ("all" === t && (t = null), null == t && (null == e || e === this.target)) return this._lazy = !1, this._enabled(!1, !1); + e = "string" != typeof e ? e || this._targets || this.target : D.selector(e) || e; + var i, s, n, r, a, o, l, h; + if ((m(e) || I(e)) && "number" != typeof e[0]) for (i = e.length; --i > -1;) this._kill(t, e[i]) && (o = !0);else { + if (this._targets) { + for (i = this._targets.length; --i > -1;) if (e === this._targets[i]) { + a = this._propLookup[i] || {}, this._overwrittenProps = this._overwrittenProps || [], s = this._overwrittenProps[i] = t ? this._overwrittenProps[i] || {} : "all"; + break; + } + } else { + if (e !== this.target) return !1; + a = this._propLookup, s = this._overwrittenProps = t ? this._overwrittenProps || {} : "all"; + } + + if (a) { + l = t || a, h = t !== s && "all" !== s && t !== a && ("object" != typeof t || !t._tempKill); + + for (n in l) (r = a[n]) && (r.pg && r.t._kill(l) && (o = !0), r.pg && 0 !== r.t._overwriteProps.length || (r._prev ? r._prev._next = r._next : r === this._firstPT && (this._firstPT = r._next), r._next && (r._next._prev = r._prev), r._next = r._prev = null), delete a[n]), h && (s[n] = 1); + + !this._firstPT && this._initted && this._enabled(!1, !1); + } + } + return o; + }, n.invalidate = function () { + return this._notifyPluginsOfEnabled && D._onPluginEvent("_onDisable", this), this._firstPT = null, this._overwrittenProps = null, this._onUpdate = null, this._startAt = null, this._initted = this._active = this._notifyPluginsOfEnabled = this._lazy = !1, this._propLookup = this._targets ? {} : [], this; + }, n._enabled = function (t, e) { + if (a || r.wake(), t && this._gc) { + var i, + s = this._targets; + if (s) for (i = s.length; --i > -1;) this._siblings[i] = M(s[i], this, !0);else this._siblings = M(this.target, this, !0); + } + + return x.prototype._enabled.call(this, t, e), this._notifyPluginsOfEnabled && this._firstPT ? D._onPluginEvent(t ? "_onEnable" : "_onDisable", this) : !1; + }, D.to = function (t, e, i) { + return new D(t, e, i); + }, D.from = function (t, e, i) { + return i.runBackwards = !0, i.immediateRender = 0 != i.immediateRender, new D(t, e, i); + }, D.fromTo = function (t, e, i, s) { + return s.startAt = i, s.immediateRender = 0 != s.immediateRender && 0 != i.immediateRender, new D(t, e, s); + }, D.delayedCall = function (t, e, i, s, n) { + return new D(e, 0, { + delay: t, + onComplete: e, + onCompleteParams: i, + onCompleteScope: s, + onReverseComplete: e, + onReverseCompleteParams: i, + onReverseCompleteScope: s, + immediateRender: !1, + useFrames: n, + overwrite: 0 + }); + }, D.set = function (t, e) { + return new D(t, 0, e); + }, D.getTweensOf = function (t, e) { + if (null == t) return []; + t = "string" != typeof t ? t : D.selector(t) || t; + var i, s, n, r; + + if ((m(t) || I(t)) && "number" != typeof t[0]) { + for (i = t.length, s = []; --i > -1;) s = s.concat(D.getTweensOf(t[i], e)); + + for (i = s.length; --i > -1;) for (r = s[i], n = i; --n > -1;) r === s[n] && s.splice(i, 1); + } else for (s = M(t).concat(), i = s.length; --i > -1;) (s[i]._gc || e && !s[i].isActive()) && s.splice(i, 1); + + return s; + }, D.killTweensOf = D.killDelayedCallsTo = function (t, e, i) { + "object" == typeof e && (i = e, e = !1); + + for (var s = D.getTweensOf(t, e), n = s.length; --n > -1;) s[n]._kill(i, t); + }; + var H = d("plugins.TweenPlugin", function (t, e) { + this._overwriteProps = (t || "").split(","), this._propName = this._overwriteProps[0], this._priority = e || 0, this._super = H.prototype; + }, !0); + + if (n = H.prototype, H.version = "1.10.1", H.API = 2, n._firstPT = null, n._addTween = function (t, e, i, s, n, r) { + var a, o; + return null != s && (a = "number" == typeof s || "=" !== s.charAt(1) ? Number(s) - i : parseInt(s.charAt(0) + "1", 10) * Number(s.substr(2))) ? (this._firstPT = o = { + _next: this._firstPT, + t: t, + p: e, + s: i, + c: a, + f: "function" == typeof t[e], + n: n || e, + r: r + }, o._next && (o._next._prev = o), o) : void 0; + }, n.setRatio = function (t) { + for (var e, i = this._firstPT, s = 1e-6; i;) e = i.c * t + i.s, i.r ? e = Math.round(e) : s > e && e > -s && (e = 0), i.f ? i.t[i.p](e) : i.t[i.p] = e, i = i._next; + }, n._kill = function (t) { + var e, + i = this._overwriteProps, + s = this._firstPT; + if (null != t[this._propName]) this._overwriteProps = [];else for (e = i.length; --e > -1;) null != t[i[e]] && i.splice(e, 1); + + for (; s;) null != t[s.n] && (s._next && (s._next._prev = s._prev), s._prev ? (s._prev._next = s._next, s._prev = null) : this._firstPT === s && (this._firstPT = s._next)), s = s._next; + + return !1; + }, n._roundProps = function (t, e) { + for (var i = this._firstPT; i;) (t[this._propName] || null != i.n && t[i.n.split(this._propName + "_").join("")]) && (i.r = e), i = i._next; + }, D._onPluginEvent = function (t, e) { + var i, + s, + n, + r, + a, + o = e._firstPT; + + if ("_onInitAllProps" === t) { + for (; o;) { + for (a = o._next, s = n; s && s.pr > o.pr;) s = s._next; + + (o._prev = s ? s._prev : r) ? o._prev._next = o : n = o, (o._next = s) ? s._prev = o : r = o, o = a; + } + + o = e._firstPT = n; + } + + for (; o;) o.pg && "function" == typeof o.t[t] && o.t[t]() && (i = !0), o = o._next; + + return i; + }, H.activate = function (t) { + for (var e = t.length; --e > -1;) t[e].API === H.API && (L[new t[e]()._propName] = t[e]); + + return !0; + }, c.plugin = function (t) { + if (!(t && t.propName && t.init && t.API)) throw "illegal plugin definition."; + var e, + i = t.propName, + s = t.priority || 0, + n = t.overwriteProps, + r = { + init: "_onInitTween", + set: "setRatio", + kill: "_kill", + round: "_roundProps", + initAll: "_onInitAllProps" + }, + a = d("plugins." + i.charAt(0).toUpperCase() + i.substr(1) + "Plugin", function () { + H.call(this, i, s), this._overwriteProps = n || []; + }, t.global === !0), + o = a.prototype = new H(i); + o.constructor = a, a.API = t.API; + + for (e in r) "function" == typeof t[e] && (o[r[e]] = t[e]); + + return a.version = t.version, H.activate([a]), a; + }, i = t._gsQueue) { + for (s = 0; i.length > s; s++) i[s](); + + for (n in f) f[n].func || t.console.log("GSAP encountered missing dependency: com.greensock." + n); + } + + a = !1; + } +})(window); + +},{}],11:[function(require,module,exports){ +"use strict"; + +/*! + * VERSION: beta 1.9.3 + * DATE: 2013-04-02 + * UPDATES AND DOCS AT: http://www.greensock.com + * + * @license Copyright (c) 2008-2014, GreenSock. All rights reserved. + * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for + * Club GreenSock members, the software agreement that was issued with your membership. + * + * @author: Jack Doyle, jack@greensock.com + **/ +(window._gsQueue || (window._gsQueue = [])).push(function () { + "use strict"; + + window._gsDefine("easing.Back", ["easing.Ease"], function (t) { + var e, + i, + s, + r = window.GreenSockGlobals || window, + n = r.com.greensock, + a = 2 * Math.PI, + o = Math.PI / 2, + h = n._class, + l = function (e, i) { + var s = h("easing." + e, function () {}, !0), + r = s.prototype = new t(); + return r.constructor = s, r.getRatio = i, s; + }, + _ = t.register || function () {}, + u = function (t, e, i, s) { + var r = h("easing." + t, { + easeOut: new e(), + easeIn: new i(), + easeInOut: new s() + }, !0); + return _(r, t), r; + }, + c = function (t, e, i) { + this.t = t, this.v = e, i && (this.next = i, i.prev = this, this.c = i.v - e, this.gap = i.t - t); + }, + f = function (e, i) { + var s = h("easing." + e, function (t) { + this._p1 = t || 0 === t ? t : 1.70158, this._p2 = 1.525 * this._p1; + }, !0), + r = s.prototype = new t(); + return r.constructor = s, r.getRatio = i, r.config = function (t) { + return new s(t); + }, s; + }, + p = u("Back", f("BackOut", function (t) { + return (t -= 1) * t * ((this._p1 + 1) * t + this._p1) + 1; + }), f("BackIn", function (t) { + return t * t * ((this._p1 + 1) * t - this._p1); + }), f("BackInOut", function (t) { + return 1 > (t *= 2) ? .5 * t * t * ((this._p2 + 1) * t - this._p2) : .5 * ((t -= 2) * t * ((this._p2 + 1) * t + this._p2) + 2); + })), + m = h("easing.SlowMo", function (t, e, i) { + e = e || 0 === e ? e : .7, null == t ? t = .7 : t > 1 && (t = 1), this._p = 1 !== t ? e : 0, this._p1 = (1 - t) / 2, this._p2 = t, this._p3 = this._p1 + this._p2, this._calcEnd = i === !0; + }, !0), + d = m.prototype = new t(); + + return d.constructor = m, d.getRatio = function (t) { + var e = t + (.5 - t) * this._p; + return this._p1 > t ? this._calcEnd ? 1 - (t = 1 - t / this._p1) * t : e - (t = 1 - t / this._p1) * t * t * t * e : t > this._p3 ? this._calcEnd ? 1 - (t = (t - this._p3) / this._p1) * t : e + (t - e) * (t = (t - this._p3) / this._p1) * t * t * t : this._calcEnd ? 1 : e; + }, m.ease = new m(.7, .7), d.config = m.config = function (t, e, i) { + return new m(t, e, i); + }, e = h("easing.SteppedEase", function (t) { + t = t || 1, this._p1 = 1 / t, this._p2 = t + 1; + }, !0), d = e.prototype = new t(), d.constructor = e, d.getRatio = function (t) { + return 0 > t ? t = 0 : t >= 1 && (t = .999999999), (this._p2 * t >> 0) * this._p1; + }, d.config = e.config = function (t) { + return new e(t); + }, i = h("easing.RoughEase", function (e) { + e = e || {}; + + for (var i, s, r, n, a, o, h = e.taper || "none", l = [], _ = 0, u = 0 | (e.points || 20), f = u, p = e.randomize !== !1, m = e.clamp === !0, d = e.template instanceof t ? e.template : null, g = "number" == typeof e.strength ? .4 * e.strength : .4; --f > -1;) i = p ? Math.random() : 1 / u * f, s = d ? d.getRatio(i) : i, "none" === h ? r = g : "out" === h ? (n = 1 - i, r = n * n * g) : "in" === h ? r = i * i * g : .5 > i ? (n = 2 * i, r = .5 * n * n * g) : (n = 2 * (1 - i), r = .5 * n * n * g), p ? s += Math.random() * r - .5 * r : f % 2 ? s += .5 * r : s -= .5 * r, m && (s > 1 ? s = 1 : 0 > s && (s = 0)), l[_++] = { + x: i, + y: s + }; + + for (l.sort(function (t, e) { + return t.x - e.x; + }), o = new c(1, 1, null), f = u; --f > -1;) a = l[f], o = new c(a.x, a.y, o); + + this._prev = new c(0, 0, 0 !== o.t ? o : o.next); + }, !0), d = i.prototype = new t(), d.constructor = i, d.getRatio = function (t) { + var e = this._prev; + + if (t > e.t) { + for (; e.next && t >= e.t;) e = e.next; + + e = e.prev; + } else for (; e.prev && e.t >= t;) e = e.prev; + + return this._prev = e, e.v + (t - e.t) / e.gap * e.c; + }, d.config = function (t) { + return new i(t); + }, i.ease = new i(), u("Bounce", l("BounceOut", function (t) { + return 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375; + }), l("BounceIn", function (t) { + return 1 / 2.75 > (t = 1 - t) ? 1 - 7.5625 * t * t : 2 / 2.75 > t ? 1 - (7.5625 * (t -= 1.5 / 2.75) * t + .75) : 2.5 / 2.75 > t ? 1 - (7.5625 * (t -= 2.25 / 2.75) * t + .9375) : 1 - (7.5625 * (t -= 2.625 / 2.75) * t + .984375); + }), l("BounceInOut", function (t) { + var e = .5 > t; + return t = e ? 1 - 2 * t : 2 * t - 1, t = 1 / 2.75 > t ? 7.5625 * t * t : 2 / 2.75 > t ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : 2.5 / 2.75 > t ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375, e ? .5 * (1 - t) : .5 * t + .5; + })), u("Circ", l("CircOut", function (t) { + return Math.sqrt(1 - (t -= 1) * t); + }), l("CircIn", function (t) { + return -(Math.sqrt(1 - t * t) - 1); + }), l("CircInOut", function (t) { + return 1 > (t *= 2) ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1); + })), s = function (e, i, s) { + var r = h("easing." + e, function (t, e) { + this._p1 = t || 1, this._p2 = e || s, this._p3 = this._p2 / a * (Math.asin(1 / this._p1) || 0); + }, !0), + n = r.prototype = new t(); + return n.constructor = r, n.getRatio = i, n.config = function (t, e) { + return new r(t, e); + }, r; + }, u("Elastic", s("ElasticOut", function (t) { + return this._p1 * Math.pow(2, -10 * t) * Math.sin((t - this._p3) * a / this._p2) + 1; + }, .3), s("ElasticIn", function (t) { + return -(this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * a / this._p2)); + }, .3), s("ElasticInOut", function (t) { + return 1 > (t *= 2) ? -.5 * this._p1 * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - this._p3) * a / this._p2) : .5 * this._p1 * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - this._p3) * a / this._p2) + 1; + }, .45)), u("Expo", l("ExpoOut", function (t) { + return 1 - Math.pow(2, -10 * t); + }), l("ExpoIn", function (t) { + return Math.pow(2, 10 * (t - 1)) - .001; + }), l("ExpoInOut", function (t) { + return 1 > (t *= 2) ? .5 * Math.pow(2, 10 * (t - 1)) : .5 * (2 - Math.pow(2, -10 * (t - 1))); + })), u("Sine", l("SineOut", function (t) { + return Math.sin(t * o); + }), l("SineIn", function (t) { + return -Math.cos(t * o) + 1; + }), l("SineInOut", function (t) { + return -.5 * (Math.cos(Math.PI * t) - 1); + })), h("easing.EaseLookup", { + find: function (e) { + return t.map[e]; + } + }, !0), _(r.SlowMo, "SlowMo", "ease,"), _(i, "RoughEase", "ease,"), _(e, "SteppedEase", "ease,"), p; + }, !0); +}), window._gsDefine && window._gsQueue.pop()(); + +},{}],12:[function(require,module,exports){ +"use strict"; + +/*! + * VERSION: 1.12.1 + * DATE: 2014-06-26 + * UPDATES AND DOCS AT: http://www.greensock.com + * + * @license Copyright (c) 2008-2014, GreenSock. All rights reserved. + * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for + * Club GreenSock members, the software agreement that was issued with your membership. + * + * @author: Jack Doyle, jack@greensock.com + */ +(window._gsQueue || (window._gsQueue = [])).push(function () { + "use strict"; + + window._gsDefine("plugins.CSSPlugin", ["plugins.TweenPlugin", "TweenLite"], function (t, e) { + var i, + r, + s, + n, + a = function () { + t.call(this, "css"), this._overwriteProps.length = 0, this.setRatio = a.prototype.setRatio; + }, + o = {}, + l = a.prototype = new t("css"); + + l.constructor = a, a.version = "1.12.1", a.API = 2, a.defaultTransformPerspective = 0, a.defaultSkewType = "compensated", l = "px", a.suffixMap = { + top: l, + right: l, + bottom: l, + left: l, + width: l, + height: l, + fontSize: l, + padding: l, + margin: l, + perspective: l, + lineHeight: "" + }; + + var h, + u, + f, + _, + p, + c, + d = /(?:\d|\-\d|\.\d|\-\.\d)+/g, + m = /(?:\d|\-\d|\.\d|\-\.\d|\+=\d|\-=\d|\+=.\d|\-=\.\d)+/g, + g = /(?:\+=|\-=|\-|\b)[\d\-\.]+[a-zA-Z0-9]*(?:%|\b)/gi, + v = /[^\d\-\.]/g, + y = /(?:\d|\-|\+|=|#|\.)*/g, + T = /opacity *= *([^)]*)/i, + w = /opacity:([^;]*)/i, + x = /alpha\(opacity *=.+?\)/i, + b = /^(rgb|hsl)/, + P = /([A-Z])/g, + S = /-([a-z])/gi, + C = /(^(?:url\(\"|url\())|(?:(\"\))$|\)$)/gi, + R = function (t, e) { + return e.toUpperCase(); + }, + k = /(?:Left|Right|Width)/i, + A = /(M11|M12|M21|M22)=[\d\-\.e]+/gi, + O = /progid\:DXImageTransform\.Microsoft\.Matrix\(.+?\)/i, + D = /,(?=[^\)]*(?:\(|$))/gi, + M = Math.PI / 180, + L = 180 / Math.PI, + N = {}, + X = document, + z = X.createElement("div"), + I = X.createElement("img"), + E = a._internals = { + _specialProps: o + }, + F = navigator.userAgent, + Y = function () { + var t, + e = F.indexOf("Android"), + i = X.createElement("div"); + return f = -1 !== F.indexOf("Safari") && -1 === F.indexOf("Chrome") && (-1 === e || Number(F.substr(e + 8, 1)) > 3), p = f && 6 > Number(F.substr(F.indexOf("Version/") + 8, 1)), _ = -1 !== F.indexOf("Firefox"), /MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(F) && (c = parseFloat(RegExp.$1)), i.innerHTML = "a", t = i.getElementsByTagName("a")[0], t ? /^0.55/.test(t.style.opacity) : !1; + }(), + B = function (t) { + return T.test("string" == typeof t ? t : (t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? parseFloat(RegExp.$1) / 100 : 1; + }, + U = function (t) { + window.console && console.log(t); + }, + W = "", + j = "", + V = function (t, e) { + e = e || z; + var i, + r, + s = e.style; + if (void 0 !== s[t]) return t; + + for (t = t.charAt(0).toUpperCase() + t.substr(1), i = ["O", "Moz", "ms", "Ms", "Webkit"], r = 5; --r > -1 && void 0 === s[i[r] + t];); + + return r >= 0 ? (j = 3 === r ? "ms" : i[r], W = "-" + j.toLowerCase() + "-", j + t) : null; + }, + H = X.defaultView ? X.defaultView.getComputedStyle : function () {}, + q = a.getStyle = function (t, e, i, r, s) { + var n; + return Y || "opacity" !== e ? (!r && t.style[e] ? n = t.style[e] : (i = i || H(t)) ? n = i[e] || i.getPropertyValue(e) || i.getPropertyValue(e.replace(P, "-$1").toLowerCase()) : t.currentStyle && (n = t.currentStyle[e]), null == s || n && "none" !== n && "auto" !== n && "auto auto" !== n ? n : s) : B(t); + }, + Q = E.convertToPixels = function (t, i, r, s, n) { + if ("px" === s || !s) return r; + if ("auto" === s || !r) return 0; + var o, + l, + h, + u = k.test(i), + f = t, + _ = z.style, + p = 0 > r; + if (p && (r = -r), "%" === s && -1 !== i.indexOf("border")) o = r / 100 * (u ? t.clientWidth : t.clientHeight);else { + if (_.cssText = "border:0 solid red;position:" + q(t, "position") + ";line-height:0;", "%" !== s && f.appendChild) _[u ? "borderLeftWidth" : "borderTopWidth"] = r + s;else { + if (f = t.parentNode || X.body, l = f._gsCache, h = e.ticker.frame, l && u && l.time === h) return l.width * r / 100; + _[u ? "width" : "height"] = r + s; + } + f.appendChild(z), o = parseFloat(z[u ? "offsetWidth" : "offsetHeight"]), f.removeChild(z), u && "%" === s && a.cacheWidths !== !1 && (l = f._gsCache = f._gsCache || {}, l.time = h, l.width = 100 * (o / r)), 0 !== o || n || (o = Q(t, i, r, s, !0)); + } + return p ? -o : o; + }, + Z = E.calculateOffset = function (t, e, i) { + if ("absolute" !== q(t, "position", i)) return 0; + var r = "left" === e ? "Left" : "Top", + s = q(t, "margin" + r, i); + return t["offset" + r] - (Q(t, e, parseFloat(s), s.replace(y, "")) || 0); + }, + $ = function (t, e) { + var i, + r, + s = {}; + if (e = e || H(t, null)) { + if (i = e.length) for (; --i > -1;) s[e[i].replace(S, R)] = e.getPropertyValue(e[i]);else for (i in e) s[i] = e[i]; + } else if (e = t.currentStyle || t.style) for (i in e) "string" == typeof i && void 0 === s[i] && (s[i.replace(S, R)] = e[i]); + return Y || (s.opacity = B(t)), r = Pe(t, e, !1), s.rotation = r.rotation, s.skewX = r.skewX, s.scaleX = r.scaleX, s.scaleY = r.scaleY, s.x = r.x, s.y = r.y, xe && (s.z = r.z, s.rotationX = r.rotationX, s.rotationY = r.rotationY, s.scaleZ = r.scaleZ), s.filters && delete s.filters, s; + }, + G = function (t, e, i, r, s) { + var n, + a, + o, + l = {}, + h = t.style; + + for (a in i) "cssText" !== a && "length" !== a && isNaN(a) && (e[a] !== (n = i[a]) || s && s[a]) && -1 === a.indexOf("Origin") && ("number" == typeof n || "string" == typeof n) && (l[a] = "auto" !== n || "left" !== a && "top" !== a ? "" !== n && "auto" !== n && "none" !== n || "string" != typeof e[a] || "" === e[a].replace(v, "") ? n : 0 : Z(t, a), void 0 !== h[a] && (o = new fe(h, a, h[a], o))); + + if (r) for (a in r) "className" !== a && (l[a] = r[a]); + return { + difs: l, + firstMPT: o + }; + }, + K = { + width: ["Left", "Right"], + height: ["Top", "Bottom"] + }, + J = ["marginLeft", "marginRight", "marginTop", "marginBottom"], + te = function (t, e, i) { + var r = parseFloat("width" === e ? t.offsetWidth : t.offsetHeight), + s = K[e], + n = s.length; + + for (i = i || H(t, null); --n > -1;) r -= parseFloat(q(t, "padding" + s[n], i, !0)) || 0, r -= parseFloat(q(t, "border" + s[n] + "Width", i, !0)) || 0; + + return r; + }, + ee = function (t, e) { + (null == t || "" === t || "auto" === t || "auto auto" === t) && (t = "0 0"); + var i = t.split(" "), + r = -1 !== t.indexOf("left") ? "0%" : -1 !== t.indexOf("right") ? "100%" : i[0], + s = -1 !== t.indexOf("top") ? "0%" : -1 !== t.indexOf("bottom") ? "100%" : i[1]; + return null == s ? s = "0" : "center" === s && (s = "50%"), ("center" === r || isNaN(parseFloat(r)) && -1 === (r + "").indexOf("=")) && (r = "50%"), e && (e.oxp = -1 !== r.indexOf("%"), e.oyp = -1 !== s.indexOf("%"), e.oxr = "=" === r.charAt(1), e.oyr = "=" === s.charAt(1), e.ox = parseFloat(r.replace(v, "")), e.oy = parseFloat(s.replace(v, ""))), r + " " + s + (i.length > 2 ? " " + i[2] : ""); + }, + ie = function (t, e) { + return "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * parseFloat(t.substr(2)) : parseFloat(t) - parseFloat(e); + }, + re = function (t, e) { + return null == t ? e : "string" == typeof t && "=" === t.charAt(1) ? parseInt(t.charAt(0) + "1", 10) * Number(t.substr(2)) + e : parseFloat(t); + }, + se = function (t, e, i, r) { + var s, + n, + a, + o, + l = 1e-6; + return null == t ? o = e : "number" == typeof t ? o = t : (s = 360, n = t.split("_"), a = Number(n[0].replace(v, "")) * (-1 === t.indexOf("rad") ? 1 : L) - ("=" === t.charAt(1) ? 0 : e), n.length && (r && (r[i] = e + a), -1 !== t.indexOf("short") && (a %= s, a !== a % (s / 2) && (a = 0 > a ? a + s : a - s)), -1 !== t.indexOf("_cw") && 0 > a ? a = (a + 9999999999 * s) % s - (0 | a / s) * s : -1 !== t.indexOf("ccw") && a > 0 && (a = (a - 9999999999 * s) % s - (0 | a / s) * s)), o = e + a), l > o && o > -l && (o = 0), o; + }, + ne = { + aqua: [0, 255, 255], + lime: [0, 255, 0], + silver: [192, 192, 192], + black: [0, 0, 0], + maroon: [128, 0, 0], + teal: [0, 128, 128], + blue: [0, 0, 255], + navy: [0, 0, 128], + white: [255, 255, 255], + fuchsia: [255, 0, 255], + olive: [128, 128, 0], + yellow: [255, 255, 0], + orange: [255, 165, 0], + gray: [128, 128, 128], + purple: [128, 0, 128], + green: [0, 128, 0], + red: [255, 0, 0], + pink: [255, 192, 203], + cyan: [0, 255, 255], + transparent: [255, 255, 255, 0] + }, + ae = function (t, e, i) { + return t = 0 > t ? t + 1 : t > 1 ? t - 1 : t, 0 | 255 * (1 > 6 * t ? e + 6 * (i - e) * t : .5 > t ? i : 2 > 3 * t ? e + 6 * (i - e) * (2 / 3 - t) : e) + .5; + }, + oe = function (t) { + var e, i, r, s, n, a; + return t && "" !== t ? "number" == typeof t ? [t >> 16, 255 & t >> 8, 255 & t] : ("," === t.charAt(t.length - 1) && (t = t.substr(0, t.length - 1)), ne[t] ? ne[t] : "#" === t.charAt(0) ? (4 === t.length && (e = t.charAt(1), i = t.charAt(2), r = t.charAt(3), t = "#" + e + e + i + i + r + r), t = parseInt(t.substr(1), 16), [t >> 16, 255 & t >> 8, 255 & t]) : "hsl" === t.substr(0, 3) ? (t = t.match(d), s = Number(t[0]) % 360 / 360, n = Number(t[1]) / 100, a = Number(t[2]) / 100, i = .5 >= a ? a * (n + 1) : a + n - a * n, e = 2 * a - i, t.length > 3 && (t[3] = Number(t[3])), t[0] = ae(s + 1 / 3, e, i), t[1] = ae(s, e, i), t[2] = ae(s - 1 / 3, e, i), t) : (t = t.match(d) || ne.transparent, t[0] = Number(t[0]), t[1] = Number(t[1]), t[2] = Number(t[2]), t.length > 3 && (t[3] = Number(t[3])), t)) : ne.black; + }, + le = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b"; + + for (l in ne) le += "|" + l + "\\b"; + + le = RegExp(le + ")", "gi"); + + var he = function (t, e, i, r) { + if (null == t) return function (t) { + return t; + }; + var s, + n = e ? (t.match(le) || [""])[0] : "", + a = t.split(n).join("").match(g) || [], + o = t.substr(0, t.indexOf(a[0])), + l = ")" === t.charAt(t.length - 1) ? ")" : "", + h = -1 !== t.indexOf(" ") ? " " : ",", + u = a.length, + f = u > 0 ? a[0].replace(d, "") : ""; + return u ? s = e ? function (t) { + var e, _, p, c; + + if ("number" == typeof t) t += f;else if (r && D.test(t)) { + for (c = t.replace(D, "|").split("|"), p = 0; c.length > p; p++) c[p] = s(c[p]); + + return c.join(","); + } + if (e = (t.match(le) || [n])[0], _ = t.split(e).join("").match(g) || [], p = _.length, u > p--) for (; u > ++p;) _[p] = i ? _[0 | (p - 1) / 2] : a[p]; + return o + _.join(h) + h + e + l + (-1 !== t.indexOf("inset") ? " inset" : ""); + } : function (t) { + var e, n, _; + + if ("number" == typeof t) t += f;else if (r && D.test(t)) { + for (n = t.replace(D, "|").split("|"), _ = 0; n.length > _; _++) n[_] = s(n[_]); + + return n.join(","); + } + if (e = t.match(g) || [], _ = e.length, u > _--) for (; u > ++_;) e[_] = i ? e[0 | (_ - 1) / 2] : a[_]; + return o + e.join(h) + l; + } : function (t) { + return t; + }; + }, + ue = function (t) { + return t = t.split(","), function (e, i, r, s, n, a, o) { + var l, + h = (i + "").split(" "); + + for (o = {}, l = 0; 4 > l; l++) o[t[l]] = h[l] = h[l] || h[(l - 1) / 2 >> 0]; + + return s.parse(e, o, n, a); + }; + }, + fe = (E._setPluginRatio = function (t) { + this.plugin.setRatio(t); + + for (var e, i, r, s, n = this.data, a = n.proxy, o = n.firstMPT, l = 1e-6; o;) e = a[o.v], o.r ? e = Math.round(e) : l > e && e > -l && (e = 0), o.t[o.p] = e, o = o._next; + + if (n.autoRotate && (n.autoRotate.rotation = a.rotation), 1 === t) for (o = n.firstMPT; o;) { + if (i = o.t, i.type) { + if (1 === i.type) { + for (s = i.xs0 + i.s + i.xs1, r = 1; i.l > r; r++) s += i["xn" + r] + i["xs" + (r + 1)]; + + i.e = s; + } + } else i.e = i.s + i.xs0; + + o = o._next; + } + }, function (t, e, i, r, s) { + this.t = t, this.p = e, this.v = i, this.r = s, r && (r._prev = this, this._next = r); + }), + _e = (E._parseToProxy = function (t, e, i, r, s, n) { + var a, + o, + l, + h, + u, + f = r, + _ = {}, + p = {}, + c = i._transform, + d = N; + + for (i._transform = null, N = e, r = u = i.parse(t, e, r, s), N = d, n && (i._transform = c, f && (f._prev = null, f._prev && (f._prev._next = null))); r && r !== f;) { + if (1 >= r.type && (o = r.p, p[o] = r.s + r.c, _[o] = r.s, n || (h = new fe(r, "s", o, h, r.r), r.c = 0), 1 === r.type)) for (a = r.l; --a > 0;) l = "xn" + a, o = r.p + "_" + l, p[o] = r.data[l], _[o] = r[l], n || (h = new fe(r, l, o, h, r.rxp[l])); + r = r._next; + } + + return { + proxy: _, + end: p, + firstMPT: h, + pt: u + }; + }, E.CSSPropTween = function (t, e, r, s, a, o, l, h, u, f, _) { + this.t = t, this.p = e, this.s = r, this.c = s, this.n = l || e, t instanceof _e || n.push(this.n), this.r = h, this.type = o || 0, u && (this.pr = u, i = !0), this.b = void 0 === f ? r : f, this.e = void 0 === _ ? r + s : _, a && (this._next = a, a._prev = this); + }), + pe = a.parseComplex = function (t, e, i, r, s, n, a, o, l, u) { + i = i || n || "", a = new _e(t, e, 0, 0, a, u ? 2 : 1, null, !1, o, i, r), r += ""; + + var f, + _, + p, + c, + g, + v, + y, + T, + w, + x, + P, + S, + C = i.split(", ").join(",").split(" "), + R = r.split(", ").join(",").split(" "), + k = C.length, + A = h !== !1; + + for ((-1 !== r.indexOf(",") || -1 !== i.indexOf(",")) && (C = C.join(" ").replace(D, ", ").split(" "), R = R.join(" ").replace(D, ", ").split(" "), k = C.length), k !== R.length && (C = (n || "").split(" "), k = C.length), a.plugin = l, a.setRatio = u, f = 0; k > f; f++) if (c = C[f], g = R[f], T = parseFloat(c), T || 0 === T) a.appendXtra("", T, ie(g, T), g.replace(m, ""), A && -1 !== g.indexOf("px"), !0);else if (s && ("#" === c.charAt(0) || ne[c] || b.test(c))) S = "," === g.charAt(g.length - 1) ? ")," : ")", c = oe(c), g = oe(g), w = c.length + g.length > 6, w && !Y && 0 === g[3] ? (a["xs" + a.l] += a.l ? " transparent" : "transparent", a.e = a.e.split(R[f]).join("transparent")) : (Y || (w = !1), a.appendXtra(w ? "rgba(" : "rgb(", c[0], g[0] - c[0], ",", !0, !0).appendXtra("", c[1], g[1] - c[1], ",", !0).appendXtra("", c[2], g[2] - c[2], w ? "," : S, !0), w && (c = 4 > c.length ? 1 : c[3], a.appendXtra("", c, (4 > g.length ? 1 : g[3]) - c, S, !1)));else if (v = c.match(d)) { + if (y = g.match(m), !y || y.length !== v.length) return a; + + for (p = 0, _ = 0; v.length > _; _++) P = v[_], x = c.indexOf(P, p), a.appendXtra(c.substr(p, x - p), Number(P), ie(y[_], P), "", A && "px" === c.substr(x + P.length, 2), 0 === _), p = x + P.length; + + a["xs" + a.l] += c.substr(p); + } else a["xs" + a.l] += a.l ? " " + c : c; + + if (-1 !== r.indexOf("=") && a.data) { + for (S = a.xs0 + a.data.s, f = 1; a.l > f; f++) S += a["xs" + f] + a.data["xn" + f]; + + a.e = S + a["xs" + f]; + } + + return a.l || (a.type = -1, a.xs0 = a.e), a.xfirst || a; + }, + ce = 9; + + for (l = _e.prototype, l.l = l.pr = 0; --ce > 0;) l["xn" + ce] = 0, l["xs" + ce] = ""; + + l.xs0 = "", l._next = l._prev = l.xfirst = l.data = l.plugin = l.setRatio = l.rxp = null, l.appendXtra = function (t, e, i, r, s, n) { + var a = this, + o = a.l; + return a["xs" + o] += n && o ? " " + t : t || "", i || 0 === o || a.plugin ? (a.l++, a.type = a.setRatio ? 2 : 1, a["xs" + a.l] = r || "", o > 0 ? (a.data["xn" + o] = e + i, a.rxp["xn" + o] = s, a["xn" + o] = e, a.plugin || (a.xfirst = new _e(a, "xn" + o, e, i, a.xfirst || a, 0, a.n, s, a.pr), a.xfirst.xs0 = 0), a) : (a.data = { + s: e + i + }, a.rxp = {}, a.s = e, a.c = i, a.r = s, a)) : (a["xs" + o] += e + (r || ""), a); + }; + + var de = function (t, e) { + e = e || {}, this.p = e.prefix ? V(t) || t : t, o[t] = o[this.p] = this, this.format = e.formatter || he(e.defaultValue, e.color, e.collapsible, e.multi), e.parser && (this.parse = e.parser), this.clrs = e.color, this.multi = e.multi, this.keyword = e.keyword, this.dflt = e.defaultValue, this.pr = e.priority || 0; + }, + me = E._registerComplexSpecialProp = function (t, e, i) { + "object" != typeof e && (e = { + parser: i + }); + var r, + s, + n = t.split(","), + a = e.defaultValue; + + for (i = i || [a], r = 0; n.length > r; r++) e.prefix = 0 === r && e.prefix, e.defaultValue = i[r] || a, s = new de(n[r], e); + }, + ge = function (t) { + if (!o[t]) { + var e = t.charAt(0).toUpperCase() + t.substr(1) + "Plugin"; + me(t, { + parser: function (t, i, r, s, n, a, l) { + var h = (window.GreenSockGlobals || window).com.greensock.plugins[e]; + return h ? (h._cssRegister(), o[r].parse(t, i, r, s, n, a, l)) : (U("Error: " + e + " js file not loaded."), n); + } + }); + } + }; + + l = de.prototype, l.parseComplex = function (t, e, i, r, s, n) { + var a, + o, + l, + h, + u, + f, + _ = this.keyword; + + if (this.multi && (D.test(i) || D.test(e) ? (o = e.replace(D, "|").split("|"), l = i.replace(D, "|").split("|")) : _ && (o = [e], l = [i])), l) { + for (h = l.length > o.length ? l.length : o.length, a = 0; h > a; a++) e = o[a] = o[a] || this.dflt, i = l[a] = l[a] || this.dflt, _ && (u = e.indexOf(_), f = i.indexOf(_), u !== f && (i = -1 === f ? l : o, i[a] += " " + _)); + + e = o.join(", "), i = l.join(", "); + } + + return pe(t, this.p, e, i, this.clrs, this.dflt, r, this.pr, s, n); + }, l.parse = function (t, e, i, r, n, a) { + return this.parseComplex(t.style, this.format(q(t, this.p, s, !1, this.dflt)), this.format(e), n, a); + }, a.registerSpecialProp = function (t, e, i) { + me(t, { + parser: function (t, r, s, n, a, o) { + var l = new _e(t, s, 0, 0, a, 2, s, !1, i); + return l.plugin = o, l.setRatio = e(t, r, n._tween, s), l; + }, + priority: i + }); + }; + + var ve = "scaleX,scaleY,scaleZ,x,y,z,skewX,skewY,rotation,rotationX,rotationY,perspective".split(","), + ye = V("transform"), + Te = W + "transform", + we = V("transformOrigin"), + xe = null !== V("perspective"), + be = E.Transform = function () { + this.skewY = 0; + }, + Pe = E.getTransform = function (t, e, i, r) { + if (t._gsTransform && i && !r) return t._gsTransform; + + var s, + n, + o, + l, + h, + u, + f, + _, + p, + c, + d, + m, + g, + v = i ? t._gsTransform || new be() : new be(), + y = 0 > v.scaleX, + T = 2e-5, + w = 1e5, + x = 179.99, + b = x * M, + P = xe ? parseFloat(q(t, we, e, !1, "0 0 0").split(" ")[2]) || v.zOrigin || 0 : 0; + + for (ye ? s = q(t, Te, e, !0) : t.currentStyle && (s = t.currentStyle.filter.match(A), s = s && 4 === s.length ? [s[0].substr(4), Number(s[2].substr(4)), Number(s[1].substr(4)), s[3].substr(4), v.x || 0, v.y || 0].join(",") : ""), n = (s || "").match(/(?:\-|\b)[\d\-\.e]+\b/gi) || [], o = n.length; --o > -1;) l = Number(n[o]), n[o] = (h = l - (l |= 0)) ? (0 | h * w + (0 > h ? -.5 : .5)) / w + l : l; + + if (16 === n.length) { + var S = n[8], + C = n[9], + R = n[10], + k = n[12], + O = n[13], + D = n[14]; + + if (v.zOrigin && (D = -v.zOrigin, k = S * D - n[12], O = C * D - n[13], D = R * D + v.zOrigin - n[14]), !i || r || null == v.rotationX) { + var N, + X, + z, + I, + E, + F, + Y, + B = n[0], + U = n[1], + W = n[2], + j = n[3], + V = n[4], + H = n[5], + Q = n[6], + Z = n[7], + $ = n[11], + G = Math.atan2(Q, R), + K = -b > G || G > b; + v.rotationX = G * L, G && (I = Math.cos(-G), E = Math.sin(-G), N = V * I + S * E, X = H * I + C * E, z = Q * I + R * E, S = V * -E + S * I, C = H * -E + C * I, R = Q * -E + R * I, $ = Z * -E + $ * I, V = N, H = X, Q = z), G = Math.atan2(S, B), v.rotationY = G * L, G && (F = -b > G || G > b, I = Math.cos(-G), E = Math.sin(-G), N = B * I - S * E, X = U * I - C * E, z = W * I - R * E, C = U * E + C * I, R = W * E + R * I, $ = j * E + $ * I, B = N, U = X, W = z), G = Math.atan2(U, H), v.rotation = G * L, G && (Y = -b > G || G > b, I = Math.cos(-G), E = Math.sin(-G), B = B * I + V * E, X = U * I + H * E, H = U * -E + H * I, Q = W * -E + Q * I, U = X), Y && K ? v.rotation = v.rotationX = 0 : Y && F ? v.rotation = v.rotationY = 0 : F && K && (v.rotationY = v.rotationX = 0), v.scaleX = (0 | Math.sqrt(B * B + U * U) * w + .5) / w, v.scaleY = (0 | Math.sqrt(H * H + C * C) * w + .5) / w, v.scaleZ = (0 | Math.sqrt(Q * Q + R * R) * w + .5) / w, v.skewX = 0, v.perspective = $ ? 1 / (0 > $ ? -$ : $) : 0, v.x = k, v.y = O, v.z = D; + } + } else if (!(xe && !r && n.length && v.x === n[4] && v.y === n[5] && (v.rotationX || v.rotationY) || void 0 !== v.x && "none" === q(t, "display", e))) { + var J = n.length >= 6, + te = J ? n[0] : 1, + ee = n[1] || 0, + ie = n[2] || 0, + re = J ? n[3] : 1; + v.x = n[4] || 0, v.y = n[5] || 0, u = Math.sqrt(te * te + ee * ee), f = Math.sqrt(re * re + ie * ie), _ = te || ee ? Math.atan2(ee, te) * L : v.rotation || 0, p = ie || re ? Math.atan2(ie, re) * L + _ : v.skewX || 0, c = u - Math.abs(v.scaleX || 0), d = f - Math.abs(v.scaleY || 0), Math.abs(p) > 90 && 270 > Math.abs(p) && (y ? (u *= -1, p += 0 >= _ ? 180 : -180, _ += 0 >= _ ? 180 : -180) : (f *= -1, p += 0 >= p ? 180 : -180)), m = (_ - v.rotation) % 180, g = (p - v.skewX) % 180, (void 0 === v.skewX || c > T || -T > c || d > T || -T > d || m > -x && x > m && false | m * w || g > -x && x > g && false | g * w) && (v.scaleX = u, v.scaleY = f, v.rotation = _, v.skewX = p), xe && (v.rotationX = v.rotationY = v.z = 0, v.perspective = parseFloat(a.defaultTransformPerspective) || 0, v.scaleZ = 1); + } + + v.zOrigin = P; + + for (o in v) T > v[o] && v[o] > -T && (v[o] = 0); + + return i && (t._gsTransform = v), v; + }, + Se = function (t) { + var e, + i, + r = this.data, + s = -r.rotation * M, + n = s + r.skewX * M, + a = 1e5, + o = (0 | Math.cos(s) * r.scaleX * a) / a, + l = (0 | Math.sin(s) * r.scaleX * a) / a, + h = (0 | Math.sin(n) * -r.scaleY * a) / a, + u = (0 | Math.cos(n) * r.scaleY * a) / a, + f = this.t.style, + _ = this.t.currentStyle; + + if (_) { + i = l, l = -h, h = -i, e = _.filter, f.filter = ""; + var p, + d, + m = this.t.offsetWidth, + g = this.t.offsetHeight, + v = "absolute" !== _.position, + w = "progid:DXImageTransform.Microsoft.Matrix(M11=" + o + ", M12=" + l + ", M21=" + h + ", M22=" + u, + x = r.x, + b = r.y; + + if (null != r.ox && (p = (r.oxp ? .01 * m * r.ox : r.ox) - m / 2, d = (r.oyp ? .01 * g * r.oy : r.oy) - g / 2, x += p - (p * o + d * l), b += d - (p * h + d * u)), v ? (p = m / 2, d = g / 2, w += ", Dx=" + (p - (p * o + d * l) + x) + ", Dy=" + (d - (p * h + d * u) + b) + ")") : w += ", sizingMethod='auto expand')", f.filter = -1 !== e.indexOf("DXImageTransform.Microsoft.Matrix(") ? e.replace(O, w) : w + " " + e, (0 === t || 1 === t) && 1 === o && 0 === l && 0 === h && 1 === u && (v && -1 === w.indexOf("Dx=0, Dy=0") || T.test(e) && 100 !== parseFloat(RegExp.$1) || -1 === e.indexOf("gradient(" && e.indexOf("Alpha")) && f.removeAttribute("filter")), !v) { + var P, + S, + C, + R = 8 > c ? 1 : -1; + + for (p = r.ieOffsetX || 0, d = r.ieOffsetY || 0, r.ieOffsetX = Math.round((m - ((0 > o ? -o : o) * m + (0 > l ? -l : l) * g)) / 2 + x), r.ieOffsetY = Math.round((g - ((0 > u ? -u : u) * g + (0 > h ? -h : h) * m)) / 2 + b), ce = 0; 4 > ce; ce++) S = J[ce], P = _[S], i = -1 !== P.indexOf("px") ? parseFloat(P) : Q(this.t, S, parseFloat(P), P.replace(y, "")) || 0, C = i !== r[S] ? 2 > ce ? -r.ieOffsetX : -r.ieOffsetY : 2 > ce ? p - r.ieOffsetX : d - r.ieOffsetY, f[S] = (r[S] = Math.round(i - C * (0 === ce || 2 === ce ? 1 : R))) + "px"; + } + } + }, + Ce = E.set3DTransformRatio = function (t) { + var e, + i, + r, + s, + n, + a, + o, + l, + h, + u, + f, + p, + c, + d, + m, + g, + v, + y, + T, + w, + x, + b, + P, + S = this.data, + C = this.t.style, + R = S.rotation * M, + k = S.scaleX, + A = S.scaleY, + O = S.scaleZ, + D = S.perspective; + if (!(1 !== t && 0 !== t || "auto" !== S.force3D || S.rotationY || S.rotationX || 1 !== O || D || S.z)) return Re.call(this, t), void 0; + + if (_) { + var L = 1e-4; + L > k && k > -L && (k = O = 2e-5), L > A && A > -L && (A = O = 2e-5), !D || S.z || S.rotationX || S.rotationY || (D = 0); + } + + if (R || S.skewX) y = Math.cos(R), T = Math.sin(R), e = y, n = T, S.skewX && (R -= S.skewX * M, y = Math.cos(R), T = Math.sin(R), "simple" === S.skewType && (w = Math.tan(S.skewX * M), w = Math.sqrt(1 + w * w), y *= w, T *= w)), i = -T, a = y;else { + if (!(S.rotationY || S.rotationX || 1 !== O || D)) return C[ye] = "translate3d(" + S.x + "px," + S.y + "px," + S.z + "px)" + (1 !== k || 1 !== A ? " scale(" + k + "," + A + ")" : ""), void 0; + e = a = 1, i = n = 0; + } + f = 1, r = s = o = l = h = u = p = c = d = 0, m = D ? -1 / D : 0, g = S.zOrigin, v = 1e5, R = S.rotationY * M, R && (y = Math.cos(R), T = Math.sin(R), h = f * -T, c = m * -T, r = e * T, o = n * T, f *= y, m *= y, e *= y, n *= y), R = S.rotationX * M, R && (y = Math.cos(R), T = Math.sin(R), w = i * y + r * T, x = a * y + o * T, b = u * y + f * T, P = d * y + m * T, r = i * -T + r * y, o = a * -T + o * y, f = u * -T + f * y, m = d * -T + m * y, i = w, a = x, u = b, d = P), 1 !== O && (r *= O, o *= O, f *= O, m *= O), 1 !== A && (i *= A, a *= A, u *= A, d *= A), 1 !== k && (e *= k, n *= k, h *= k, c *= k), g && (p -= g, s = r * p, l = o * p, p = f * p + g), s = (w = (s += S.x) - (s |= 0)) ? (0 | w * v + (0 > w ? -.5 : .5)) / v + s : s, l = (w = (l += S.y) - (l |= 0)) ? (0 | w * v + (0 > w ? -.5 : .5)) / v + l : l, p = (w = (p += S.z) - (p |= 0)) ? (0 | w * v + (0 > w ? -.5 : .5)) / v + p : p, C[ye] = "matrix3d(" + [(0 | e * v) / v, (0 | n * v) / v, (0 | h * v) / v, (0 | c * v) / v, (0 | i * v) / v, (0 | a * v) / v, (0 | u * v) / v, (0 | d * v) / v, (0 | r * v) / v, (0 | o * v) / v, (0 | f * v) / v, (0 | m * v) / v, s, l, p, D ? 1 + -p / D : 1].join(",") + ")"; + }, + Re = E.set2DTransformRatio = function (t) { + var e, + i, + r, + s, + n, + a = this.data, + o = this.t, + l = o.style; + return a.rotationX || a.rotationY || a.z || a.force3D === !0 || "auto" === a.force3D && 1 !== t && 0 !== t ? (this.setRatio = Ce, Ce.call(this, t), void 0) : (a.rotation || a.skewX ? (e = a.rotation * M, i = e - a.skewX * M, r = 1e5, s = a.scaleX * r, n = a.scaleY * r, l[ye] = "matrix(" + (0 | Math.cos(e) * s) / r + "," + (0 | Math.sin(e) * s) / r + "," + (0 | Math.sin(i) * -n) / r + "," + (0 | Math.cos(i) * n) / r + "," + a.x + "," + a.y + ")") : l[ye] = "matrix(" + a.scaleX + ",0,0," + a.scaleY + "," + a.x + "," + a.y + ")", void 0); + }; + + me("transform,scale,scaleX,scaleY,scaleZ,x,y,z,rotation,rotationX,rotationY,rotationZ,skewX,skewY,shortRotation,shortRotationX,shortRotationY,shortRotationZ,transformOrigin,transformPerspective,directionalRotation,parseTransform,force3D,skewType", { + parser: function (t, e, i, r, n, o, l) { + if (r._transform) return n; + + var h, + u, + f, + _, + p, + c, + d, + m = r._transform = Pe(t, s, !0, l.parseTransform), + g = t.style, + v = 1e-6, + y = ve.length, + T = l, + w = {}; + + if ("string" == typeof T.transform && ye) f = z.style, f[ye] = T.transform, f.display = "block", f.position = "absolute", X.body.appendChild(z), h = Pe(z, null, !1), X.body.removeChild(z);else if ("object" == typeof T) { + if (h = { + scaleX: re(null != T.scaleX ? T.scaleX : T.scale, m.scaleX), + scaleY: re(null != T.scaleY ? T.scaleY : T.scale, m.scaleY), + scaleZ: re(T.scaleZ, m.scaleZ), + x: re(T.x, m.x), + y: re(T.y, m.y), + z: re(T.z, m.z), + perspective: re(T.transformPerspective, m.perspective) + }, d = T.directionalRotation, null != d) if ("object" == typeof d) for (f in d) T[f] = d[f];else T.rotation = d; + h.rotation = se("rotation" in T ? T.rotation : "shortRotation" in T ? T.shortRotation + "_short" : "rotationZ" in T ? T.rotationZ : m.rotation, m.rotation, "rotation", w), xe && (h.rotationX = se("rotationX" in T ? T.rotationX : "shortRotationX" in T ? T.shortRotationX + "_short" : m.rotationX || 0, m.rotationX, "rotationX", w), h.rotationY = se("rotationY" in T ? T.rotationY : "shortRotationY" in T ? T.shortRotationY + "_short" : m.rotationY || 0, m.rotationY, "rotationY", w)), h.skewX = null == T.skewX ? m.skewX : se(T.skewX, m.skewX), h.skewY = null == T.skewY ? m.skewY : se(T.skewY, m.skewY), (u = h.skewY - m.skewY) && (h.skewX += u, h.rotation += u); + } + + for (xe && null != T.force3D && (m.force3D = T.force3D, c = !0), m.skewType = T.skewType || m.skewType || a.defaultSkewType, p = m.force3D || m.z || m.rotationX || m.rotationY || h.z || h.rotationX || h.rotationY || h.perspective, p || null == T.scale || (h.scaleZ = 1); --y > -1;) i = ve[y], _ = h[i] - m[i], (_ > v || -v > _ || null != N[i]) && (c = !0, n = new _e(m, i, m[i], _, n), i in w && (n.e = w[i]), n.xs0 = 0, n.plugin = o, r._overwriteProps.push(n.n)); + + return _ = T.transformOrigin, (_ || xe && p && m.zOrigin) && (ye ? (c = !0, i = we, _ = (_ || q(t, i, s, !1, "50% 50%")) + "", n = new _e(g, i, 0, 0, n, -1, "transformOrigin"), n.b = g[i], n.plugin = o, xe ? (f = m.zOrigin, _ = _.split(" "), m.zOrigin = (_.length > 2 && (0 === f || "0px" !== _[2]) ? parseFloat(_[2]) : f) || 0, n.xs0 = n.e = _[0] + " " + (_[1] || "50%") + " 0px", n = new _e(m, "zOrigin", 0, 0, n, -1, n.n), n.b = f, n.xs0 = n.e = m.zOrigin) : n.xs0 = n.e = _) : ee(_ + "", m)), c && (r._transformType = p || 3 === this._transformType ? 3 : 2), n; + }, + prefix: !0 + }), me("boxShadow", { + defaultValue: "0px 0px 0px 0px #999", + prefix: !0, + color: !0, + multi: !0, + keyword: "inset" + }), me("borderRadius", { + defaultValue: "0px", + parser: function (t, e, i, n, a) { + e = this.format(e); + + var o, + l, + h, + u, + f, + _, + p, + c, + d, + m, + g, + v, + y, + T, + w, + x, + b = ["borderTopLeftRadius", "borderTopRightRadius", "borderBottomRightRadius", "borderBottomLeftRadius"], + P = t.style; + + for (d = parseFloat(t.offsetWidth), m = parseFloat(t.offsetHeight), o = e.split(" "), l = 0; b.length > l; l++) this.p.indexOf("border") && (b[l] = V(b[l])), f = u = q(t, b[l], s, !1, "0px"), -1 !== f.indexOf(" ") && (u = f.split(" "), f = u[0], u = u[1]), _ = h = o[l], p = parseFloat(f), v = f.substr((p + "").length), y = "=" === _.charAt(1), y ? (c = parseInt(_.charAt(0) + "1", 10), _ = _.substr(2), c *= parseFloat(_), g = _.substr((c + "").length - (0 > c ? 1 : 0)) || "") : (c = parseFloat(_), g = _.substr((c + "").length)), "" === g && (g = r[i] || v), g !== v && (T = Q(t, "borderLeft", p, v), w = Q(t, "borderTop", p, v), "%" === g ? (f = 100 * (T / d) + "%", u = 100 * (w / m) + "%") : "em" === g ? (x = Q(t, "borderLeft", 1, "em"), f = T / x + "em", u = w / x + "em") : (f = T + "px", u = w + "px"), y && (_ = parseFloat(f) + c + g, h = parseFloat(u) + c + g)), a = pe(P, b[l], f + " " + u, _ + " " + h, !1, "0px", a); + + return a; + }, + prefix: !0, + formatter: he("0px 0px 0px 0px", !1, !0) + }), me("backgroundPosition", { + defaultValue: "0 0", + parser: function (t, e, i, r, n, a) { + var o, + l, + h, + u, + f, + _, + p = "background-position", + d = s || H(t, null), + m = this.format((d ? c ? d.getPropertyValue(p + "-x") + " " + d.getPropertyValue(p + "-y") : d.getPropertyValue(p) : t.currentStyle.backgroundPositionX + " " + t.currentStyle.backgroundPositionY) || "0 0"), + g = this.format(e); + + if (-1 !== m.indexOf("%") != (-1 !== g.indexOf("%")) && (_ = q(t, "backgroundImage").replace(C, ""), _ && "none" !== _)) { + for (o = m.split(" "), l = g.split(" "), I.setAttribute("src", _), h = 2; --h > -1;) m = o[h], u = -1 !== m.indexOf("%"), u !== (-1 !== l[h].indexOf("%")) && (f = 0 === h ? t.offsetWidth - I.width : t.offsetHeight - I.height, o[h] = u ? parseFloat(m) / 100 * f + "px" : 100 * (parseFloat(m) / f) + "%"); + + m = o.join(" "); + } + + return this.parseComplex(t.style, m, g, n, a); + }, + formatter: ee + }), me("backgroundSize", { + defaultValue: "0 0", + formatter: ee + }), me("perspective", { + defaultValue: "0px", + prefix: !0 + }), me("perspectiveOrigin", { + defaultValue: "50% 50%", + prefix: !0 + }), me("transformStyle", { + prefix: !0 + }), me("backfaceVisibility", { + prefix: !0 + }), me("userSelect", { + prefix: !0 + }), me("margin", { + parser: ue("marginTop,marginRight,marginBottom,marginLeft") + }), me("padding", { + parser: ue("paddingTop,paddingRight,paddingBottom,paddingLeft") + }), me("clip", { + defaultValue: "rect(0px,0px,0px,0px)", + parser: function (t, e, i, r, n, a) { + var o, l, h; + return 9 > c ? (l = t.currentStyle, h = 8 > c ? " " : ",", o = "rect(" + l.clipTop + h + l.clipRight + h + l.clipBottom + h + l.clipLeft + ")", e = this.format(e).split(",").join(h)) : (o = this.format(q(t, this.p, s, !1, this.dflt)), e = this.format(e)), this.parseComplex(t.style, o, e, n, a); + } + }), me("textShadow", { + defaultValue: "0px 0px 0px #999", + color: !0, + multi: !0 + }), me("autoRound,strictUnits", { + parser: function (t, e, i, r, s) { + return s; + } + }), me("border", { + defaultValue: "0px solid #000", + parser: function (t, e, i, r, n, a) { + return this.parseComplex(t.style, this.format(q(t, "borderTopWidth", s, !1, "0px") + " " + q(t, "borderTopStyle", s, !1, "solid") + " " + q(t, "borderTopColor", s, !1, "#000")), this.format(e), n, a); + }, + color: !0, + formatter: function (t) { + var e = t.split(" "); + return e[0] + " " + (e[1] || "solid") + " " + (t.match(le) || ["#000"])[0]; + } + }), me("borderWidth", { + parser: ue("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth") + }), me("float,cssFloat,styleFloat", { + parser: function (t, e, i, r, s) { + var n = t.style, + a = "cssFloat" in n ? "cssFloat" : "styleFloat"; + return new _e(n, a, 0, 0, s, -1, i, !1, 0, n[a], e); + } + }); + + var ke = function (t) { + var e, + i = this.t, + r = i.filter || q(this.data, "filter"), + s = 0 | this.s + this.c * t; + 100 === s && (-1 === r.indexOf("atrix(") && -1 === r.indexOf("radient(") && -1 === r.indexOf("oader(") ? (i.removeAttribute("filter"), e = !q(this.data, "filter")) : (i.filter = r.replace(x, ""), e = !0)), e || (this.xn1 && (i.filter = r = r || "alpha(opacity=" + s + ")"), -1 === r.indexOf("pacity") ? 0 === s && this.xn1 || (i.filter = r + " alpha(opacity=" + s + ")") : i.filter = r.replace(T, "opacity=" + s)); + }; + + me("opacity,alpha,autoAlpha", { + defaultValue: "1", + parser: function (t, e, i, r, n, a) { + var o = parseFloat(q(t, "opacity", s, !1, "1")), + l = t.style, + h = "autoAlpha" === i; + return "string" == typeof e && "=" === e.charAt(1) && (e = ("-" === e.charAt(0) ? -1 : 1) * parseFloat(e.substr(2)) + o), h && 1 === o && "hidden" === q(t, "visibility", s) && 0 !== e && (o = 0), Y ? n = new _e(l, "opacity", o, e - o, n) : (n = new _e(l, "opacity", 100 * o, 100 * (e - o), n), n.xn1 = h ? 1 : 0, l.zoom = 1, n.type = 2, n.b = "alpha(opacity=" + n.s + ")", n.e = "alpha(opacity=" + (n.s + n.c) + ")", n.data = t, n.plugin = a, n.setRatio = ke), h && (n = new _e(l, "visibility", 0, 0, n, -1, null, !1, 0, 0 !== o ? "inherit" : "hidden", 0 === e ? "hidden" : "inherit"), n.xs0 = "inherit", r._overwriteProps.push(n.n), r._overwriteProps.push(i)), n; + } + }); + + var Ae = function (t, e) { + e && (t.removeProperty ? ("ms" === e.substr(0, 2) && (e = "M" + e.substr(1)), t.removeProperty(e.replace(P, "-$1").toLowerCase())) : t.removeAttribute(e)); + }, + Oe = function (t) { + if (this.t._gsClassPT = this, 1 === t || 0 === t) { + this.t.setAttribute("class", 0 === t ? this.b : this.e); + + for (var e = this.data, i = this.t.style; e;) e.v ? i[e.p] = e.v : Ae(i, e.p), e = e._next; + + 1 === t && this.t._gsClassPT === this && (this.t._gsClassPT = null); + } else this.t.getAttribute("class") !== this.e && this.t.setAttribute("class", this.e); + }; + + me("className", { + parser: function (t, e, r, n, a, o, l) { + var h, + u, + f, + _, + p, + c = t.getAttribute("class") || "", + d = t.style.cssText; + + if (a = n._classNamePT = new _e(t, r, 0, 0, a, 2), a.setRatio = Oe, a.pr = -11, i = !0, a.b = c, u = $(t, s), f = t._gsClassPT) { + for (_ = {}, p = f.data; p;) _[p.p] = 1, p = p._next; + + f.setRatio(1); + } + + return t._gsClassPT = a, a.e = "=" !== e.charAt(1) ? e : c.replace(RegExp("\\s*\\b" + e.substr(2) + "\\b"), "") + ("+" === e.charAt(0) ? " " + e.substr(2) : ""), n._tween._duration && (t.setAttribute("class", a.e), h = G(t, u, $(t), l, _), t.setAttribute("class", c), a.data = h.firstMPT, t.style.cssText = d, a = a.xfirst = n.parse(t, h.difs, a, o)), a; + } + }); + + var De = function (t) { + if ((1 === t || 0 === t) && this.data._totalTime === this.data._totalDuration && "isFromStart" !== this.data.data) { + var e, + i, + r, + s, + n = this.t.style, + a = o.transform.parse; + if ("all" === this.e) n.cssText = "", s = !0;else for (e = this.e.split(","), r = e.length; --r > -1;) i = e[r], o[i] && (o[i].parse === a ? s = !0 : i = "transformOrigin" === i ? we : o[i].p), Ae(n, i); + s && (Ae(n, ye), this.t._gsTransform && delete this.t._gsTransform); + } + }; + + for (me("clearProps", { + parser: function (t, e, r, s, n) { + return n = new _e(t, r, 0, 0, n, 2), n.setRatio = De, n.e = e, n.pr = -10, n.data = s._tween, i = !0, n; + } + }), l = "bezier,throwProps,physicsProps,physics2D".split(","), ce = l.length; ce--;) ge(l[ce]); + + l = a.prototype, l._firstPT = null, l._onInitTween = function (t, e, o) { + if (!t.nodeType) return !1; + this._target = t, this._tween = o, this._vars = e, h = e.autoRound, i = !1, r = e.suffixMap || a.suffixMap, s = H(t, ""), n = this._overwriteProps; + + var l, + _, + c, + d, + m, + g, + v, + y, + T, + x = t.style; + + if (u && "" === x.zIndex && (l = q(t, "zIndex", s), ("auto" === l || "" === l) && this._addLazySet(x, "zIndex", 0)), "string" == typeof e && (d = x.cssText, l = $(t, s), x.cssText = d + ";" + e, l = G(t, l, $(t)).difs, !Y && w.test(e) && (l.opacity = parseFloat(RegExp.$1)), e = l, x.cssText = d), this._firstPT = _ = this.parse(t, e, null), this._transformType) { + for (T = 3 === this._transformType, ye ? f && (u = !0, "" === x.zIndex && (v = q(t, "zIndex", s), ("auto" === v || "" === v) && this._addLazySet(x, "zIndex", 0)), p && this._addLazySet(x, "WebkitBackfaceVisibility", this._vars.WebkitBackfaceVisibility || (T ? "visible" : "hidden"))) : x.zoom = 1, c = _; c && c._next;) c = c._next; + + y = new _e(t, "transform", 0, 0, null, 2), this._linkCSSP(y, null, c), y.setRatio = T && xe ? Ce : ye ? Re : Se, y.data = this._transform || Pe(t, s, !0), n.pop(); + } + + if (i) { + for (; _;) { + for (g = _._next, c = d; c && c.pr > _.pr;) c = c._next; + + (_._prev = c ? c._prev : m) ? _._prev._next = _ : d = _, (_._next = c) ? c._prev = _ : m = _, _ = g; + } + + this._firstPT = d; + } + + return !0; + }, l.parse = function (t, e, i, n) { + var a, + l, + u, + f, + _, + p, + c, + d, + m, + g, + v = t.style; + + for (a in e) p = e[a], l = o[a], l ? i = l.parse(t, p, a, this, i, n, e) : (_ = q(t, a, s) + "", m = "string" == typeof p, "color" === a || "fill" === a || "stroke" === a || -1 !== a.indexOf("Color") || m && b.test(p) ? (m || (p = oe(p), p = (p.length > 3 ? "rgba(" : "rgb(") + p.join(",") + ")"), i = pe(v, a, _, p, !0, "transparent", i, 0, n)) : !m || -1 === p.indexOf(" ") && -1 === p.indexOf(",") ? (u = parseFloat(_), c = u || 0 === u ? _.substr((u + "").length) : "", ("" === _ || "auto" === _) && ("width" === a || "height" === a ? (u = te(t, a, s), c = "px") : "left" === a || "top" === a ? (u = Z(t, a, s), c = "px") : (u = "opacity" !== a ? 0 : 1, c = "")), g = m && "=" === p.charAt(1), g ? (f = parseInt(p.charAt(0) + "1", 10), p = p.substr(2), f *= parseFloat(p), d = p.replace(y, "")) : (f = parseFloat(p), d = m ? p.substr((f + "").length) || "" : ""), "" === d && (d = a in r ? r[a] : c), p = f || 0 === f ? (g ? f + u : f) + d : e[a], c !== d && "" !== d && (f || 0 === f) && u && (u = Q(t, a, u, c), "%" === d ? (u /= Q(t, a, 100, "%") / 100, e.strictUnits !== !0 && (_ = u + "%")) : "em" === d ? u /= Q(t, a, 1, "em") : "px" !== d && (f = Q(t, a, f, d), d = "px"), g && (f || 0 === f) && (p = f + u + d)), g && (f += u), !u && 0 !== u || !f && 0 !== f ? void 0 !== v[a] && (p || "NaN" != p + "" && null != p) ? (i = new _e(v, a, f || u || 0, 0, i, -1, a, !1, 0, _, p), i.xs0 = "none" !== p || "display" !== a && -1 === a.indexOf("Style") ? p : _) : U("invalid " + a + " tween value: " + e[a]) : (i = new _e(v, a, u, f - u, i, 0, a, h !== !1 && ("px" === d || "zIndex" === a), 0, _, p), i.xs0 = d)) : i = pe(v, a, _, p, !0, null, i, 0, n)), n && i && !i.plugin && (i.plugin = n); + + return i; + }, l.setRatio = function (t) { + var e, + i, + r, + s = this._firstPT, + n = 1e-6; + if (1 !== t || this._tween._time !== this._tween._duration && 0 !== this._tween._time) { + if (t || this._tween._time !== this._tween._duration && 0 !== this._tween._time || this._tween._rawPrevTime === -1e-6) for (; s;) { + if (e = s.c * t + s.s, s.r ? e = Math.round(e) : n > e && e > -n && (e = 0), s.type) { + if (1 === s.type) { + if (r = s.l, 2 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2;else if (3 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3;else if (4 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3 + s.xn3 + s.xs4;else if (5 === r) s.t[s.p] = s.xs0 + e + s.xs1 + s.xn1 + s.xs2 + s.xn2 + s.xs3 + s.xn3 + s.xs4 + s.xn4 + s.xs5;else { + for (i = s.xs0 + e + s.xs1, r = 1; s.l > r; r++) i += s["xn" + r] + s["xs" + (r + 1)]; + + s.t[s.p] = i; + } + } else -1 === s.type ? s.t[s.p] = s.xs0 : s.setRatio && s.setRatio(t); + } else s.t[s.p] = e + s.xs0; + s = s._next; + } else for (; s;) 2 !== s.type ? s.t[s.p] = s.b : s.setRatio(t), s = s._next; + } else for (; s;) 2 !== s.type ? s.t[s.p] = s.e : s.setRatio(t), s = s._next; + }, l._enableTransforms = function (t) { + this._transformType = t || 3 === this._transformType ? 3 : 2, this._transform = this._transform || Pe(this._target, s, !0); + }; + + var Me = function () { + this.t[this.p] = this.e, this.data._linkCSSP(this, this._next, null, !0); + }; + + l._addLazySet = function (t, e, i) { + var r = this._firstPT = new _e(t, e, 0, 0, this._firstPT, 2); + r.e = i, r.setRatio = Me, r.data = this; + }, l._linkCSSP = function (t, e, i, r) { + return t && (e && (e._prev = t), t._next && (t._next._prev = t._prev), t._prev ? t._prev._next = t._next : this._firstPT === t && (this._firstPT = t._next, r = !0), i ? i._next = t : r || null !== this._firstPT || (this._firstPT = t), t._next = e, t._prev = i), t; + }, l._kill = function (e) { + var i, + r, + s, + n = e; + + if (e.autoAlpha || e.alpha) { + n = {}; + + for (r in e) n[r] = e[r]; + + n.opacity = 1, n.autoAlpha && (n.visibility = 1); + } + + return e.className && (i = this._classNamePT) && (s = i.xfirst, s && s._prev ? this._linkCSSP(s._prev, i._next, s._prev._prev) : s === this._firstPT && (this._firstPT = i._next), i._next && this._linkCSSP(i._next, i._next._next, s._prev), this._classNamePT = null), t.prototype._kill.call(this, n); + }; + + var Le = function (t, e, i) { + var r, s, n, a; + if (t.slice) for (s = t.length; --s > -1;) Le(t[s], e, i);else for (r = t.childNodes, s = r.length; --s > -1;) n = r[s], a = n.type, n.style && (e.push($(n)), i && i.push(n)), 1 !== a && 9 !== a && 11 !== a || !n.childNodes.length || Le(n, e, i); + }; + + return a.cascadeTo = function (t, i, r) { + var s, + n, + a, + o = e.to(t, i, r), + l = [o], + h = [], + u = [], + f = [], + _ = e._internals.reservedProps; + + for (t = o._targets || o.target, Le(t, h, f), o.render(i, !0), Le(t, u), o.render(0, !0), o._enabled(!0), s = f.length; --s > -1;) if (n = G(f[s], h[s], u[s]), n.firstMPT) { + n = n.difs; + + for (a in r) _[a] && (n[a] = r[a]); + + l.push(e.to(f[s], i, n)); + } + + return l; + }, t.activate([a]), a; + }, !0); +}), window._gsDefine && window._gsQueue.pop()(); + +},{}],13:[function(require,module,exports){ +"use strict"; + +/*! + * VERSION: 1.7.3 + * DATE: 2014-01-14 + * UPDATES AND DOCS AT: http://www.greensock.com + * + * @license Copyright (c) 2008-2014, GreenSock. All rights reserved. + * This work is subject to the terms at http://www.greensock.com/terms_of_use.html or for + * Club GreenSock members, the software agreement that was issued with your membership. + * + * @author: Jack Doyle, jack@greensock.com + **/ +(window._gsQueue || (window._gsQueue = [])).push(function () { + "use strict"; + + var t = document.documentElement, + e = window, + i = function (i, s) { + var r = "x" === s ? "Width" : "Height", + n = "scroll" + r, + a = "client" + r, + o = document.body; + return i === e || i === t || i === o ? Math.max(t[n], o[n]) - (e["inner" + r] || Math.max(t[a], o[a])) : i[n] - i["offset" + r]; + }, + s = window._gsDefine.plugin({ + propName: "scrollTo", + API: 2, + version: "1.7.3", + init: function (t, s, r) { + return this._wdw = t === e, this._target = t, this._tween = r, "object" != typeof s && (s = { + y: s + }), this._autoKill = s.autoKill !== !1, this.x = this.xPrev = this.getX(), this.y = this.yPrev = this.getY(), null != s.x ? (this._addTween(this, "x", this.x, "max" === s.x ? i(t, "x") : s.x, "scrollTo_x", !0), this._overwriteProps.push("scrollTo_x")) : this.skipX = !0, null != s.y ? (this._addTween(this, "y", this.y, "max" === s.y ? i(t, "y") : s.y, "scrollTo_y", !0), this._overwriteProps.push("scrollTo_y")) : this.skipY = !0, !0; + }, + set: function (t) { + this._super.setRatio.call(this, t); + + var s = this._wdw || !this.skipX ? this.getX() : this.xPrev, + r = this._wdw || !this.skipY ? this.getY() : this.yPrev, + n = r - this.yPrev, + a = s - this.xPrev; + this._autoKill && (!this.skipX && (a > 7 || -7 > a) && i(this._target, "x") > s && (this.skipX = !0), !this.skipY && (n > 7 || -7 > n) && i(this._target, "y") > r && (this.skipY = !0), this.skipX && this.skipY && this._tween.kill()), this._wdw ? e.scrollTo(this.skipX ? s : this.x, this.skipY ? r : this.y) : (this.skipY || (this._target.scrollTop = this.y), this.skipX || (this._target.scrollLeft = this.x)), this.xPrev = this.x, this.yPrev = this.y; + } + }), + r = s.prototype; + + s.max = i, r.getX = function () { + return this._wdw ? null != e.pageXOffset ? e.pageXOffset : null != t.scrollLeft ? t.scrollLeft : document.body.scrollLeft : this._target.scrollLeft; + }, r.getY = function () { + return this._wdw ? null != e.pageYOffset ? e.pageYOffset : null != t.scrollTop ? t.scrollTop : document.body.scrollTop : this._target.scrollTop; + }, r._kill = function (t) { + return t.scrollTo_x && (this.skipX = !0), t.scrollTo_y && (this.skipY = !0), this._super._kill.call(this, t); + }; +}), window._gsDefine && window._gsQueue.pop()(); + +},{}]},{},[2]) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJzcmMvanMvZ2xvYmFsL2FqYXguanMiLCJzcmMvanMvZ2xvYmFsL2FwcC5qcyIsInNyYy9qcy9nbG9iYWwvYmVhY29uLmpzIiwic3JjL2pzL2dsb2JhbC9jb3VudGRvd24uanMiLCJzcmMvanMvZ2xvYmFsL2ZpZWxkcy5qcyIsInNyYy9qcy9nbG9iYWwvbWFpbi5qcyIsInNyYy9qcy9nbG9iYWwvcGFnZU1hbmFnZXIuanMiLCJzcmMvanMvZ2xvYmFsL3JvY2tldGNkbi5qcyIsInNyYy9qcy9saWIvZ3JlZW5zb2NrL1RpbWVsaW5lTGl0ZS5taW4uanMiLCJzcmMvanMvbGliL2dyZWVuc29jay9Ud2VlbkxpdGUubWluLmpzIiwic3JjL2pzL2xpYi9ncmVlbnNvY2svZWFzaW5nL0Vhc2VQYWNrLm1pbi5qcyIsInNyYy9qcy9saWIvZ3JlZW5zb2NrL3BsdWdpbnMvQ1NTUGx1Z2luLm1pbi5qcyIsInNyYy9qcy9saWIvZ3JlZW5zb2NrL3BsdWdpbnMvU2Nyb2xsVG9QbHVnaW4ubWluLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7QUNBQSxJQUFJLENBQUMsR0FBRyxNQUFSO0FBQ0EsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZLEtBQVosQ0FBa0IsWUFBVTtBQUN4QjtBQUNKO0FBQ0E7QUFDSSxNQUFJLGFBQWEsR0FBRyxLQUFwQjtBQUNBLEVBQUEsQ0FBQyxDQUFDLDZCQUFELENBQUQsQ0FBaUMsRUFBakMsQ0FBb0MsT0FBcEMsRUFBNkMsVUFBUyxDQUFULEVBQVk7QUFDckQsUUFBRyxDQUFDLGFBQUosRUFBa0I7QUFDZCxVQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBRCxDQUFkO0FBQ0EsVUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDLG1CQUFELENBQWY7QUFDQSxVQUFJLE1BQU0sR0FBRyxDQUFDLENBQUMsc0JBQUQsQ0FBZDtBQUVBLE1BQUEsQ0FBQyxDQUFDLGNBQUY7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QUFVO0FBQUMsV0FBTyxLQUFLLElBQUwsR0FBVSxRQUFNLENBQUMsQ0FBQyxXQUFSLEdBQW9CLENBQUMsQ0FBQyxXQUF0QixHQUFrQyxRQUFNLENBQUMsQ0FBQyxTQUFSLEdBQWtCLENBQUMsQ0FBQyxTQUFwQixHQUE4QixRQUFRLENBQUMsSUFBVCxDQUFjLFNBQXhGLEdBQWtHLEtBQUssT0FBTCxDQUFhLFNBQXRIO0FBQWdJLEdBQWpULEVBQWtULENBQUMsQ0FBQyxLQUFGLEdBQVEsVUFBUyxDQUFULEVBQVc7QUFBQyxXQUFPLENBQUMsQ0FBQyxVQUFGLEtBQWUsS0FBSyxLQUFMLEdBQVcsQ0FBQyxDQUEzQixHQUE4QixDQUFDLENBQUMsVUFBRixLQUFlLEtBQUssS0FBTCxHQUFXLENBQUMsQ0FBM0IsQ0FBOUIsRUFBNEQsS0FBSyxNQUFMLENBQVksS0FBWixDQUFrQixJQUFsQixDQUF1QixJQUF2QixFQUE0QixDQUE1QixDQUFuRTtBQUFrRyxHQUF4YTtBQUF5YSxDQUF4ekQsR0FBMHpELE1BQU0sQ0FBQyxTQUFQLElBQWtCLE1BQU0sQ0FBQyxRQUFQLENBQWdCLEdBQWhCLElBQTUwRCIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLG4sdCl7ZnVuY3Rpb24gbyhpLGYpe2lmKCFuW2ldKXtpZighZVtpXSl7dmFyIGM9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighZiYmYylyZXR1cm4gYyhpLCEwKTtpZih1KXJldHVybiB1KGksITApO3ZhciBhPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIraStcIidcIik7dGhyb3cgYS5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGF9dmFyIHA9bltpXT17ZXhwb3J0czp7fX07ZVtpXVswXS5jYWxsKHAuZXhwb3J0cyxmdW5jdGlvbihyKXt2YXIgbj1lW2ldWzFdW3JdO3JldHVybiBvKG58fHIpfSxwLHAuZXhwb3J0cyxyLGUsbix0KX1yZXR1cm4gbltpXS5leHBvcnRzfWZvcih2YXIgdT1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGk9MDtpPHQubGVuZ3RoO2krKylvKHRbaV0pO3JldHVybiBvfXJldHVybiByfSkoKSIsInZhciAkID0galF1ZXJ5O1xuJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtcbiAgICAvKipcbiAgICAgKiBSZWZyZXNoIExpY2Vuc2UgZGF0YVxuICAgICAqL1xuICAgIHZhciBfaXNSZWZyZXNoaW5nID0gZmFsc2U7XG4gICAgJCgnI3dwci1hY3Rpb24tcmVmcmVzaF9hY2NvdW50Jykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuICAgICAgICBpZighX2lzUmVmcmVzaGluZyl7XG4gICAgICAgICAgICB2YXIgYnV0dG9uID0gJCh0aGlzKTtcbiAgICAgICAgICAgIHZhciBhY2NvdW50ID0gJCgnI3dwci1hY2NvdW50LWRhdGEnKTtcbiAgICAgICAgICAgIHZhciBleHBpcmUgPSAkKCcjd3ByLWV4cGlyYXRpb24tZGF0YScpO1xuXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBfaXNSZWZyZXNoaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGJ1dHRvbi50cmlnZ2VyKCAnYmx1cicgKTtcbiAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnd3ByLWlzTG9hZGluZycpO1xuICAgICAgICAgICAgZXhwaXJlLnJlbW92ZUNsYXNzKCd3cHItaXNWYWxpZCB3cHItaXNJbnZhbGlkJyk7XG5cbiAgICAgICAgICAgICQucG9zdChcbiAgICAgICAgICAgICAgICBhamF4dXJsLFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uOiAncm9ja2V0X3JlZnJlc2hfY3VzdG9tZXJfZGF0YScsXG4gICAgICAgICAgICAgICAgICAgIF9hamF4X25vbmNlOiByb2NrZXRfYWpheF9kYXRhLm5vbmNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24ocmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uLnJlbW92ZUNsYXNzKCd3cHItaXNMb2FkaW5nJyk7XG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbi5hZGRDbGFzcygnd3ByLWlzSGlkZGVuJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCB0cnVlID09PSByZXNwb25zZS5zdWNjZXNzICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudC5odG1sKHJlc3BvbnNlLmRhdGEubGljZW5zZV90eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZS5hZGRDbGFzcyhyZXNwb25zZS5kYXRhLmxpY2Vuc2VfY2xhc3MpLmh0bWwocmVzcG9uc2UuZGF0YS5saWNlbnNlX2V4cGlyYXRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ucmVtb3ZlQ2xhc3MoJ3dwci1pY29uLXJlZnJlc2ggd3ByLWlzSGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCd3cHItaWNvbi1jaGVjaycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ucmVtb3ZlQ2xhc3MoJ3dwci1pY29uLXJlZnJlc2ggd3ByLWlzSGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZENsYXNzKCd3cHItaWNvbi1jbG9zZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgMjUwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdlRMID0gbmV3IFRpbWVsaW5lTGl0ZSh7b25Db21wbGV0ZTpmdW5jdGlvbigpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9pc1JlZnJlc2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH19KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0KGJ1dHRvbiwge2Nzczp7Y2xhc3NOYW1lOicrPXdwci1pc0hpZGRlbid9fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldChidXR0b24sIHtjc3M6e2NsYXNzTmFtZTonLT13cHItaWNvbi1jaGVjayd9fSwgMC4yNSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldChidXR0b24sIHtjc3M6e2NsYXNzTmFtZTonLT13cHItaWNvbi1jbG9zZSd9fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldChidXR0b24sIHtjc3M6e2NsYXNzTmFtZTonKz13cHItaWNvbi1yZWZyZXNoJ319LCAwLjI1KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0KGJ1dHRvbiwge2Nzczp7Y2xhc3NOYW1lOictPXdwci1pc0hpZGRlbid9fSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICAgICAgfSwgMjAwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTYXZlIFRvZ2dsZSBvcHRpb24gdmFsdWVzIG9uIGNoYW5nZVxuICAgICAqL1xuICAgICQoJy53cHItcmFkaW8gaW5wdXRbdHlwZT1jaGVja2JveF0nKS5vbignY2hhbmdlJywgZnVuY3Rpb24oZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHZhciBuYW1lICA9ICQodGhpcykuYXR0cignaWQnKTtcbiAgICAgICAgdmFyIHZhbHVlID0gJCh0aGlzKS5wcm9wKCdjaGVja2VkJykgPyAxIDogMDtcblxuXHRcdHZhciBleGNsdWRlZCA9IFsgJ2Nsb3VkZmxhcmVfYXV0b19zZXR0aW5ncycsICdjbG91ZGZsYXJlX2Rldm1vZGUnIF07XG5cdFx0aWYgKCBleGNsdWRlZC5pbmRleE9mKCBuYW1lICkgPj0gMCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cbiAgICAgICAgJC5wb3N0KFxuICAgICAgICAgICAgYWpheHVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyb2NrZXRfdG9nZ2xlX29wdGlvbicsXG4gICAgICAgICAgICAgICAgX2FqYXhfbm9uY2U6IHJvY2tldF9hamF4X2RhdGEubm9uY2UsXG4gICAgICAgICAgICAgICAgb3B0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmdW5jdGlvbihyZXNwb25zZSkge31cbiAgICAgICAgKTtcblx0fSk7XG5cblx0LyoqXG4gICAgICogU2F2ZSBlbmFibGUgQ1BDU1MgZm9yIG1vYmlsZXMgb3B0aW9uLlxuICAgICAqL1xuICAgICQoJyN3cHItYWN0aW9uLXJvY2tldF9lbmFibGVfbW9iaWxlX2NwY3NzJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHQkKCcjd3ByLWFjdGlvbi1yb2NrZXRfZW5hYmxlX21vYmlsZV9jcGNzcycpLmFkZENsYXNzKCd3cHItaXNMb2FkaW5nJyk7XG5cbiAgICAgICAgJC5wb3N0KFxuICAgICAgICAgICAgYWpheHVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyb2NrZXRfZW5hYmxlX21vYmlsZV9jcGNzcycsXG4gICAgICAgICAgICAgICAgX2FqYXhfbm9uY2U6IHJvY2tldF9hamF4X2RhdGEubm9uY2VcbiAgICAgICAgICAgIH0sXG5cdFx0XHRmdW5jdGlvbihyZXNwb25zZSkge1xuXHRcdFx0XHRpZiAoIHJlc3BvbnNlLnN1Y2Nlc3MgKSB7XG5cdFx0XHRcdFx0Ly8gSGlkZSBNb2JpbGUgQ1BDU1MgYnRuIG9uIHN1Y2Nlc3MuXG5cdFx0XHRcdFx0JCgnI3dwci1hY3Rpb24tcm9ja2V0X2VuYWJsZV9tb2JpbGVfY3Bjc3MnKS5oaWRlKCk7XG5cdFx0XHRcdFx0JCgnLndwci1oaWRlLW9uLWNsaWNrJykuaGlkZSgpO1xuXHRcdFx0XHRcdCQoJy53cHItc2hvdy1vbi1jbGljaycpLnNob3coKTtcblx0XHRcdFx0XHQkKCcjd3ByLWFjdGlvbi1yb2NrZXRfZW5hYmxlX21vYmlsZV9jcGNzcycpLnJlbW92ZUNsYXNzKCd3cHItaXNMb2FkaW5nJyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqIFNhdmUgZW5hYmxlIEdvb2dsZSBGb250cyBPcHRpbWl6YXRpb24gb3B0aW9uLlxuICAgICAqL1xuICAgICQoJyN3cHItYWN0aW9uLXJvY2tldF9lbmFibGVfZ29vZ2xlX2ZvbnRzJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHQkKCcjd3ByLWFjdGlvbi1yb2NrZXRfZW5hYmxlX2dvb2dsZV9mb250cycpLmFkZENsYXNzKCd3cHItaXNMb2FkaW5nJyk7XG5cbiAgICAgICAgJC5wb3N0KFxuICAgICAgICAgICAgYWpheHVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyb2NrZXRfZW5hYmxlX2dvb2dsZV9mb250cycsXG4gICAgICAgICAgICAgICAgX2FqYXhfbm9uY2U6IHJvY2tldF9hamF4X2RhdGEubm9uY2VcbiAgICAgICAgICAgIH0sXG5cdFx0XHRmdW5jdGlvbihyZXNwb25zZSkge1xuXHRcdFx0XHRpZiAoIHJlc3BvbnNlLnN1Y2Nlc3MgKSB7XG5cdFx0XHRcdFx0Ly8gSGlkZSBNb2JpbGUgQ1BDU1MgYnRuIG9uIHN1Y2Nlc3MuXG5cdFx0XHRcdFx0JCgnI3dwci1hY3Rpb24tcm9ja2V0X2VuYWJsZV9nb29nbGVfZm9udHMnKS5oaWRlKCk7XG5cdFx0XHRcdFx0JCgnLndwci1oaWRlLW9uLWNsaWNrJykuaGlkZSgpO1xuXHRcdFx0XHRcdCQoJy53cHItc2hvdy1vbi1jbGljaycpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgJCgnI3dwci1hY3Rpb24tcm9ja2V0X2VuYWJsZV9nb29nbGVfZm9udHMnKS5yZW1vdmVDbGFzcygnd3ByLWlzTG9hZGluZycpO1xuICAgICAgICAgICAgICAgICAgICAkKCcjbWluaWZ5X2dvb2dsZV9mb250cycpLnZhbCgxKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgJCggJyNyb2NrZXQtZGlzbWlzcy1wcm9tb3Rpb24nICkub24oICdjbGljaycsIGZ1bmN0aW9uKCBlICkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgJC5wb3N0KFxuICAgICAgICAgICAgYWpheHVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBhY3Rpb246ICdyb2NrZXRfZGlzbWlzc19wcm9tbycsXG4gICAgICAgICAgICAgICAgbm9uY2U6IHJvY2tldF9hamF4X2RhdGEubm9uY2VcbiAgICAgICAgICAgIH0sXG5cdFx0XHRmdW5jdGlvbihyZXNwb25zZSkge1xuXHRcdFx0XHRpZiAoIHJlc3BvbnNlLnN1Y2Nlc3MgKSB7XG5cdFx0XHRcdFx0JCgnI3JvY2tldC1wcm9tby1iYW5uZXInKS5oaWRlKCAnc2xvdycgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuICAgICAgICApO1xuICAgIH0gKTtcblxuICAgICQoICcjcm9ja2V0LWRpc21pc3MtcmVuZXdhbCcgKS5vbiggJ2NsaWNrJywgZnVuY3Rpb24oIGUgKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAkLnBvc3QoXG4gICAgICAgICAgICBhamF4dXJsLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGFjdGlvbjogJ3JvY2tldF9kaXNtaXNzX3JlbmV3YWwnLFxuICAgICAgICAgICAgICAgIG5vbmNlOiByb2NrZXRfYWpheF9kYXRhLm5vbmNlXG4gICAgICAgICAgICB9LFxuXHRcdFx0ZnVuY3Rpb24ocmVzcG9uc2UpIHtcblx0XHRcdFx0aWYgKCByZXNwb25zZS5zdWNjZXNzICkge1xuXHRcdFx0XHRcdCQoJyNyb2NrZXQtcmVuZXdhbC1iYW5uZXInKS5oaWRlKCAnc2xvdycgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuICAgICAgICApO1xuICAgIH0gKTtcbn0pO1xuIiwiLy8gQWRkIGdyZWVuc29jayBsaWIgZm9yIGFuaW1hdGlvbnNcclxuaW1wb3J0ICcuLi9saWIvZ3JlZW5zb2NrL1R3ZWVuTGl0ZS5taW4uanMnO1xyXG5pbXBvcnQgJy4uL2xpYi9ncmVlbnNvY2svVGltZWxpbmVMaXRlLm1pbi5qcyc7XHJcbmltcG9ydCAnLi4vbGliL2dyZWVuc29jay9lYXNpbmcvRWFzZVBhY2subWluLmpzJztcclxuaW1wb3J0ICcuLi9saWIvZ3JlZW5zb2NrL3BsdWdpbnMvQ1NTUGx1Z2luLm1pbi5qcyc7XHJcbmltcG9ydCAnLi4vbGliL2dyZWVuc29jay9wbHVnaW5zL1Njcm9sbFRvUGx1Z2luLm1pbi5qcyc7XHJcblxyXG4vLyBBZGQgc2NyaXB0c1xyXG5pbXBvcnQgJy4uL2dsb2JhbC9wYWdlTWFuYWdlci5qcyc7XHJcbmltcG9ydCAnLi4vZ2xvYmFsL21haW4uanMnO1xyXG5pbXBvcnQgJy4uL2dsb2JhbC9maWVsZHMuanMnO1xyXG5pbXBvcnQgJy4uL2dsb2JhbC9iZWFjb24uanMnO1xyXG5pbXBvcnQgJy4uL2dsb2JhbC9hamF4LmpzJztcclxuaW1wb3J0ICcuLi9nbG9iYWwvcm9ja2V0Y2RuLmpzJztcclxuaW1wb3J0ICcuLi9nbG9iYWwvY291bnRkb3duLmpzJzsiLCJ2YXIgJCA9IGpRdWVyeTtcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XG4gICAgaWYgKCdCZWFjb24nIGluIHdpbmRvdykge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2hvdyBiZWFjb25zIG9uIGJ1dHRvbiBcImhlbHBcIiBjbGlja1xuICAgICAgICAgKi9cbiAgICAgICAgdmFyICRoZWxwID0gJCgnLndwci1pbmZvQWN0aW9uLS1oZWxwJyk7XG4gICAgICAgICRoZWxwLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpe1xuICAgICAgICAgICAgdmFyIGlkcyA9ICQodGhpcykuZGF0YSgnYmVhY29uLWlkJyk7XG4gICAgICAgICAgICB3cHJDYWxsQmVhY29uKGlkcyk7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIHdwckNhbGxCZWFjb24oYUlEKXtcbiAgICAgICAgICAgIGFJRCA9IGFJRC5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgaWYgKCBhSUQubGVuZ3RoID09PSAwICkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICggYUlELmxlbmd0aCA+IDEgKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5CZWFjb24oXCJzdWdnZXN0XCIsIGFJRCk7XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5CZWFjb24oXCJvcGVuXCIpO1xuICAgICAgICAgICAgICAgICAgICB9LCAyMDApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5CZWFjb24oXCJhcnRpY2xlXCIsIGFJRC50b1N0cmluZygpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbn0pO1xuIiwiZnVuY3Rpb24gZ2V0VGltZVJlbWFpbmluZyhlbmR0aW1lKXtcbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgY29uc3QgdG90YWwgPSAoZW5kdGltZSAqIDEwMDApIC0gc3RhcnQ7XG4gICAgY29uc3Qgc2Vjb25kcyA9IE1hdGguZmxvb3IoICh0b3RhbC8xMDAwKSAlIDYwICk7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoICh0b3RhbC8xMDAwLzYwKSAlIDYwICk7XG4gICAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKCAodG90YWwvKDEwMDAqNjAqNjApKSAlIDI0ICk7XG4gICAgY29uc3QgZGF5cyA9IE1hdGguZmxvb3IoIHRvdGFsLygxMDAwKjYwKjYwKjI0KSApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdG90YWwsXG4gICAgICAgIGRheXMsXG4gICAgICAgIGhvdXJzLFxuICAgICAgICBtaW51dGVzLFxuICAgICAgICBzZWNvbmRzXG4gICAgfTtcbn1cblxuZnVuY3Rpb24gaW5pdGlhbGl6ZUNsb2NrKGlkLCBlbmR0aW1lKSB7XG4gICAgY29uc3QgY2xvY2sgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG5cbiAgICBpZiAoY2xvY2sgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGRheXNTcGFuID0gY2xvY2sucXVlcnlTZWxlY3RvcignLnJvY2tldC1jb3VudGRvd24tZGF5cycpO1xuICAgIGNvbnN0IGhvdXJzU3BhbiA9IGNsb2NrLnF1ZXJ5U2VsZWN0b3IoJy5yb2NrZXQtY291bnRkb3duLWhvdXJzJyk7XG4gICAgY29uc3QgbWludXRlc1NwYW4gPSBjbG9jay5xdWVyeVNlbGVjdG9yKCcucm9ja2V0LWNvdW50ZG93bi1taW51dGVzJyk7XG4gICAgY29uc3Qgc2Vjb25kc1NwYW4gPSBjbG9jay5xdWVyeVNlbGVjdG9yKCcucm9ja2V0LWNvdW50ZG93bi1zZWNvbmRzJyk7XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVDbG9jaygpIHtcbiAgICAgICAgY29uc3QgdCA9IGdldFRpbWVSZW1haW5pbmcoZW5kdGltZSk7XG5cbiAgICAgICAgaWYgKHQudG90YWwgPCAwKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRpbWVpbnRlcnZhbCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGRheXNTcGFuLmlubmVySFRNTCA9IHQuZGF5cztcbiAgICAgICAgaG91cnNTcGFuLmlubmVySFRNTCA9ICgnMCcgKyB0LmhvdXJzKS5zbGljZSgtMik7XG4gICAgICAgIG1pbnV0ZXNTcGFuLmlubmVySFRNTCA9ICgnMCcgKyB0Lm1pbnV0ZXMpLnNsaWNlKC0yKTtcbiAgICAgICAgc2Vjb25kc1NwYW4uaW5uZXJIVE1MID0gKCcwJyArIHQuc2Vjb25kcykuc2xpY2UoLTIpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNsb2NrKCk7XG4gICAgY29uc3QgdGltZWludGVydmFsID0gc2V0SW50ZXJ2YWwodXBkYXRlQ2xvY2ssIDEwMDApO1xufVxuXG5mdW5jdGlvbiBydWNzc1RpbWVyKGlkLCBlbmR0aW1lKSB7XG5cdGNvbnN0IHRpbWVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuXHRjb25zdCBub3RpY2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9ja2V0LW5vdGljZS1ydWNzcy1wcm9jZXNzaW5nJyk7XG5cdGNvbnN0IHN1Y2Nlc3MgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9ja2V0LW5vdGljZS1ydWNzcy1zdWNjZXNzJyk7XG5cblx0aWYgKHRpbWVyID09PSBudWxsKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0ZnVuY3Rpb24gdXBkYXRlVGltZXIoKSB7XG5cdFx0Y29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXHRcdGNvbnN0IHJlbWFpbmluZyA9IE1hdGguZmxvb3IoICggKGVuZHRpbWUgKiAxMDAwKSAtIHN0YXJ0ICkgLyAxMDAwICk7XG5cblx0XHRpZiAocmVtYWluaW5nIDw9IDApIHtcblx0XHRcdGNsZWFySW50ZXJ2YWwodGltZXJJbnRlcnZhbCk7XG5cblx0XHRcdGlmIChub3RpY2UgIT09IG51bGwpIHtcblx0XHRcdFx0bm90aWNlLmNsYXNzTGlzdC5hZGQoJ2hpZGRlbicpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoc3VjY2VzcyAhPT0gbnVsbCkge1xuXHRcdFx0XHRzdWNjZXNzLmNsYXNzTGlzdC5yZW1vdmUoJ2hpZGRlbicpO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cblx0XHRcdGRhdGEuYXBwZW5kKCAnYWN0aW9uJywgJ3JvY2tldF9zcGF3bl9jcm9uJyApO1xuXHRcdFx0ZGF0YS5hcHBlbmQoICdub25jZScsIHJvY2tldF9hamF4X2RhdGEubm9uY2UgKTtcblxuXHRcdFx0ZmV0Y2goIGFqYXh1cmwsIHtcblx0XHRcdFx0bWV0aG9kOiAnUE9TVCcsXG5cdFx0XHRcdGNyZWRlbnRpYWxzOiAnc2FtZS1vcmlnaW4nLFxuXHRcdFx0XHRib2R5OiBkYXRhXG5cdFx0XHR9ICk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aW1lci5pbm5lckhUTUwgPSByZW1haW5pbmc7XG5cdH1cblxuXHR1cGRhdGVUaW1lcigpO1xuXHRjb25zdCB0aW1lckludGVydmFsID0gc2V0SW50ZXJ2YWwoIHVwZGF0ZVRpbWVyLCAxMDAwKTtcbn1cblxuaWYgKCFEYXRlLm5vdykge1xuICAgIERhdGUubm93ID0gZnVuY3Rpb24gbm93KCkge1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIH07XG59XG5cbmlmICh0eXBlb2Ygcm9ja2V0X2FqYXhfZGF0YS5wcm9tb19lbmQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgaW5pdGlhbGl6ZUNsb2NrKCdyb2NrZXQtcHJvbW8tY291bnRkb3duJywgcm9ja2V0X2FqYXhfZGF0YS5wcm9tb19lbmQpO1xufVxuXG5pZiAodHlwZW9mIHJvY2tldF9hamF4X2RhdGEubGljZW5zZV9leHBpcmF0aW9uICE9PSAndW5kZWZpbmVkJykge1xuICAgIGluaXRpYWxpemVDbG9jaygncm9ja2V0LXJlbmV3LWNvdW50ZG93bicsIHJvY2tldF9hamF4X2RhdGEubGljZW5zZV9leHBpcmF0aW9uKTtcbn1cblxuaWYgKHR5cGVvZiByb2NrZXRfYWpheF9kYXRhLm5vdGljZV9lbmRfdGltZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBydWNzc1RpbWVyKCdyb2NrZXQtcnVjc3MtdGltZXInLCByb2NrZXRfYWpheF9kYXRhLm5vdGljZV9lbmRfdGltZSk7XG59IiwidmFyICQgPSBqUXVlcnk7XG4kKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpe1xuXG5cbiAgICAvKioqXG4gICAgKiBDaGVjayBwYXJlbnQgLyBzaG93IGNoaWxkcmVuXG4gICAgKioqL1xuXG5cdGZ1bmN0aW9uIHdwclNob3dDaGlsZHJlbihhRWxlbSl7XG5cdFx0dmFyIHBhcmVudElkLCAkY2hpbGRyZW47XG5cblx0XHRhRWxlbSAgICAgPSAkKCBhRWxlbSApO1xuXHRcdHBhcmVudElkICA9IGFFbGVtLmF0dHIoJ2lkJyk7XG5cdFx0JGNoaWxkcmVuID0gJCgnW2RhdGEtcGFyZW50PVwiJyArIHBhcmVudElkICsgJ1wiXScpO1xuXG5cdFx0Ly8gVGVzdCBjaGVjayBmb3Igc3dpdGNoXG5cdFx0aWYoYUVsZW0uaXMoJzpjaGVja2VkJykpe1xuXHRcdFx0JGNoaWxkcmVuLmFkZENsYXNzKCd3cHItaXNPcGVuJyk7XG5cblx0XHRcdCRjaGlsZHJlbi5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoICQodGhpcykuZmluZCgnaW5wdXRbdHlwZT1jaGVja2JveF0nKS5pcygnOmNoZWNrZWQnKSkge1xuXHRcdFx0XHRcdHZhciBpZCA9ICQodGhpcykuZmluZCgnaW5wdXRbdHlwZT1jaGVja2JveF0nKS5hdHRyKCdpZCcpO1xuXG5cdFx0XHRcdFx0JCgnW2RhdGEtcGFyZW50PVwiJyArIGlkICsgJ1wiXScpLmFkZENsYXNzKCd3cHItaXNPcGVuJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH1cblx0XHRlbHNle1xuXHRcdFx0JGNoaWxkcmVuLnJlbW92ZUNsYXNzKCd3cHItaXNPcGVuJyk7XG5cblx0XHRcdCRjaGlsZHJlbi5lYWNoKGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgaWQgPSAkKHRoaXMpLmZpbmQoJ2lucHV0W3R5cGU9Y2hlY2tib3hdJykuYXR0cignaWQnKTtcblxuXHRcdFx0XHQkKCdbZGF0YS1wYXJlbnQ9XCInICsgaWQgKyAnXCJdJykucmVtb3ZlQ2xhc3MoJ3dwci1pc09wZW4nKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG4gICAgLyoqXG4gICAgICogVGVsbCBpZiB0aGUgZ2l2ZW4gY2hpbGQgZmllbGQgaGFzIGFuIGFjdGl2ZSBwYXJlbnQgZmllbGQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gIG9iamVjdCAkZmllbGQgQSBqUXVlcnkgb2JqZWN0IG9mIGEgXCIud3ByLWZpZWxkXCIgZmllbGQuXG4gICAgICogQHJldHVybiBib29sfG51bGxcbiAgICAgKi9cbiAgICBmdW5jdGlvbiB3cHJJc1BhcmVudEFjdGl2ZSggJGZpZWxkICkge1xuICAgICAgICB2YXIgJHBhcmVudDtcblxuICAgICAgICBpZiAoICEgJGZpZWxkLmxlbmd0aCApIHtcbiAgICAgICAgICAgIC8vIMKvXFxfKOODhClfL8KvXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICRwYXJlbnQgPSAkZmllbGQuZGF0YSggJ3BhcmVudCcgKTtcblxuICAgICAgICBpZiAoIHR5cGVvZiAkcGFyZW50ICE9PSAnc3RyaW5nJyApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgZmllbGQgaGFzIG5vIHBhcmVudCBmaWVsZDogdGhlbiB3ZSBjYW4gZGlzcGxheSBpdC5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJHBhcmVudCA9ICRwYXJlbnQucmVwbGFjZSggL15cXHMrfFxccyskL2csICcnICk7XG5cbiAgICAgICAgaWYgKCAnJyA9PT0gJHBhcmVudCApIHtcbiAgICAgICAgICAgIC8vIFRoaXMgZmllbGQgaGFzIG5vIHBhcmVudCBmaWVsZDogdGhlbiB3ZSBjYW4gZGlzcGxheSBpdC5cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgJHBhcmVudCA9ICQoICcjJyArICRwYXJlbnQgKTtcblxuICAgICAgICBpZiAoICEgJHBhcmVudC5sZW5ndGggKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGZpZWxkJ3MgcGFyZW50IGlzIG1pc3Npbmc6IGxldCdzIGNvbnNpZGVyIGl0J3Mgbm90IGFjdGl2ZSB0aGVuLlxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCAhICRwYXJlbnQuaXMoICc6Y2hlY2tlZCcgKSAmJiAkcGFyZW50LmlzKCdpbnB1dCcpKSB7XG4gICAgICAgICAgICAvLyBUaGlzIGZpZWxkJ3MgcGFyZW50IGlzIGNoZWNrYm94IGFuZCBub3QgY2hlY2tlZDogZG9uJ3QgZGlzcGxheSB0aGUgZmllbGQgdGhlbi5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG5cdFx0aWYgKCAhJHBhcmVudC5oYXNDbGFzcygncmFkaW8tYWN0aXZlJykgJiYgJHBhcmVudC5pcygnYnV0dG9uJykpIHtcblx0XHRcdC8vIFRoaXMgZmllbGQncyBwYXJlbnQgYnV0dG9uIGFuZCBpcyBub3QgYWN0aXZlOiBkb24ndCBkaXNwbGF5IHRoZSBmaWVsZCB0aGVuLlxuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cbiAgICAgICAgLy8gR28gcmVjdXJzaXZlIHRvIHRoZSBsYXN0IHBhcmVudC5cbiAgICAgICAgcmV0dXJuIHdwcklzUGFyZW50QWN0aXZlKCAkcGFyZW50LmNsb3Nlc3QoICcud3ByLWZpZWxkJyApICk7XG4gICAgfVxuXG4gICAgLy8gRGlzcGxheS9IaWRlIGNoaWxkZXJuIGZpZWxkcyBvbiBjaGVja2JveCBjaGFuZ2UuXG4gICAgJCggJy53cHItaXNQYXJlbnQgaW5wdXRbdHlwZT1jaGVja2JveF0nICkub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCkge1xuICAgICAgICB3cHJTaG93Q2hpbGRyZW4oJCh0aGlzKSk7XG4gICAgfSk7XG5cbiAgICAvLyBPbiBwYWdlIGxvYWQsIGRpc3BsYXkgdGhlIGFjdGl2ZSBmaWVsZHMuXG4gICAgJCggJy53cHItZmllbGQtLWNoaWxkcmVuJyApLmVhY2goIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgJGZpZWxkID0gJCggdGhpcyApO1xuXG4gICAgICAgIGlmICggd3BySXNQYXJlbnRBY3RpdmUoICRmaWVsZCApICkge1xuICAgICAgICAgICAgJGZpZWxkLmFkZENsYXNzKCAnd3ByLWlzT3BlbicgKTtcbiAgICAgICAgfVxuICAgIH0gKTtcblxuXG5cblxuICAgIC8qKipcbiAgICAqIFdhcm5pbmcgZmllbGRzXG4gICAgKioqL1xuXG4gICAgdmFyICR3YXJuaW5nUGFyZW50ID0gJCgnLndwci1maWVsZC0tcGFyZW50Jyk7XG4gICAgdmFyICR3YXJuaW5nUGFyZW50SW5wdXQgPSAkKCcud3ByLWZpZWxkLS1wYXJlbnQgaW5wdXRbdHlwZT1jaGVja2JveF0nKTtcblxuICAgIC8vIElmIGFscmVhZHkgY2hlY2tlZFxuICAgICR3YXJuaW5nUGFyZW50SW5wdXQuZWFjaChmdW5jdGlvbigpe1xuICAgICAgICB3cHJTaG93Q2hpbGRyZW4oJCh0aGlzKSk7XG4gICAgfSk7XG5cbiAgICAkd2FybmluZ1BhcmVudC5vbignY2hhbmdlJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIHdwclNob3dXYXJuaW5nKCQodGhpcykpO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gd3ByU2hvd1dhcm5pbmcoYUVsZW0pe1xuICAgICAgICB2YXIgJHdhcm5pbmdGaWVsZCA9IGFFbGVtLm5leHQoJy53cHItZmllbGRXYXJuaW5nJyksXG4gICAgICAgICAgICAkdGhpc0NoZWNrYm94ID0gYUVsZW0uZmluZCgnaW5wdXRbdHlwZT1jaGVja2JveF0nKSxcbiAgICAgICAgICAgICRuZXh0V2FybmluZyA9IGFFbGVtLnBhcmVudCgpLm5leHQoJy53cHItd2FybmluZ0NvbnRhaW5lcicpLFxuICAgICAgICAgICAgJG5leHRGaWVsZHMgPSAkbmV4dFdhcm5pbmcuZmluZCgnLndwci1maWVsZCcpLFxuICAgICAgICAgICAgcGFyZW50SWQgPSBhRWxlbS5maW5kKCdpbnB1dFt0eXBlPWNoZWNrYm94XScpLmF0dHIoJ2lkJyksXG4gICAgICAgICAgICAkY2hpbGRyZW4gPSAkKCdbZGF0YS1wYXJlbnQ9XCInICsgcGFyZW50SWQgKyAnXCJdJylcbiAgICAgICAgO1xuXG4gICAgICAgIC8vIENoZWNrIHdhcm5pbmcgcGFyZW50XG4gICAgICAgIGlmKCR0aGlzQ2hlY2tib3guaXMoJzpjaGVja2VkJykpe1xuICAgICAgICAgICAgJHdhcm5pbmdGaWVsZC5hZGRDbGFzcygnd3ByLWlzT3BlbicpO1xuICAgICAgICAgICAgJHRoaXNDaGVja2JveC5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgICAgICAgYUVsZW0udHJpZ2dlcignY2hhbmdlJyk7XG5cblxuICAgICAgICAgICAgdmFyICR3YXJuaW5nQnV0dG9uID0gJHdhcm5pbmdGaWVsZC5maW5kKCcud3ByLWJ1dHRvbicpO1xuXG4gICAgICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgd2FybmluZ1xuICAgICAgICAgICAgJHdhcm5pbmdCdXR0b24ub24oJ2NsaWNrJywgZnVuY3Rpb24oKXtcbiAgICAgICAgICAgICAgICAkdGhpc0NoZWNrYm94LnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAkd2FybmluZ0ZpZWxkLnJlbW92ZUNsYXNzKCd3cHItaXNPcGVuJyk7XG4gICAgICAgICAgICAgICAgJGNoaWxkcmVuLmFkZENsYXNzKCd3cHItaXNPcGVuJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBJZiBuZXh0IGVsZW0gPSBkaXNhYmxlZFxuICAgICAgICAgICAgICAgIGlmKCRuZXh0V2FybmluZy5sZW5ndGggPiAwKXtcbiAgICAgICAgICAgICAgICAgICAgJG5leHRGaWVsZHMucmVtb3ZlQ2xhc3MoJ3dwci1pc0Rpc2FibGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICRuZXh0RmllbGRzLmZpbmQoJ2lucHV0JykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZXtcbiAgICAgICAgICAgICRuZXh0RmllbGRzLmFkZENsYXNzKCd3cHItaXNEaXNhYmxlZCcpO1xuICAgICAgICAgICAgJG5leHRGaWVsZHMuZmluZCgnaW5wdXQnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICAgICAgJG5leHRGaWVsZHMuZmluZCgnaW5wdXRbdHlwZT1jaGVja2JveF0nKS5wcm9wKCdjaGVja2VkJywgZmFsc2UpO1xuICAgICAgICAgICAgJGNoaWxkcmVuLnJlbW92ZUNsYXNzKCd3cHItaXNPcGVuJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDTkFNRVMgYWRkL3JlbW92ZSBsaW5lc1xuICAgICAqL1xuICAgICQoZG9jdW1lbnQpLm9uKCdjbGljaycsICcud3ByLW11bHRpcGxlLWNsb3NlJywgZnVuY3Rpb24oZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHQkKHRoaXMpLnBhcmVudCgpLnNsaWRlVXAoICdzbG93JyAsIGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmUoKTsgfSApO1xuXHR9ICk7XG5cblx0JCgnLndwci1idXR0b24tLWFkZE11bHRpJykub24oJ2NsaWNrJywgZnVuY3Rpb24oZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgJCgkKCcjd3ByLWNuYW1lLW1vZGVsJykuaHRtbCgpKS5hcHBlbmRUbygnI3dwci1jbmFtZXMtbGlzdCcpO1xuICAgIH0pO1xuXG5cdC8qKipcblx0ICogV3ByIFJhZGlvIGJ1dHRvblxuXHQgKioqL1xuXHR2YXIgZGlzYWJsZV9yYWRpb193YXJuaW5nID0gZmFsc2U7XG5cblx0JChkb2N1bWVudCkub24oJ2NsaWNrJywgJy53cHItcmFkaW8tYnV0dG9ucy1jb250YWluZXIgYnV0dG9uJywgZnVuY3Rpb24oZSkge1xuXHRcdGUucHJldmVudERlZmF1bHQoKTtcblx0XHRpZigkKHRoaXMpLmhhc0NsYXNzKCdyYWRpby1hY3RpdmUnKSl7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHZhciAkcGFyZW50ID0gJCh0aGlzKS5wYXJlbnRzKCcud3ByLXJhZGlvLWJ1dHRvbnMnKTtcblx0XHQkcGFyZW50LmZpbmQoJy53cHItcmFkaW8tYnV0dG9ucy1jb250YWluZXIgYnV0dG9uJykucmVtb3ZlQ2xhc3MoJ3JhZGlvLWFjdGl2ZScpO1xuXHRcdCRwYXJlbnQuZmluZCgnLndwci1leHRyYS1maWVsZHMtY29udGFpbmVyJykucmVtb3ZlQ2xhc3MoJ3dwci1pc09wZW4nKTtcblx0XHQkcGFyZW50LmZpbmQoJy53cHItZmllbGRXYXJuaW5nJykucmVtb3ZlQ2xhc3MoJ3dwci1pc09wZW4nKTtcblx0XHQkKHRoaXMpLmFkZENsYXNzKCdyYWRpby1hY3RpdmUnKTtcblx0XHR3cHJTaG93UmFkaW9XYXJuaW5nKCQodGhpcykpO1xuXG5cdH0gKTtcblxuXG5cdGZ1bmN0aW9uIHdwclNob3dSYWRpb1dhcm5pbmcoJGVsbSl7XG5cdFx0ZGlzYWJsZV9yYWRpb193YXJuaW5nID0gZmFsc2U7XG5cdFx0JGVsbS50cmlnZ2VyKCBcImJlZm9yZV9zaG93X3JhZGlvX3dhcm5pbmdcIiwgWyAkZWxtIF0gKTtcblx0XHRpZiAoISRlbG0uaGFzQ2xhc3MoJ2hhcy13YXJuaW5nJykgfHwgZGlzYWJsZV9yYWRpb193YXJuaW5nKSB7XG5cdFx0XHR3cHJTaG93UmFkaW9CdXR0b25DaGlsZHJlbigkZWxtKTtcblx0XHRcdCRlbG0udHJpZ2dlciggXCJyYWRpb19idXR0b25fc2VsZWN0ZWRcIiwgWyAkZWxtIF0gKTtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cdFx0dmFyICR3YXJuaW5nRmllbGQgPSAkKCdbZGF0YS1wYXJlbnQ9XCInICsgJGVsbS5hdHRyKCdpZCcpICsgJ1wiXS53cHItZmllbGRXYXJuaW5nJyk7XG5cdFx0JHdhcm5pbmdGaWVsZC5hZGRDbGFzcygnd3ByLWlzT3BlbicpO1xuXHRcdHZhciAkd2FybmluZ0J1dHRvbiA9ICR3YXJuaW5nRmllbGQuZmluZCgnLndwci1idXR0b24nKTtcblxuXHRcdC8vIFZhbGlkYXRlIHRoZSB3YXJuaW5nXG5cdFx0JHdhcm5pbmdCdXR0b24ub24oJ2NsaWNrJywgZnVuY3Rpb24oKXtcblx0XHRcdCR3YXJuaW5nRmllbGQucmVtb3ZlQ2xhc3MoJ3dwci1pc09wZW4nKTtcblx0XHRcdHdwclNob3dSYWRpb0J1dHRvbkNoaWxkcmVuKCRlbG0pO1xuXHRcdFx0JGVsbS50cmlnZ2VyKCBcInJhZGlvX2J1dHRvbl9zZWxlY3RlZFwiLCBbICRlbG0gXSApO1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH0pO1xuXHR9XG5cblx0ZnVuY3Rpb24gd3ByU2hvd1JhZGlvQnV0dG9uQ2hpbGRyZW4oJGVsbSkge1xuXHRcdHZhciAkcGFyZW50ID0gJGVsbS5wYXJlbnRzKCcud3ByLXJhZGlvLWJ1dHRvbnMnKTtcblx0XHR2YXIgJGNoaWxkcmVuID0gJCgnLndwci1leHRyYS1maWVsZHMtY29udGFpbmVyW2RhdGEtcGFyZW50PVwiJyArICRlbG0uYXR0cignaWQnKSArICdcIl0nKTtcblx0XHQkY2hpbGRyZW4uYWRkQ2xhc3MoJ3dwci1pc09wZW4nKTtcblx0fVxuXG5cdC8qKipcblx0ICogV3ByIE9wdGltaXplIENzcyBEZWxpdmVyeSBGaWVsZFxuXHQgKioqL1xuXHR2YXIgcnVjc3NBY3RpdmUgPSBwYXJzZUludCgkKCcjcmVtb3ZlX3VudXNlZF9jc3MnKS52YWwoKSk7XG5cblx0JCggXCIjb3B0aW1pemVfY3NzX2RlbGl2ZXJ5X21ldGhvZCAud3ByLXJhZGlvLWJ1dHRvbnMtY29udGFpbmVyIGJ1dHRvblwiIClcblx0XHQub24oIFwicmFkaW9fYnV0dG9uX3NlbGVjdGVkXCIsIGZ1bmN0aW9uKCBldmVudCwgJGVsbSApIHtcblx0XHRcdHRvZ2dsZUFjdGl2ZU9wdGltaXplQ3NzRGVsaXZlcnlNZXRob2QoJGVsbSk7XG5cdFx0fSk7XG5cblx0JChcIiNvcHRpbWl6ZV9jc3NfZGVsaXZlcnlcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24oKXtcblx0XHRpZiggJCh0aGlzKS5pcyhcIjpub3QoOmNoZWNrZWQpXCIpICl7XG5cdFx0XHRkaXNhYmxlT3B0aW1pemVDc3NEZWxpdmVyeSgpO1xuXHRcdH1lbHNle1xuXHRcdFx0dmFyIGRlZmF1bHRfcmFkaW9fYnV0dG9uX2lkID0gJyMnKyQoJyNvcHRpbWl6ZV9jc3NfZGVsaXZlcnlfbWV0aG9kJykuZGF0YSggJ2RlZmF1bHQnICk7XG5cdFx0XHQkKGRlZmF1bHRfcmFkaW9fYnV0dG9uX2lkKS50cmlnZ2VyKCdjbGljaycpO1xuXHRcdH1cblx0fSk7XG5cblx0ZnVuY3Rpb24gdG9nZ2xlQWN0aXZlT3B0aW1pemVDc3NEZWxpdmVyeU1ldGhvZCgkZWxtKSB7XG5cdFx0dmFyIG9wdGltaXplX21ldGhvZCA9ICRlbG0uZGF0YSgndmFsdWUnKTtcblx0XHRpZigncmVtb3ZlX3VudXNlZF9jc3MnID09PSBvcHRpbWl6ZV9tZXRob2Qpe1xuXHRcdFx0JCgnI3JlbW92ZV91bnVzZWRfY3NzJykudmFsKDEpO1xuXHRcdFx0JCgnI2FzeW5jX2NzcycpLnZhbCgwKTtcblx0XHR9ZWxzZXtcblx0XHRcdCQoJyNyZW1vdmVfdW51c2VkX2NzcycpLnZhbCgwKTtcblx0XHRcdCQoJyNhc3luY19jc3MnKS52YWwoMSk7XG5cdFx0fVxuXG5cdH1cblxuXHRmdW5jdGlvbiBkaXNhYmxlT3B0aW1pemVDc3NEZWxpdmVyeSgpIHtcblx0XHQkKCcjcmVtb3ZlX3VudXNlZF9jc3MnKS52YWwoMCk7XG5cdFx0JCgnI2FzeW5jX2NzcycpLnZhbCgwKTtcblx0fVxuXG5cdCQoIFwiI29wdGltaXplX2Nzc19kZWxpdmVyeV9tZXRob2QgLndwci1yYWRpby1idXR0b25zLWNvbnRhaW5lciBidXR0b25cIiApXG5cdFx0Lm9uKCBcImJlZm9yZV9zaG93X3JhZGlvX3dhcm5pbmdcIiwgZnVuY3Rpb24oIGV2ZW50LCAkZWxtICkge1xuXHRcdFx0ZGlzYWJsZV9yYWRpb193YXJuaW5nID0gKCdyZW1vdmVfdW51c2VkX2NzcycgPT09ICRlbG0uZGF0YSgndmFsdWUnKSAmJiAxID09PSBydWNzc0FjdGl2ZSlcblx0XHR9KTtcblxufSk7XG4iLCJ2YXIgJCA9IGpRdWVyeTtcbiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7XG5cblxuXHQvKioqXG5cdCogRGFzaGJvYXJkIG5vdGljZVxuXHQqKiovXG5cblx0dmFyICRub3RpY2UgPSAkKCcud3ByLW5vdGljZScpO1xuXHR2YXIgJG5vdGljZUNsb3NlID0gJCgnI3dwci1jb25ncmF0dWxhdGlvbnMtbm90aWNlJyk7XG5cblx0JG5vdGljZUNsb3NlLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuXHRcdHdwckNsb3NlRGFzaGJvYXJkTm90aWNlKCk7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KTtcblxuXHRmdW5jdGlvbiB3cHJDbG9zZURhc2hib2FyZE5vdGljZSgpe1xuXHRcdHZhciB2VEwgPSBuZXcgVGltZWxpbmVMaXRlKClcblx0XHQgIC50bygkbm90aWNlLCAxLCB7YXV0b0FscGhhOjAsIHg6NDAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9KVxuXHRcdCAgLnRvKCRub3RpY2UsIDAuNiwge2hlaWdodDogMCwgbWFyZ2luVG9wOjAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9LCAnPS0uNCcpXG5cdFx0ICAuc2V0KCRub3RpY2UsIHsnZGlzcGxheSc6J25vbmUnfSlcblx0XHQ7XG5cdH1cblxuXHQvKipcblx0ICogUm9ja2V0IEFuYWx5dGljcyBub3RpY2UgaW5mbyBjb2xsZWN0XG5cdCAqL1xuXHQkKCAnLnJvY2tldC1hbmFseXRpY3MtZGF0YS1jb250YWluZXInICkuaGlkZSgpO1xuXHQkKCAnLnJvY2tldC1wcmV2aWV3LWFuYWx5dGljcy1kYXRhJyApLm9uKCAnY2xpY2snLCBmdW5jdGlvbiggZSApIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cblx0XHQkKHRoaXMpLnBhcmVudCgpLm5leHQoICcucm9ja2V0LWFuYWx5dGljcy1kYXRhLWNvbnRhaW5lcicgKS50b2dnbGUoKTtcblx0fSApO1xuXG5cdC8qKipcblx0KiBIaWRlIC8gc2hvdyBSb2NrZXQgYWRkb24gdGFicy5cblx0KioqL1xuXG5cdCQoICcud3ByLXRvZ2dsZS1idXR0b24nICkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0dmFyICRidXR0b24gICA9ICQoIHRoaXMgKTtcblx0XHR2YXIgJGNoZWNrYm94ID0gJGJ1dHRvbi5jbG9zZXN0KCAnLndwci1maWVsZHNDb250YWluZXItZmllbGRzZXQnICkuZmluZCggJy53cHItcmFkaW8gOmNoZWNrYm94JyApO1xuXHRcdHZhciAkbWVudUl0ZW0gPSAkKCAnW2hyZWY9XCInICsgJGJ1dHRvbi5hdHRyKCAnaHJlZicgKSArICdcIl0ud3ByLW1lbnVJdGVtJyApO1xuXG5cdFx0JGNoZWNrYm94Lm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggJGNoZWNrYm94LmlzKCAnOmNoZWNrZWQnICkgKSB7XG5cdFx0XHRcdCRtZW51SXRlbS5jc3MoICdkaXNwbGF5JywgJ2Jsb2NrJyApO1xuXHRcdFx0XHQkYnV0dG9uLmNzcyggJ2Rpc3BsYXknLCAnaW5saW5lLWJsb2NrJyApO1xuXHRcdFx0fSBlbHNle1xuXHRcdFx0XHQkbWVudUl0ZW0uY3NzKCAnZGlzcGxheScsICdub25lJyApO1xuXHRcdFx0XHQkYnV0dG9uLmNzcyggJ2Rpc3BsYXknLCAnbm9uZScgKTtcblx0XHRcdH1cblx0XHR9ICkudHJpZ2dlciggJ2NoYW5nZScgKTtcblx0fSApO1xuXG5cblxuXG5cblx0LyoqKlxuXHQqIFNob3cgcG9waW4gYW5hbHl0aWNzXG5cdCoqKi9cblxuXHR2YXIgJHdwckFuYWx5dGljc1BvcGluID0gJCgnLndwci1Qb3Bpbi1BbmFseXRpY3MnKSxcblx0XHQkd3ByUG9waW5PdmVybGF5ID0gJCgnLndwci1Qb3Bpbi1vdmVybGF5JyksXG5cdFx0JHdwckFuYWx5dGljc0Nsb3NlUG9waW4gPSAkKCcud3ByLVBvcGluLUFuYWx5dGljcy1jbG9zZScpLFxuXHRcdCR3cHJBbmFseXRpY3NQb3BpbkJ1dHRvbiA9ICQoJy53cHItUG9waW4tQW5hbHl0aWNzIC53cHItYnV0dG9uJyksXG5cdFx0JHdwckFuYWx5dGljc09wZW5Qb3BpbiA9ICQoJy53cHItanMtcG9waW4nKVxuXHQ7XG5cblx0JHdwckFuYWx5dGljc09wZW5Qb3Bpbi5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHdwck9wZW5BbmFseXRpY3MoKTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pO1xuXG5cdCR3cHJBbmFseXRpY3NDbG9zZVBvcGluLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHtcblx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0d3ByQ2xvc2VBbmFseXRpY3MoKTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pO1xuXG5cdCR3cHJBbmFseXRpY3NQb3BpbkJ1dHRvbi5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHdwckFjdGl2YXRlQW5hbHl0aWNzKCk7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9KTtcblxuXHRmdW5jdGlvbiB3cHJPcGVuQW5hbHl0aWNzKCl7XG5cdFx0dmFyIHZUTCA9IG5ldyBUaW1lbGluZUxpdGUoKVxuXHRcdCAgLnNldCgkd3ByQW5hbHl0aWNzUG9waW4sIHsnZGlzcGxheSc6J2Jsb2NrJ30pXG5cdFx0ICAuc2V0KCR3cHJQb3Bpbk92ZXJsYXksIHsnZGlzcGxheSc6J2Jsb2NrJ30pXG5cdFx0ICAuZnJvbVRvKCR3cHJQb3Bpbk92ZXJsYXksIDAuNiwge2F1dG9BbHBoYTowfSx7YXV0b0FscGhhOjEsIGVhc2U6UG93ZXI0LmVhc2VPdXR9KVxuXHRcdCAgLmZyb21Ubygkd3ByQW5hbHl0aWNzUG9waW4sIDAuNiwge2F1dG9BbHBoYTowLCBtYXJnaW5Ub3A6IC0yNH0sIHthdXRvQWxwaGE6MSwgbWFyZ2luVG9wOjAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9LCAnPS0uNScpXG5cdFx0O1xuXHR9XG5cblx0ZnVuY3Rpb24gd3ByQ2xvc2VBbmFseXRpY3MoKXtcblx0XHR2YXIgdlRMID0gbmV3IFRpbWVsaW5lTGl0ZSgpXG5cdFx0ICAuZnJvbVRvKCR3cHJBbmFseXRpY3NQb3BpbiwgMC42LCB7YXV0b0FscGhhOjEsIG1hcmdpblRvcDogMH0sIHthdXRvQWxwaGE6MCwgbWFyZ2luVG9wOi0yNCwgZWFzZTpQb3dlcjQuZWFzZU91dH0pXG5cdFx0ICAuZnJvbVRvKCR3cHJQb3Bpbk92ZXJsYXksIDAuNiwge2F1dG9BbHBoYToxfSx7YXV0b0FscGhhOjAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9LCAnPS0uNScpXG5cdFx0ICAuc2V0KCR3cHJBbmFseXRpY3NQb3BpbiwgeydkaXNwbGF5Jzonbm9uZSd9KVxuXHRcdCAgLnNldCgkd3ByUG9waW5PdmVybGF5LCB7J2Rpc3BsYXknOidub25lJ30pXG5cdFx0O1xuXHR9XG5cblx0ZnVuY3Rpb24gd3ByQWN0aXZhdGVBbmFseXRpY3MoKXtcblx0XHR3cHJDbG9zZUFuYWx5dGljcygpO1xuXHRcdCQoJyNhbmFseXRpY3NfZW5hYmxlZCcpLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcblx0XHQkKCcjYW5hbHl0aWNzX2VuYWJsZWQnKS50cmlnZ2VyKCdjaGFuZ2UnKTtcblx0fVxuXG5cdC8qKipcblx0KiBTaG93IHBvcGluIHVwZ3JhZGVcblx0KioqL1xuXG5cdHZhciAkd3ByVXBncmFkZVBvcGluID0gJCgnLndwci1Qb3Bpbi1VcGdyYWRlJyksXG5cdCR3cHJVcGdyYWRlQ2xvc2VQb3BpbiA9ICQoJy53cHItUG9waW4tVXBncmFkZS1jbG9zZScpLFxuXHQkd3ByVXBncmFkZU9wZW5Qb3BpbiA9ICQoJy53cHItcG9waW4tdXBncmFkZS10b2dnbGUnKTtcblxuXHQkd3ByVXBncmFkZU9wZW5Qb3Bpbi5vbignY2xpY2snLCBmdW5jdGlvbihlKSB7XG5cdFx0ZS5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdHdwck9wZW5VcGdyYWRlUG9waW4oKTtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH0pO1xuXG5cdCR3cHJVcGdyYWRlQ2xvc2VQb3Bpbi5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcblx0XHR3cHJDbG9zZVVwZ3JhZGVQb3BpbigpO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSk7XG5cblx0ZnVuY3Rpb24gd3ByT3BlblVwZ3JhZGVQb3Bpbigpe1xuXHRcdHZhciB2VEwgPSBuZXcgVGltZWxpbmVMaXRlKCk7XG5cblx0XHR2VEwuc2V0KCR3cHJVcGdyYWRlUG9waW4sIHsnZGlzcGxheSc6J2Jsb2NrJ30pXG5cdFx0XHQuc2V0KCR3cHJQb3Bpbk92ZXJsYXksIHsnZGlzcGxheSc6J2Jsb2NrJ30pXG5cdFx0XHQuZnJvbVRvKCR3cHJQb3Bpbk92ZXJsYXksIDAuNiwge2F1dG9BbHBoYTowfSx7YXV0b0FscGhhOjEsIGVhc2U6UG93ZXI0LmVhc2VPdXR9KVxuXHRcdFx0LmZyb21Ubygkd3ByVXBncmFkZVBvcGluLCAwLjYsIHthdXRvQWxwaGE6MCwgbWFyZ2luVG9wOiAtMjR9LCB7YXV0b0FscGhhOjEsIG1hcmdpblRvcDowLCBlYXNlOlBvd2VyNC5lYXNlT3V0fSwgJz0tLjUnKVxuXHRcdDtcblx0fVxuXG5cdGZ1bmN0aW9uIHdwckNsb3NlVXBncmFkZVBvcGluKCl7XG5cdFx0dmFyIHZUTCA9IG5ldyBUaW1lbGluZUxpdGUoKTtcblxuXHRcdHZUTC5mcm9tVG8oJHdwclVwZ3JhZGVQb3BpbiwgMC42LCB7YXV0b0FscGhhOjEsIG1hcmdpblRvcDogMH0sIHthdXRvQWxwaGE6MCwgbWFyZ2luVG9wOi0yNCwgZWFzZTpQb3dlcjQuZWFzZU91dH0pXG5cdFx0XHQuZnJvbVRvKCR3cHJQb3Bpbk92ZXJsYXksIDAuNiwge2F1dG9BbHBoYToxfSx7YXV0b0FscGhhOjAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9LCAnPS0uNScpXG5cdFx0XHQuc2V0KCR3cHJVcGdyYWRlUG9waW4sIHsnZGlzcGxheSc6J25vbmUnfSlcblx0XHRcdC5zZXQoJHdwclBvcGluT3ZlcmxheSwgeydkaXNwbGF5Jzonbm9uZSd9KVxuXHRcdDtcblx0fVxuXG5cdC8qKipcblx0KiBTaWRlYmFyIG9uL29mZlxuXHQqKiovXG5cdHZhciAkd3ByU2lkZWJhciAgICA9ICQoICcud3ByLVNpZGViYXInICk7XG5cdHZhciAkd3ByQnV0dG9uVGlwcyA9ICQoJy53cHItanMtdGlwcycpO1xuXG5cdCR3cHJCdXR0b25UaXBzLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHtcblx0XHR3cHJEZXRlY3RUaXBzKCQodGhpcykpO1xuXHR9KTtcblxuXHRmdW5jdGlvbiB3cHJEZXRlY3RUaXBzKGFFbGVtKXtcblx0XHRpZihhRWxlbS5pcygnOmNoZWNrZWQnKSl7XG5cdFx0XHQkd3ByU2lkZWJhci5jc3MoJ2Rpc3BsYXknLCdibG9jaycpO1xuXHRcdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oICd3cHItc2hvdy1zaWRlYmFyJywgJ29uJyApO1xuXHRcdH1cblx0XHRlbHNle1xuXHRcdFx0JHdwclNpZGViYXIuY3NzKCdkaXNwbGF5Jywnbm9uZScpO1xuXHRcdFx0bG9jYWxTdG9yYWdlLnNldEl0ZW0oICd3cHItc2hvdy1zaWRlYmFyJywgJ29mZicgKTtcblx0XHR9XG5cdH1cblxuXG5cblx0LyoqKlxuXHQqIERldGVjdCBBZGJsb2NrXG5cdCoqKi9cblxuXHRpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnTEtnT2NDUnB3bUFqJykpe1xuXHRcdCQoJy53cHItYWRibG9jaycpLmNzcygnZGlzcGxheScsICdub25lJyk7XG5cdH0gZWxzZSB7XG5cdFx0JCgnLndwci1hZGJsb2NrJykuY3NzKCdkaXNwbGF5JywgJ2Jsb2NrJyk7XG5cdH1cblxuXHR2YXIgJGFkYmxvY2sgPSAkKCcud3ByLWFkYmxvY2snKTtcblx0dmFyICRhZGJsb2NrQ2xvc2UgPSAkKCcud3ByLWFkYmxvY2stY2xvc2UnKTtcblxuXHQkYWRibG9ja0Nsb3NlLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuXHRcdHdwckNsb3NlQWRibG9ja05vdGljZSgpO1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSk7XG5cblx0ZnVuY3Rpb24gd3ByQ2xvc2VBZGJsb2NrTm90aWNlKCl7XG5cdFx0dmFyIHZUTCA9IG5ldyBUaW1lbGluZUxpdGUoKVxuXHRcdCAgLnRvKCRhZGJsb2NrLCAxLCB7YXV0b0FscGhhOjAsIHg6NDAsIGVhc2U6UG93ZXI0LmVhc2VPdXR9KVxuXHRcdCAgLnRvKCRhZGJsb2NrLCAwLjQsIHtoZWlnaHQ6IDAsIG1hcmdpblRvcDowLCBlYXNlOlBvd2VyNC5lYXNlT3V0fSwgJz0tLjQnKVxuXHRcdCAgLnNldCgkYWRibG9jaywgeydkaXNwbGF5Jzonbm9uZSd9KVxuXHRcdDtcblx0fVxuXG59KTtcbiIsImRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoICdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkge1xuXG4gICAgdmFyICRwYWdlTWFuYWdlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIud3ByLUNvbnRlbnRcIik7XG4gICAgaWYoJHBhZ2VNYW5hZ2VyKXtcbiAgICAgICAgbmV3IFBhZ2VNYW5hZ2VyKCRwYWdlTWFuYWdlcik7XG4gICAgfVxuXG59KTtcblxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlxcXG5cdFx0Q0xBU1MgUEFHRU1BTkFHRVJcblxcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qKlxuICogTWFuYWdlcyB0aGUgZGlzcGxheSBvZiBwYWdlcyAvIHNlY3Rpb24gZm9yIFdQIFJvY2tldCBwbHVnaW5cbiAqXG4gKiBQdWJsaWMgbWV0aG9kIDpcbiAgICAgZGV0ZWN0SUQgLSBEZXRlY3QgSUQgd2l0aCBoYXNoXG4gICAgIGdldEJvZHlUb3AgLSBHZXQgYm9keSB0b3AgcG9zaXRpb25cblx0IGNoYW5nZSAtIERpc3BsYXlzIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2VcbiAqXG4gKi9cblxuZnVuY3Rpb24gUGFnZU1hbmFnZXIoYUVsZW0pIHtcblxuICAgIHZhciByZWZUaGlzID0gdGhpcztcblxuICAgIHRoaXMuJGJvZHkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud3ByLWJvZHknKTtcbiAgICB0aGlzLiRtZW51SXRlbXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud3ByLW1lbnVJdGVtJyk7XG4gICAgdGhpcy4kc3VibWl0QnV0dG9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLndwci1Db250ZW50ID4gZm9ybSA+ICN3cHItb3B0aW9ucy1zdWJtaXQnKTtcbiAgICB0aGlzLiRwYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy53cHItUGFnZScpO1xuICAgIHRoaXMuJHNpZGViYXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud3ByLVNpZGViYXInKTtcbiAgICB0aGlzLiRjb250ZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLndwci1Db250ZW50Jyk7XG4gICAgdGhpcy4kdGlwcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy53cHItQ29udGVudC10aXBzJyk7XG4gICAgdGhpcy4kbGlua3MgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcud3ByLWJvZHkgYScpO1xuICAgIHRoaXMuJG1lbnVJdGVtID0gbnVsbDtcbiAgICB0aGlzLiRwYWdlID0gbnVsbDtcbiAgICB0aGlzLnBhZ2VJZCA9IG51bGw7XG4gICAgdGhpcy5ib2R5VG9wID0gMDtcbiAgICB0aGlzLmJ1dHRvblRleHQgPSB0aGlzLiRzdWJtaXRCdXR0b24udmFsdWU7XG5cbiAgICByZWZUaGlzLmdldEJvZHlUb3AoKTtcblxuICAgIC8vIElmIHVybCBwYWdlIGNoYW5nZVxuICAgIHdpbmRvdy5vbmhhc2hjaGFuZ2UgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmVmVGhpcy5kZXRlY3RJRCgpO1xuICAgIH1cblxuICAgIC8vIElmIGhhc2ggYWxyZWFkeSBleGlzdCAoYWZ0ZXIgcmVmcmVzaCBwYWdlIGZvciBleGFtcGxlKVxuICAgIGlmKHdpbmRvdy5sb2NhdGlvbi5oYXNoKXtcbiAgICAgICAgdGhpcy5ib2R5VG9wID0gMDtcbiAgICAgICAgdGhpcy5kZXRlY3RJRCgpO1xuICAgIH1cbiAgICBlbHNle1xuICAgICAgICB2YXIgc2Vzc2lvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3cHItaGFzaCcpO1xuICAgICAgICB0aGlzLmJvZHlUb3AgPSAwO1xuXG4gICAgICAgIGlmKHNlc3Npb24pe1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhhc2ggPSBzZXNzaW9uO1xuICAgICAgICAgICAgdGhpcy5kZXRlY3RJRCgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2V7XG4gICAgICAgICAgICB0aGlzLiRtZW51SXRlbXNbMF0uY2xhc3NMaXN0LmFkZCgnaXNBY3RpdmUnKTtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd3cHItaGFzaCcsICdkYXNoYm9hcmQnKTtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5oYXNoID0gJyNkYXNoYm9hcmQnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2xpY2sgbGluayBzYW1lIGhhc2hcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuJGxpbmtzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuJGxpbmtzW2ldLm9uY2xpY2sgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHJlZlRoaXMuZ2V0Qm9keVRvcCgpO1xuICAgICAgICAgICAgdmFyIGhyZWZTcGxpdCA9IHRoaXMuaHJlZi5zcGxpdCgnIycpWzFdO1xuICAgICAgICAgICAgaWYoaHJlZlNwbGl0ID09IHJlZlRoaXMucGFnZUlkICYmIGhyZWZTcGxpdCAhPSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgICAgIHJlZlRoaXMuZGV0ZWN0SUQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQ2xpY2sgbGlua3Mgbm90IFdQIHJvY2tldCB0byByZXNldCBoYXNoXG4gICAgdmFyICRvdGhlcmxpbmtzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnI2FkbWlubWVudW1haW4gYSwgI3dwYWRtaW5iYXIgYScpO1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgJG90aGVybGlua3MubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgJG90aGVybGlua3NbaV0ub25jbGljayA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3dwci1oYXNoJywgJycpO1xuICAgICAgICB9O1xuICAgIH1cblxufVxuXG5cbi8qXG4qIFBhZ2UgZGV0ZWN0IElEXG4qL1xuUGFnZU1hbmFnZXIucHJvdG90eXBlLmRldGVjdElEID0gZnVuY3Rpb24oKSB7XG4gICAgdGhpcy5wYWdlSWQgPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zcGxpdCgnIycpWzFdO1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd3cHItaGFzaCcsIHRoaXMucGFnZUlkKTtcblxuICAgIHRoaXMuJHBhZ2UgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcud3ByLVBhZ2UjJyArIHRoaXMucGFnZUlkKTtcbiAgICB0aGlzLiRtZW51SXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd3cHItbmF2LScgKyB0aGlzLnBhZ2VJZCk7XG5cbiAgICB0aGlzLmNoYW5nZSgpO1xufVxuXG5cblxuLypcbiogR2V0IGJvZHkgdG9wIHBvc2l0aW9uXG4qL1xuUGFnZU1hbmFnZXIucHJvdG90eXBlLmdldEJvZHlUb3AgPSBmdW5jdGlvbigpIHtcbiAgICB2YXIgYm9keVBvcyA9IHRoaXMuJGJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgdGhpcy5ib2R5VG9wID0gYm9keVBvcy50b3AgKyB3aW5kb3cucGFnZVlPZmZzZXQgLSA0NzsgLy8gI3dwYWRtaW5iYXIgKyBwYWRkaW5nLXRvcCAud3ByLXdyYXAgLSAxIC0gNDdcbn1cblxuXG5cbi8qXG4qIFBhZ2UgY2hhbmdlXG4qL1xuUGFnZU1hbmFnZXIucHJvdG90eXBlLmNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuXG4gICAgdmFyIHJlZlRoaXMgPSB0aGlzO1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPSByZWZUaGlzLmJvZHlUb3A7XG5cbiAgICAvLyBIaWRlIG90aGVyIHBhZ2VzXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLiRwYWdlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLiRwYWdlc1tpXS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuJG1lbnVJdGVtcy5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLiRtZW51SXRlbXNbaV0uY2xhc3NMaXN0LnJlbW92ZSgnaXNBY3RpdmUnKTtcbiAgICB9XG5cbiAgICAvLyBTaG93IGN1cnJlbnQgZGVmYXVsdCBwYWdlXG4gICAgdGhpcy4kcGFnZS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB0aGlzLiRzdWJtaXRCdXR0b24uc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG5cbiAgICBpZiAoIG51bGwgPT09IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCAnd3ByLXNob3ctc2lkZWJhcicgKSApIHtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oICd3cHItc2hvdy1zaWRlYmFyJywgJ29uJyApO1xuICAgIH1cblxuICAgIGlmICggJ29uJyA9PT0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dwci1zaG93LXNpZGViYXInKSApIHtcbiAgICAgICAgdGhpcy4kc2lkZWJhci5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJztcbiAgICB9IGVsc2UgaWYgKCAnb2ZmJyA9PT0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dwci1zaG93LXNpZGViYXInKSApIHtcbiAgICAgICAgdGhpcy4kc2lkZWJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjd3ByLWpzLXRpcHMnKS5yZW1vdmVBdHRyaWJ1dGUoICdjaGVja2VkJyApO1xuICAgIH1cblxuICAgIHRoaXMuJHRpcHMuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgdGhpcy4kbWVudUl0ZW0uY2xhc3NMaXN0LmFkZCgnaXNBY3RpdmUnKTtcbiAgICB0aGlzLiRzdWJtaXRCdXR0b24udmFsdWUgPSB0aGlzLmJ1dHRvblRleHQ7XG4gICAgdGhpcy4kY29udGVudC5jbGFzc0xpc3QuYWRkKCdpc05vdEZ1bGwnKTtcblxuXG4gICAgLy8gRXhjZXB0aW9uIGZvciBkYXNoYm9hcmRcbiAgICBpZih0aGlzLnBhZ2VJZCA9PSBcImRhc2hib2FyZFwiKXtcbiAgICAgICAgdGhpcy4kc2lkZWJhci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB0aGlzLiR0aXBzLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuJHN1Ym1pdEJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB0aGlzLiRjb250ZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2lzTm90RnVsbCcpO1xuICAgIH1cblxuICAgIC8vIEV4Y2VwdGlvbiBmb3IgYWRkb25zXG4gICAgaWYodGhpcy5wYWdlSWQgPT0gXCJhZGRvbnNcIil7XG4gICAgICAgIHRoaXMuJHN1Ym1pdEJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIC8vIEV4Y2VwdGlvbiBmb3IgZGF0YWJhc2VcbiAgICBpZih0aGlzLnBhZ2VJZCA9PSBcImRhdGFiYXNlXCIpe1xuICAgICAgICB0aGlzLiRzdWJtaXRCdXR0b24uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB9XG5cbiAgICAvLyBFeGNlcHRpb24gZm9yIHRvb2xzIGFuZCBhZGRvbnNcbiAgICBpZih0aGlzLnBhZ2VJZCA9PSBcInRvb2xzXCIgfHwgdGhpcy5wYWdlSWQgPT0gXCJhZGRvbnNcIil7XG4gICAgICAgIHRoaXMuJHN1Ym1pdEJ1dHRvbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2VJZCA9PSBcImltYWdpZnlcIikge1xuICAgICAgICB0aGlzLiRzaWRlYmFyLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIHRoaXMuJHRpcHMuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgdGhpcy4kc3VibWl0QnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnZUlkID09IFwidHV0b3JpYWxzXCIpIHtcbiAgICAgICAgdGhpcy4kc3VibWl0QnV0dG9uLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxufTtcbiIsIi8qZXNsaW50LWVudiBlczYqL1xuKCAoIGRvY3VtZW50LCB3aW5kb3cgKSA9PiB7XG5cdCd1c2Ugc3RyaWN0JztcblxuXHRkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCAnRE9NQ29udGVudExvYWRlZCcsICgpID0+IHtcblx0XHRkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCAnLndwci1yb2NrZXRjZG4tb3BlbicgKS5mb3JFYWNoKCAoIGVsICkgPT4ge1xuXHRcdFx0ZWwuYWRkRXZlbnRMaXN0ZW5lciggJ2NsaWNrJywgKCBlICkgPT4ge1xuXHRcdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHR9ICk7XG5cdFx0fSApO1xuXG5cdFx0bWF5YmVPcGVuTW9kYWwoKTtcblxuXHRcdE1pY3JvTW9kYWwuaW5pdCgge1xuXHRcdFx0ZGlzYWJsZVNjcm9sbDogdHJ1ZVxuXHRcdH0gKTtcblx0fSApO1xuXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCAnbG9hZCcsICgpID0+IHtcblx0XHRsZXQgb3BlbkNUQSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICcjd3ByLXJvY2tldGNkbi1vcGVuLWN0YScgKSxcblx0XHRcdGNsb3NlQ1RBID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggJyN3cHItcm9ja2V0Y2RuLWNsb3NlLWN0YScgKSxcblx0XHRcdHNtYWxsQ1RBID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggJyN3cHItcm9ja2V0Y2RuLWN0YS1zbWFsbCcgKSxcblx0XHRcdGJpZ0NUQSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICcjd3ByLXJvY2tldGNkbi1jdGEnICk7XG5cblx0XHRpZiAoIG51bGwgIT09IG9wZW5DVEEgJiYgbnVsbCAhPT0gc21hbGxDVEEgJiYgbnVsbCAhPT0gYmlnQ1RBICkge1xuXHRcdFx0b3BlbkNUQS5hZGRFdmVudExpc3RlbmVyKCAnY2xpY2snLCAoIGUgKSA9PiB7XG5cdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblxuXHRcdFx0XHRzbWFsbENUQS5jbGFzc0xpc3QuYWRkKCAnd3ByLWlzSGlkZGVuJyApO1xuXHRcdFx0XHRiaWdDVEEuY2xhc3NMaXN0LnJlbW92ZSggJ3dwci1pc0hpZGRlbicgKTtcblxuXHRcdFx0XHRzZW5kSFRUUFJlcXVlc3QoIGdldFBvc3REYXRhKCAnYmlnJyApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0aWYgKCBudWxsICE9PSBjbG9zZUNUQSAmJiBudWxsICE9PSBzbWFsbENUQSAmJiBudWxsICE9PSBiaWdDVEEgKSB7XG5cdFx0XHRjbG9zZUNUQS5hZGRFdmVudExpc3RlbmVyKCAnY2xpY2snLCAoIGUgKSA9PiB7XG5cdFx0XHRcdGUucHJldmVudERlZmF1bHQoKTtcblxuXHRcdFx0XHRzbWFsbENUQS5jbGFzc0xpc3QucmVtb3ZlKCAnd3ByLWlzSGlkZGVuJyApO1xuXHRcdFx0XHRiaWdDVEEuY2xhc3NMaXN0LmFkZCggJ3dwci1pc0hpZGRlbicgKTtcblxuXHRcdFx0XHRzZW5kSFRUUFJlcXVlc3QoIGdldFBvc3REYXRhKCAnc21hbGwnICkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRmdW5jdGlvbiBnZXRQb3N0RGF0YSggc3RhdHVzICkge1xuXHRcdFx0bGV0IHBvc3REYXRhID0gJyc7XG5cblx0XHRcdHBvc3REYXRhICs9ICdhY3Rpb249dG9nZ2xlX3JvY2tldGNkbl9jdGEnO1xuXHRcdFx0cG9zdERhdGEgKz0gJyZzdGF0dXM9JyArIHN0YXR1cztcblx0XHRcdHBvc3REYXRhICs9ICcmbm9uY2U9JyArIHJvY2tldF9hamF4X2RhdGEubm9uY2U7XG5cblx0XHRcdHJldHVybiBwb3N0RGF0YTtcblx0XHR9XG5cdH0gKTtcblxuXHR3aW5kb3cub25tZXNzYWdlID0gKCBlICkgPT4ge1xuXHRcdGNvbnN0IGlmcmFtZVVSTCA9IHJvY2tldF9hamF4X2RhdGEub3JpZ2luX3VybDtcblxuXHRcdGlmICggZS5vcmlnaW4gIT09IGlmcmFtZVVSTCApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRzZXRDRE5GcmFtZUhlaWdodCggZS5kYXRhICk7XG5cdFx0Y2xvc2VNb2RhbCggZS5kYXRhICk7XG5cdFx0dG9rZW5IYW5kbGVyKCBlLmRhdGEsIGlmcmFtZVVSTCApO1xuXHRcdHByb2Nlc3NTdGF0dXMoIGUuZGF0YSApO1xuXHRcdGVuYWJsZUNETiggZS5kYXRhLCBpZnJhbWVVUkwgKTtcblx0XHRkaXNhYmxlQ0ROKCBlLmRhdGEsIGlmcmFtZVVSTCApO1xuXHRcdHZhbGlkYXRlVG9rZW5BbmRDTkFNRSggZS5kYXRhICk7XG5cdH07XG5cblx0ZnVuY3Rpb24gbWF5YmVPcGVuTW9kYWwoKSB7XG5cdFx0bGV0IHBvc3REYXRhID0gJyc7XG5cblx0XHRwb3N0RGF0YSArPSAnYWN0aW9uPXJvY2tldGNkbl9wcm9jZXNzX3N0YXR1cyc7XG5cdFx0cG9zdERhdGEgKz0gJyZub25jZT0nICsgcm9ja2V0X2FqYXhfZGF0YS5ub25jZTtcblxuXHRcdGNvbnN0IHJlcXVlc3QgPSBzZW5kSFRUUFJlcXVlc3QoIHBvc3REYXRhICk7XG5cblx0XHRyZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcblx0XHRcdGlmICggcmVxdWVzdC5yZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FICYmIDIwMCA9PT0gcmVxdWVzdC5zdGF0dXMgKSB7XG5cdFx0XHRcdGxldCByZXNwb25zZVR4dCA9IEpTT04ucGFyc2UocmVxdWVzdC5yZXNwb25zZVRleHQpO1xuXG5cdFx0XHRcdGlmICggdHJ1ZSA9PT0gcmVzcG9uc2VUeHQuc3VjY2VzcyApIHtcblx0XHRcdFx0XHRNaWNyb01vZGFsLnNob3coICd3cHItcm9ja2V0Y2RuLW1vZGFsJyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdGZ1bmN0aW9uIGNsb3NlTW9kYWwoIGRhdGEgKSB7XG5cdFx0aWYgKCAhIGRhdGEuaGFzT3duUHJvcGVydHkoICdjZG5GcmFtZUNsb3NlJyApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdE1pY3JvTW9kYWwuY2xvc2UoICd3cHItcm9ja2V0Y2RuLW1vZGFsJyApO1xuXG5cdFx0bGV0IHBhZ2VzID0gWyAnaWZyYW1lLXBheW1lbnQtc3VjY2VzcycsICdpZnJhbWUtdW5zdWJzY3JpYmUtc3VjY2VzcycgXTtcblxuXHRcdGlmICggISBkYXRhLmhhc093blByb3BlcnR5KCAnY2RuX3BhZ2VfbWVzc2FnZScgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHBhZ2VzLmluZGV4T2YoIGRhdGEuY2RuX3BhZ2VfbWVzc2FnZSApID09PSAtMSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRkb2N1bWVudC5sb2NhdGlvbi5yZWxvYWQoKTtcblx0fVxuXG5cdGZ1bmN0aW9uIHByb2Nlc3NTdGF0dXMoIGRhdGEgKSB7XG5cdFx0aWYgKCAhIGRhdGEuaGFzT3duUHJvcGVydHkoICdyb2NrZXRjZG5fcHJvY2VzcycgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRsZXQgcG9zdERhdGEgPSAnJztcblxuXHRcdHBvc3REYXRhICs9ICdhY3Rpb249cm9ja2V0Y2RuX3Byb2Nlc3Nfc2V0Jztcblx0XHRwb3N0RGF0YSArPSAnJnN0YXR1cz0nICsgZGF0YS5yb2NrZXRjZG5fcHJvY2Vzcztcblx0XHRwb3N0RGF0YSArPSAnJm5vbmNlPScgKyByb2NrZXRfYWpheF9kYXRhLm5vbmNlO1xuXG5cdFx0c2VuZEhUVFBSZXF1ZXN0KCBwb3N0RGF0YSApO1xuXHR9XG5cblx0ZnVuY3Rpb24gZW5hYmxlQ0ROKCBkYXRhLCBpZnJhbWVVUkwgKSB7XG5cdFx0bGV0IGlmcmFtZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoICcjcm9ja2V0Y2RuLWlmcmFtZScgKS5jb250ZW50V2luZG93O1xuXG5cdFx0aWYgKCAhIGRhdGEuaGFzT3duUHJvcGVydHkoICdyb2NrZXRjZG5fdXJsJyApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBwb3N0RGF0YSA9ICcnO1xuXG5cdFx0cG9zdERhdGEgKz0gJ2FjdGlvbj1yb2NrZXRjZG5fZW5hYmxlJztcblx0XHRwb3N0RGF0YSArPSAnJmNkbl91cmw9JyArIGRhdGEucm9ja2V0Y2RuX3VybDtcblx0XHRwb3N0RGF0YSArPSAnJm5vbmNlPScgKyByb2NrZXRfYWpheF9kYXRhLm5vbmNlO1xuXG5cdFx0Y29uc3QgcmVxdWVzdCA9IHNlbmRIVFRQUmVxdWVzdCggcG9zdERhdGEgKTtcblxuXHRcdHJlcXVlc3Qub25yZWFkeXN0YXRlY2hhbmdlID0gKCkgPT4ge1xuXHRcdFx0aWYgKCByZXF1ZXN0LnJlYWR5U3RhdGUgPT09IFhNTEh0dHBSZXF1ZXN0LkRPTkUgJiYgMjAwID09PSByZXF1ZXN0LnN0YXR1cyApIHtcblx0XHRcdFx0bGV0IHJlc3BvbnNlVHh0ID0gSlNPTi5wYXJzZShyZXF1ZXN0LnJlc3BvbnNlVGV4dCk7XG5cdFx0XHRcdGlmcmFtZS5wb3N0TWVzc2FnZShcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQnc3VjY2Vzcyc6IHJlc3BvbnNlVHh0LnN1Y2Nlc3MsXG5cdFx0XHRcdFx0XHQnZGF0YSc6IHJlc3BvbnNlVHh0LmRhdGEsXG5cdFx0XHRcdFx0XHQncm9ja2V0Y2RuJzogdHJ1ZVxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0aWZyYW1lVVJMXG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdGZ1bmN0aW9uIGRpc2FibGVDRE4oIGRhdGEsIGlmcmFtZVVSTCApIHtcblx0XHRsZXQgaWZyYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvciggJyNyb2NrZXRjZG4taWZyYW1lJyApLmNvbnRlbnRXaW5kb3c7XG5cblx0XHRpZiAoICEgZGF0YS5oYXNPd25Qcm9wZXJ0eSggJ3JvY2tldGNkbl9kaXNhYmxlJyApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBwb3N0RGF0YSA9ICcnO1xuXG5cdFx0cG9zdERhdGEgKz0gJ2FjdGlvbj1yb2NrZXRjZG5fZGlzYWJsZSc7XG5cdFx0cG9zdERhdGEgKz0gJyZub25jZT0nICsgcm9ja2V0X2FqYXhfZGF0YS5ub25jZTtcblxuXHRcdGNvbnN0IHJlcXVlc3QgPSBzZW5kSFRUUFJlcXVlc3QoIHBvc3REYXRhICk7XG5cblx0XHRyZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcblx0XHRcdGlmICggcmVxdWVzdC5yZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FICYmIDIwMCA9PT0gcmVxdWVzdC5zdGF0dXMgKSB7XG5cdFx0XHRcdGxldCByZXNwb25zZVR4dCA9IEpTT04ucGFyc2UocmVxdWVzdC5yZXNwb25zZVRleHQpO1xuXHRcdFx0XHRpZnJhbWUucG9zdE1lc3NhZ2UoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0J3N1Y2Nlc3MnOiByZXNwb25zZVR4dC5zdWNjZXNzLFxuXHRcdFx0XHRcdFx0J2RhdGEnOiByZXNwb25zZVR4dC5kYXRhLFxuXHRcdFx0XHRcdFx0J3JvY2tldGNkbic6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGlmcmFtZVVSTFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHRmdW5jdGlvbiBzZW5kSFRUUFJlcXVlc3QoIHBvc3REYXRhICkge1xuXHRcdGNvbnN0IGh0dHBSZXF1ZXN0ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cblx0XHRodHRwUmVxdWVzdC5vcGVuKCAnUE9TVCcsIGFqYXh1cmwgKTtcblx0XHRodHRwUmVxdWVzdC5zZXRSZXF1ZXN0SGVhZGVyKCAnQ29udGVudC1UeXBlJywgJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgKTtcblx0XHRodHRwUmVxdWVzdC5zZW5kKCBwb3N0RGF0YSApO1xuXG5cdFx0cmV0dXJuIGh0dHBSZXF1ZXN0O1xuXHR9XG5cblx0ZnVuY3Rpb24gc2V0Q0RORnJhbWVIZWlnaHQoIGRhdGEgKSB7XG5cdFx0aWYgKCAhIGRhdGEuaGFzT3duUHJvcGVydHkoICdjZG5GcmFtZUhlaWdodCcgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRkb2N1bWVudC5nZXRFbGVtZW50QnlJZCggJ3JvY2tldGNkbi1pZnJhbWUnICkuc3R5bGUuaGVpZ2h0ID0gYCR7IGRhdGEuY2RuRnJhbWVIZWlnaHQgfXB4YDtcblx0fVxuXG5cdGZ1bmN0aW9uIHRva2VuSGFuZGxlciggZGF0YSwgaWZyYW1lVVJMICkge1xuXHRcdGxldCBpZnJhbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCAnI3JvY2tldGNkbi1pZnJhbWUnICkuY29udGVudFdpbmRvdztcblxuXHRcdGlmICggISBkYXRhLmhhc093blByb3BlcnR5KCAncm9ja2V0Y2RuX3Rva2VuJyApICkge1xuXHRcdFx0bGV0IGRhdGEgPSB7cHJvY2VzczpcInN1YnNjcmliZVwiLCBtZXNzYWdlOlwidG9rZW5fbm90X3JlY2VpdmVkXCJ9O1xuXHRcdFx0aWZyYW1lLnBvc3RNZXNzYWdlKFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0J3N1Y2Nlc3MnOiBmYWxzZSxcblx0XHRcdFx0XHQnZGF0YSc6IGRhdGEsXG5cdFx0XHRcdFx0J3JvY2tldGNkbic6IHRydWVcblx0XHRcdFx0fSxcblx0XHRcdFx0aWZyYW1lVVJMXG5cdFx0XHQpO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBwb3N0RGF0YSA9ICcnO1xuXG5cdFx0cG9zdERhdGEgKz0gJ2FjdGlvbj1zYXZlX3JvY2tldGNkbl90b2tlbic7XG5cdFx0cG9zdERhdGEgKz0gJyZ2YWx1ZT0nICsgZGF0YS5yb2NrZXRjZG5fdG9rZW47XG5cdFx0cG9zdERhdGEgKz0gJyZub25jZT0nICsgcm9ja2V0X2FqYXhfZGF0YS5ub25jZTtcblxuXHRcdGNvbnN0IHJlcXVlc3QgPSBzZW5kSFRUUFJlcXVlc3QoIHBvc3REYXRhICk7XG5cblx0XHRyZXF1ZXN0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9ICgpID0+IHtcblx0XHRcdGlmICggcmVxdWVzdC5yZWFkeVN0YXRlID09PSBYTUxIdHRwUmVxdWVzdC5ET05FICYmIDIwMCA9PT0gcmVxdWVzdC5zdGF0dXMgKSB7XG5cdFx0XHRcdGxldCByZXNwb25zZVR4dCA9IEpTT04ucGFyc2UocmVxdWVzdC5yZXNwb25zZVRleHQpO1xuXHRcdFx0XHRpZnJhbWUucG9zdE1lc3NhZ2UoXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0J3N1Y2Nlc3MnOiByZXNwb25zZVR4dC5zdWNjZXNzLFxuXHRcdFx0XHRcdFx0J2RhdGEnOiByZXNwb25zZVR4dC5kYXRhLFxuXHRcdFx0XHRcdFx0J3JvY2tldGNkbic6IHRydWVcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGlmcmFtZVVSTFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdH1cblxuXHRmdW5jdGlvbiB2YWxpZGF0ZVRva2VuQW5kQ05BTUUoIGRhdGEgKSB7XG5cdFx0aWYgKCAhIGRhdGEuaGFzT3duUHJvcGVydHkoICdyb2NrZXRjZG5fdmFsaWRhdGVfdG9rZW4nICkgfHwgISBkYXRhLmhhc093blByb3BlcnR5KCAncm9ja2V0Y2RuX3ZhbGlkYXRlX2NuYW1lJyApICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGxldCBwb3N0RGF0YSA9ICcnO1xuXG5cdFx0cG9zdERhdGEgKz0gJ2FjdGlvbj1yb2NrZXRjZG5fdmFsaWRhdGVfdG9rZW5fY25hbWUnO1xuXHRcdHBvc3REYXRhICs9ICcmY2RuX3VybD0nICsgZGF0YS5yb2NrZXRjZG5fdmFsaWRhdGVfY25hbWU7XG5cdFx0cG9zdERhdGEgKz0gJyZjZG5fdG9rZW49JyArIGRhdGEucm9ja2V0Y2RuX3ZhbGlkYXRlX3Rva2VuO1xuXHRcdHBvc3REYXRhICs9ICcmbm9uY2U9JyArIHJvY2tldF9hamF4X2RhdGEubm9uY2U7XG5cblx0XHRjb25zdCByZXF1ZXN0ID0gc2VuZEhUVFBSZXF1ZXN0KCBwb3N0RGF0YSApO1xuXHR9XG59ICkoIGRvY3VtZW50LCB3aW5kb3cgKTtcbiIsIi8qIVxyXG4gKiBWRVJTSU9OOiAxLjEyLjFcclxuICogREFURTogMjAxNC0wNi0yNlxyXG4gKiBVUERBVEVTIEFORCBET0NTIEFUOiBodHRwOi8vd3d3LmdyZWVuc29jay5jb21cclxuICpcclxuICogQGxpY2Vuc2UgQ29weXJpZ2h0IChjKSAyMDA4LTIwMTQsIEdyZWVuU29jay4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuICogVGhpcyB3b3JrIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGF0IGh0dHA6Ly93d3cuZ3JlZW5zb2NrLmNvbS90ZXJtc19vZl91c2UuaHRtbCBvciBmb3JcclxuICogQ2x1YiBHcmVlblNvY2sgbWVtYmVycywgdGhlIHNvZnR3YXJlIGFncmVlbWVudCB0aGF0IHdhcyBpc3N1ZWQgd2l0aCB5b3VyIG1lbWJlcnNoaXAuXHJcbiAqIFxyXG4gKiBAYXV0aG9yOiBKYWNrIERveWxlLCBqYWNrQGdyZWVuc29jay5jb21cclxuICovXHJcbih3aW5kb3cuX2dzUXVldWV8fCh3aW5kb3cuX2dzUXVldWU9W10pKS5wdXNoKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7d2luZG93Ll9nc0RlZmluZShcIlRpbWVsaW5lTGl0ZVwiLFtcImNvcmUuQW5pbWF0aW9uXCIsXCJjb3JlLlNpbXBsZVRpbWVsaW5lXCIsXCJUd2VlbkxpdGVcIl0sZnVuY3Rpb24odCxlLGkpe3ZhciBzPWZ1bmN0aW9uKHQpe2UuY2FsbCh0aGlzLHQpLHRoaXMuX2xhYmVscz17fSx0aGlzLmF1dG9SZW1vdmVDaGlsZHJlbj10aGlzLnZhcnMuYXV0b1JlbW92ZUNoaWxkcmVuPT09ITAsdGhpcy5zbW9vdGhDaGlsZFRpbWluZz10aGlzLnZhcnMuc21vb3RoQ2hpbGRUaW1pbmc9PT0hMCx0aGlzLl9zb3J0Q2hpbGRyZW49ITAsdGhpcy5fb25VcGRhdGU9dGhpcy52YXJzLm9uVXBkYXRlO3ZhciBpLHMscj10aGlzLnZhcnM7Zm9yKHMgaW4gcilpPXJbc10sYShpKSYmLTEhPT1pLmpvaW4oXCJcIikuaW5kZXhPZihcIntzZWxmfVwiKSYmKHJbc109dGhpcy5fc3dhcFNlbGZJblBhcmFtcyhpKSk7YShyLnR3ZWVucykmJnRoaXMuYWRkKHIudHdlZW5zLDAsci5hbGlnbixyLnN0YWdnZXIpfSxyPTFlLTEwLG49aS5faW50ZXJuYWxzLmlzU2VsZWN0b3IsYT1pLl9pbnRlcm5hbHMuaXNBcnJheSxvPVtdLGg9d2luZG93Ll9nc0RlZmluZS5nbG9iYWxzLGw9ZnVuY3Rpb24odCl7dmFyIGUsaT17fTtmb3IoZSBpbiB0KWlbZV09dFtlXTtyZXR1cm4gaX0sXz1mdW5jdGlvbih0LGUsaSxzKXt0Ll90aW1lbGluZS5wYXVzZSh0Ll9zdGFydFRpbWUpLGUmJmUuYXBwbHkoc3x8dC5fdGltZWxpbmUsaXx8byl9LHU9by5zbGljZSxmPXMucHJvdG90eXBlPW5ldyBlO3JldHVybiBzLnZlcnNpb249XCIxLjEyLjFcIixmLmNvbnN0cnVjdG9yPXMsZi5raWxsKCkuX2djPSExLGYudG89ZnVuY3Rpb24odCxlLHMscil7dmFyIG49cy5yZXBlYXQmJmguVHdlZW5NYXh8fGk7cmV0dXJuIGU/dGhpcy5hZGQobmV3IG4odCxlLHMpLHIpOnRoaXMuc2V0KHQscyxyKX0sZi5mcm9tPWZ1bmN0aW9uKHQsZSxzLHIpe3JldHVybiB0aGlzLmFkZCgocy5yZXBlYXQmJmguVHdlZW5NYXh8fGkpLmZyb20odCxlLHMpLHIpfSxmLmZyb21Ubz1mdW5jdGlvbih0LGUscyxyLG4pe3ZhciBhPXIucmVwZWF0JiZoLlR3ZWVuTWF4fHxpO3JldHVybiBlP3RoaXMuYWRkKGEuZnJvbVRvKHQsZSxzLHIpLG4pOnRoaXMuc2V0KHQscixuKX0sZi5zdGFnZ2VyVG89ZnVuY3Rpb24odCxlLHIsYSxvLGgsXyxmKXt2YXIgcCxjPW5ldyBzKHtvbkNvbXBsZXRlOmgsb25Db21wbGV0ZVBhcmFtczpfLG9uQ29tcGxldGVTY29wZTpmLHNtb290aENoaWxkVGltaW5nOnRoaXMuc21vb3RoQ2hpbGRUaW1pbmd9KTtmb3IoXCJzdHJpbmdcIj09dHlwZW9mIHQmJih0PWkuc2VsZWN0b3IodCl8fHQpLG4odCkmJih0PXUuY2FsbCh0LDApKSxhPWF8fDAscD0wO3QubGVuZ3RoPnA7cCsrKXIuc3RhcnRBdCYmKHIuc3RhcnRBdD1sKHIuc3RhcnRBdCkpLGMudG8odFtwXSxlLGwocikscCphKTtyZXR1cm4gdGhpcy5hZGQoYyxvKX0sZi5zdGFnZ2VyRnJvbT1mdW5jdGlvbih0LGUsaSxzLHIsbixhLG8pe3JldHVybiBpLmltbWVkaWF0ZVJlbmRlcj0wIT1pLmltbWVkaWF0ZVJlbmRlcixpLnJ1bkJhY2t3YXJkcz0hMCx0aGlzLnN0YWdnZXJUbyh0LGUsaSxzLHIsbixhLG8pfSxmLnN0YWdnZXJGcm9tVG89ZnVuY3Rpb24odCxlLGkscyxyLG4sYSxvLGgpe3JldHVybiBzLnN0YXJ0QXQ9aSxzLmltbWVkaWF0ZVJlbmRlcj0wIT1zLmltbWVkaWF0ZVJlbmRlciYmMCE9aS5pbW1lZGlhdGVSZW5kZXIsdGhpcy5zdGFnZ2VyVG8odCxlLHMscixuLGEsbyxoKX0sZi5jYWxsPWZ1bmN0aW9uKHQsZSxzLHIpe3JldHVybiB0aGlzLmFkZChpLmRlbGF5ZWRDYWxsKDAsdCxlLHMpLHIpfSxmLnNldD1mdW5jdGlvbih0LGUscyl7cmV0dXJuIHM9dGhpcy5fcGFyc2VUaW1lT3JMYWJlbChzLDAsITApLG51bGw9PWUuaW1tZWRpYXRlUmVuZGVyJiYoZS5pbW1lZGlhdGVSZW5kZXI9cz09PXRoaXMuX3RpbWUmJiF0aGlzLl9wYXVzZWQpLHRoaXMuYWRkKG5ldyBpKHQsMCxlKSxzKX0scy5leHBvcnRSb290PWZ1bmN0aW9uKHQsZSl7dD10fHx7fSxudWxsPT10LnNtb290aENoaWxkVGltaW5nJiYodC5zbW9vdGhDaGlsZFRpbWluZz0hMCk7dmFyIHIsbixhPW5ldyBzKHQpLG89YS5fdGltZWxpbmU7Zm9yKG51bGw9PWUmJihlPSEwKSxvLl9yZW1vdmUoYSwhMCksYS5fc3RhcnRUaW1lPTAsYS5fcmF3UHJldlRpbWU9YS5fdGltZT1hLl90b3RhbFRpbWU9by5fdGltZSxyPW8uX2ZpcnN0O3I7KW49ci5fbmV4dCxlJiZyIGluc3RhbmNlb2YgaSYmci50YXJnZXQ9PT1yLnZhcnMub25Db21wbGV0ZXx8YS5hZGQocixyLl9zdGFydFRpbWUtci5fZGVsYXkpLHI9bjtyZXR1cm4gby5hZGQoYSwwKSxhfSxmLmFkZD1mdW5jdGlvbihyLG4sbyxoKXt2YXIgbCxfLHUsZixwLGM7aWYoXCJudW1iZXJcIiE9dHlwZW9mIG4mJihuPXRoaXMuX3BhcnNlVGltZU9yTGFiZWwobiwwLCEwLHIpKSwhKHIgaW5zdGFuY2VvZiB0KSl7aWYociBpbnN0YW5jZW9mIEFycmF5fHxyJiZyLnB1c2gmJmEocikpe2ZvcihvPW98fFwibm9ybWFsXCIsaD1ofHwwLGw9bixfPXIubGVuZ3RoLHU9MDtfPnU7dSsrKWEoZj1yW3VdKSYmKGY9bmV3IHMoe3R3ZWVuczpmfSkpLHRoaXMuYWRkKGYsbCksXCJzdHJpbmdcIiE9dHlwZW9mIGYmJlwiZnVuY3Rpb25cIiE9dHlwZW9mIGYmJihcInNlcXVlbmNlXCI9PT1vP2w9Zi5fc3RhcnRUaW1lK2YudG90YWxEdXJhdGlvbigpL2YuX3RpbWVTY2FsZTpcInN0YXJ0XCI9PT1vJiYoZi5fc3RhcnRUaW1lLT1mLmRlbGF5KCkpKSxsKz1oO3JldHVybiB0aGlzLl91bmNhY2hlKCEwKX1pZihcInN0cmluZ1wiPT10eXBlb2YgcilyZXR1cm4gdGhpcy5hZGRMYWJlbChyLG4pO2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHIpdGhyb3dcIkNhbm5vdCBhZGQgXCIrcitcIiBpbnRvIHRoZSB0aW1lbGluZTsgaXQgaXMgbm90IGEgdHdlZW4sIHRpbWVsaW5lLCBmdW5jdGlvbiwgb3Igc3RyaW5nLlwiO3I9aS5kZWxheWVkQ2FsbCgwLHIpfWlmKGUucHJvdG90eXBlLmFkZC5jYWxsKHRoaXMscixuKSwodGhpcy5fZ2N8fHRoaXMuX3RpbWU9PT10aGlzLl9kdXJhdGlvbikmJiF0aGlzLl9wYXVzZWQmJnRoaXMuX2R1cmF0aW9uPHRoaXMuZHVyYXRpb24oKSlmb3IocD10aGlzLGM9cC5yYXdUaW1lKCk+ci5fc3RhcnRUaW1lO3AuX3RpbWVsaW5lOyljJiZwLl90aW1lbGluZS5zbW9vdGhDaGlsZFRpbWluZz9wLnRvdGFsVGltZShwLl90b3RhbFRpbWUsITApOnAuX2djJiZwLl9lbmFibGVkKCEwLCExKSxwPXAuX3RpbWVsaW5lO3JldHVybiB0aGlzfSxmLnJlbW92ZT1mdW5jdGlvbihlKXtpZihlIGluc3RhbmNlb2YgdClyZXR1cm4gdGhpcy5fcmVtb3ZlKGUsITEpO2lmKGUgaW5zdGFuY2VvZiBBcnJheXx8ZSYmZS5wdXNoJiZhKGUpKXtmb3IodmFyIGk9ZS5sZW5ndGg7LS1pPi0xOyl0aGlzLnJlbW92ZShlW2ldKTtyZXR1cm4gdGhpc31yZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZT90aGlzLnJlbW92ZUxhYmVsKGUpOnRoaXMua2lsbChudWxsLGUpfSxmLl9yZW1vdmU9ZnVuY3Rpb24odCxpKXtlLnByb3RvdHlwZS5fcmVtb3ZlLmNhbGwodGhpcyx0LGkpO3ZhciBzPXRoaXMuX2xhc3Q7cmV0dXJuIHM/dGhpcy5fdGltZT5zLl9zdGFydFRpbWUrcy5fdG90YWxEdXJhdGlvbi9zLl90aW1lU2NhbGUmJih0aGlzLl90aW1lPXRoaXMuZHVyYXRpb24oKSx0aGlzLl90b3RhbFRpbWU9dGhpcy5fdG90YWxEdXJhdGlvbik6dGhpcy5fdGltZT10aGlzLl90b3RhbFRpbWU9dGhpcy5fZHVyYXRpb249dGhpcy5fdG90YWxEdXJhdGlvbj0wLHRoaXN9LGYuYXBwZW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuYWRkKHQsdGhpcy5fcGFyc2VUaW1lT3JMYWJlbChudWxsLGUsITAsdCkpfSxmLmluc2VydD1mLmluc2VydE11bHRpcGxlPWZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiB0aGlzLmFkZCh0LGV8fDAsaSxzKX0sZi5hcHBlbmRNdWx0aXBsZT1mdW5jdGlvbih0LGUsaSxzKXtyZXR1cm4gdGhpcy5hZGQodCx0aGlzLl9wYXJzZVRpbWVPckxhYmVsKG51bGwsZSwhMCx0KSxpLHMpfSxmLmFkZExhYmVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xhYmVsc1t0XT10aGlzLl9wYXJzZVRpbWVPckxhYmVsKGUpLHRoaXN9LGYuYWRkUGF1c2U9ZnVuY3Rpb24odCxlLGkscyl7cmV0dXJuIHRoaXMuY2FsbChfLFtcIntzZWxmfVwiLGUsaSxzXSx0aGlzLHQpfSxmLnJlbW92ZUxhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdGhpcy5fbGFiZWxzW3RdLHRoaXN9LGYuZ2V0TGFiZWxUaW1lPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT10aGlzLl9sYWJlbHNbdF0/dGhpcy5fbGFiZWxzW3RdOi0xfSxmLl9wYXJzZVRpbWVPckxhYmVsPWZ1bmN0aW9uKGUsaSxzLHIpe3ZhciBuO2lmKHIgaW5zdGFuY2VvZiB0JiZyLnRpbWVsaW5lPT09dGhpcyl0aGlzLnJlbW92ZShyKTtlbHNlIGlmKHImJihyIGluc3RhbmNlb2YgQXJyYXl8fHIucHVzaCYmYShyKSkpZm9yKG49ci5sZW5ndGg7LS1uPi0xOylyW25daW5zdGFuY2VvZiB0JiZyW25dLnRpbWVsaW5lPT09dGhpcyYmdGhpcy5yZW1vdmUocltuXSk7aWYoXCJzdHJpbmdcIj09dHlwZW9mIGkpcmV0dXJuIHRoaXMuX3BhcnNlVGltZU9yTGFiZWwoaSxzJiZcIm51bWJlclwiPT10eXBlb2YgZSYmbnVsbD09dGhpcy5fbGFiZWxzW2ldP2UtdGhpcy5kdXJhdGlvbigpOjAscyk7aWYoaT1pfHwwLFwic3RyaW5nXCIhPXR5cGVvZiBlfHwhaXNOYU4oZSkmJm51bGw9PXRoaXMuX2xhYmVsc1tlXSludWxsPT1lJiYoZT10aGlzLmR1cmF0aW9uKCkpO2Vsc2V7aWYobj1lLmluZGV4T2YoXCI9XCIpLC0xPT09bilyZXR1cm4gbnVsbD09dGhpcy5fbGFiZWxzW2VdP3M/dGhpcy5fbGFiZWxzW2VdPXRoaXMuZHVyYXRpb24oKStpOmk6dGhpcy5fbGFiZWxzW2VdK2k7aT1wYXJzZUludChlLmNoYXJBdChuLTEpK1wiMVwiLDEwKSpOdW1iZXIoZS5zdWJzdHIobisxKSksZT1uPjE/dGhpcy5fcGFyc2VUaW1lT3JMYWJlbChlLnN1YnN0cigwLG4tMSksMCxzKTp0aGlzLmR1cmF0aW9uKCl9cmV0dXJuIE51bWJlcihlKStpfSxmLnNlZWs9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50b3RhbFRpbWUoXCJudW1iZXJcIj09dHlwZW9mIHQ/dDp0aGlzLl9wYXJzZVRpbWVPckxhYmVsKHQpLGUhPT0hMSl9LGYuc3RvcD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnBhdXNlZCghMCl9LGYuZ290b0FuZFBsYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wbGF5KHQsZSl9LGYuZ290b0FuZFN0b3A9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5wYXVzZSh0LGUpfSxmLnJlbmRlcj1mdW5jdGlvbih0LGUsaSl7dGhpcy5fZ2MmJnRoaXMuX2VuYWJsZWQoITAsITEpO3ZhciBzLG4sYSxoLGwsXz10aGlzLl9kaXJ0eT90aGlzLnRvdGFsRHVyYXRpb24oKTp0aGlzLl90b3RhbER1cmF0aW9uLHU9dGhpcy5fdGltZSxmPXRoaXMuX3N0YXJ0VGltZSxwPXRoaXMuX3RpbWVTY2FsZSxjPXRoaXMuX3BhdXNlZDtpZih0Pj1fPyh0aGlzLl90b3RhbFRpbWU9dGhpcy5fdGltZT1fLHRoaXMuX3JldmVyc2VkfHx0aGlzLl9oYXNQYXVzZWRDaGlsZCgpfHwobj0hMCxoPVwib25Db21wbGV0ZVwiLDA9PT10aGlzLl9kdXJhdGlvbiYmKDA9PT10fHwwPnRoaXMuX3Jhd1ByZXZUaW1lfHx0aGlzLl9yYXdQcmV2VGltZT09PXIpJiZ0aGlzLl9yYXdQcmV2VGltZSE9PXQmJnRoaXMuX2ZpcnN0JiYobD0hMCx0aGlzLl9yYXdQcmV2VGltZT5yJiYoaD1cIm9uUmV2ZXJzZUNvbXBsZXRlXCIpKSksdGhpcy5fcmF3UHJldlRpbWU9dGhpcy5fZHVyYXRpb258fCFlfHx0fHx0aGlzLl9yYXdQcmV2VGltZT09PXQ/dDpyLHQ9XysxZS00KToxZS03PnQ/KHRoaXMuX3RvdGFsVGltZT10aGlzLl90aW1lPTAsKDAhPT11fHwwPT09dGhpcy5fZHVyYXRpb24mJnRoaXMuX3Jhd1ByZXZUaW1lIT09ciYmKHRoaXMuX3Jhd1ByZXZUaW1lPjB8fDA+dCYmdGhpcy5fcmF3UHJldlRpbWU+PTApKSYmKGg9XCJvblJldmVyc2VDb21wbGV0ZVwiLG49dGhpcy5fcmV2ZXJzZWQpLDA+dD8odGhpcy5fYWN0aXZlPSExLDA9PT10aGlzLl9kdXJhdGlvbiYmdGhpcy5fcmF3UHJldlRpbWU+PTAmJnRoaXMuX2ZpcnN0JiYobD0hMCksdGhpcy5fcmF3UHJldlRpbWU9dCk6KHRoaXMuX3Jhd1ByZXZUaW1lPXRoaXMuX2R1cmF0aW9ufHwhZXx8dHx8dGhpcy5fcmF3UHJldlRpbWU9PT10P3Q6cix0PTAsdGhpcy5faW5pdHRlZHx8KGw9ITApKSk6dGhpcy5fdG90YWxUaW1lPXRoaXMuX3RpbWU9dGhpcy5fcmF3UHJldlRpbWU9dCx0aGlzLl90aW1lIT09dSYmdGhpcy5fZmlyc3R8fGl8fGwpe2lmKHRoaXMuX2luaXR0ZWR8fCh0aGlzLl9pbml0dGVkPSEwKSx0aGlzLl9hY3RpdmV8fCF0aGlzLl9wYXVzZWQmJnRoaXMuX3RpbWUhPT11JiZ0PjAmJih0aGlzLl9hY3RpdmU9ITApLDA9PT11JiZ0aGlzLnZhcnMub25TdGFydCYmMCE9PXRoaXMuX3RpbWUmJihlfHx0aGlzLnZhcnMub25TdGFydC5hcHBseSh0aGlzLnZhcnMub25TdGFydFNjb3BlfHx0aGlzLHRoaXMudmFycy5vblN0YXJ0UGFyYW1zfHxvKSksdGhpcy5fdGltZT49dSlmb3Iocz10aGlzLl9maXJzdDtzJiYoYT1zLl9uZXh0LCF0aGlzLl9wYXVzZWR8fGMpOykocy5fYWN0aXZlfHxzLl9zdGFydFRpbWU8PXRoaXMuX3RpbWUmJiFzLl9wYXVzZWQmJiFzLl9nYykmJihzLl9yZXZlcnNlZD9zLnJlbmRlcigocy5fZGlydHk/cy50b3RhbER1cmF0aW9uKCk6cy5fdG90YWxEdXJhdGlvbiktKHQtcy5fc3RhcnRUaW1lKSpzLl90aW1lU2NhbGUsZSxpKTpzLnJlbmRlcigodC1zLl9zdGFydFRpbWUpKnMuX3RpbWVTY2FsZSxlLGkpKSxzPWE7ZWxzZSBmb3Iocz10aGlzLl9sYXN0O3MmJihhPXMuX3ByZXYsIXRoaXMuX3BhdXNlZHx8Yyk7KShzLl9hY3RpdmV8fHU+PXMuX3N0YXJ0VGltZSYmIXMuX3BhdXNlZCYmIXMuX2djKSYmKHMuX3JldmVyc2VkP3MucmVuZGVyKChzLl9kaXJ0eT9zLnRvdGFsRHVyYXRpb24oKTpzLl90b3RhbER1cmF0aW9uKS0odC1zLl9zdGFydFRpbWUpKnMuX3RpbWVTY2FsZSxlLGkpOnMucmVuZGVyKCh0LXMuX3N0YXJ0VGltZSkqcy5fdGltZVNjYWxlLGUsaSkpLHM9YTt0aGlzLl9vblVwZGF0ZSYmKGV8fHRoaXMuX29uVXBkYXRlLmFwcGx5KHRoaXMudmFycy5vblVwZGF0ZVNjb3BlfHx0aGlzLHRoaXMudmFycy5vblVwZGF0ZVBhcmFtc3x8bykpLGgmJih0aGlzLl9nY3x8KGY9PT10aGlzLl9zdGFydFRpbWV8fHAhPT10aGlzLl90aW1lU2NhbGUpJiYoMD09PXRoaXMuX3RpbWV8fF8+PXRoaXMudG90YWxEdXJhdGlvbigpKSYmKG4mJih0aGlzLl90aW1lbGluZS5hdXRvUmVtb3ZlQ2hpbGRyZW4mJnRoaXMuX2VuYWJsZWQoITEsITEpLHRoaXMuX2FjdGl2ZT0hMSksIWUmJnRoaXMudmFyc1toXSYmdGhpcy52YXJzW2hdLmFwcGx5KHRoaXMudmFyc1toK1wiU2NvcGVcIl18fHRoaXMsdGhpcy52YXJzW2grXCJQYXJhbXNcIl18fG8pKSl9fSxmLl9oYXNQYXVzZWRDaGlsZD1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl9maXJzdDt0Oyl7aWYodC5fcGF1c2VkfHx0IGluc3RhbmNlb2YgcyYmdC5faGFzUGF1c2VkQ2hpbGQoKSlyZXR1cm4hMDt0PXQuX25leHR9cmV0dXJuITF9LGYuZ2V0Q2hpbGRyZW49ZnVuY3Rpb24odCxlLHMscil7cj1yfHwtOTk5OTk5OTk5OTtmb3IodmFyIG49W10sYT10aGlzLl9maXJzdCxvPTA7YTspcj5hLl9zdGFydFRpbWV8fChhIGluc3RhbmNlb2YgaT9lIT09ITEmJihuW28rK109YSk6KHMhPT0hMSYmKG5bbysrXT1hKSx0IT09ITEmJihuPW4uY29uY2F0KGEuZ2V0Q2hpbGRyZW4oITAsZSxzKSksbz1uLmxlbmd0aCkpKSxhPWEuX25leHQ7cmV0dXJuIG59LGYuZ2V0VHdlZW5zT2Y9ZnVuY3Rpb24odCxlKXt2YXIgcyxyLG49dGhpcy5fZ2MsYT1bXSxvPTA7Zm9yKG4mJnRoaXMuX2VuYWJsZWQoITAsITApLHM9aS5nZXRUd2VlbnNPZih0KSxyPXMubGVuZ3RoOy0tcj4tMTspKHNbcl0udGltZWxpbmU9PT10aGlzfHxlJiZ0aGlzLl9jb250YWlucyhzW3JdKSkmJihhW28rK109c1tyXSk7cmV0dXJuIG4mJnRoaXMuX2VuYWJsZWQoITEsITApLGF9LGYuX2NvbnRhaW5zPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnRpbWVsaW5lO2U7KXtpZihlPT09dGhpcylyZXR1cm4hMDtlPWUudGltZWxpbmV9cmV0dXJuITF9LGYuc2hpZnRDaGlsZHJlbj1mdW5jdGlvbih0LGUsaSl7aT1pfHwwO2Zvcih2YXIgcyxyPXRoaXMuX2ZpcnN0LG49dGhpcy5fbGFiZWxzO3I7KXIuX3N0YXJ0VGltZT49aSYmKHIuX3N0YXJ0VGltZSs9dCkscj1yLl9uZXh0O2lmKGUpZm9yKHMgaW4gbiluW3NdPj1pJiYobltzXSs9dCk7cmV0dXJuIHRoaXMuX3VuY2FjaGUoITApfSxmLl9raWxsPWZ1bmN0aW9uKHQsZSl7aWYoIXQmJiFlKXJldHVybiB0aGlzLl9lbmFibGVkKCExLCExKTtmb3IodmFyIGk9ZT90aGlzLmdldFR3ZWVuc09mKGUpOnRoaXMuZ2V0Q2hpbGRyZW4oITAsITAsITEpLHM9aS5sZW5ndGgscj0hMTstLXM+LTE7KWlbc10uX2tpbGwodCxlKSYmKHI9ITApO3JldHVybiByfSxmLmNsZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0Q2hpbGRyZW4oITEsITAsITApLGk9ZS5sZW5ndGg7Zm9yKHRoaXMuX3RpbWU9dGhpcy5fdG90YWxUaW1lPTA7LS1pPi0xOyllW2ldLl9lbmFibGVkKCExLCExKTtyZXR1cm4gdCE9PSExJiYodGhpcy5fbGFiZWxzPXt9KSx0aGlzLl91bmNhY2hlKCEwKX0sZi5pbnZhbGlkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuX2ZpcnN0O3Q7KXQuaW52YWxpZGF0ZSgpLHQ9dC5fbmV4dDtyZXR1cm4gdGhpc30sZi5fZW5hYmxlZD1mdW5jdGlvbih0LGkpe2lmKHQ9PT10aGlzLl9nYylmb3IodmFyIHM9dGhpcy5fZmlyc3Q7czspcy5fZW5hYmxlZCh0LCEwKSxzPXMuX25leHQ7cmV0dXJuIGUucHJvdG90eXBlLl9lbmFibGVkLmNhbGwodGhpcyx0LGkpfSxmLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPygwIT09dGhpcy5kdXJhdGlvbigpJiYwIT09dCYmdGhpcy50aW1lU2NhbGUodGhpcy5fZHVyYXRpb24vdCksdGhpcyk6KHRoaXMuX2RpcnR5JiZ0aGlzLnRvdGFsRHVyYXRpb24oKSx0aGlzLl9kdXJhdGlvbil9LGYudG90YWxEdXJhdGlvbj1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aCl7aWYodGhpcy5fZGlydHkpe2Zvcih2YXIgZSxpLHM9MCxyPXRoaXMuX2xhc3Qsbj05OTk5OTk5OTk5OTk7cjspZT1yLl9wcmV2LHIuX2RpcnR5JiZyLnRvdGFsRHVyYXRpb24oKSxyLl9zdGFydFRpbWU+biYmdGhpcy5fc29ydENoaWxkcmVuJiYhci5fcGF1c2VkP3RoaXMuYWRkKHIsci5fc3RhcnRUaW1lLXIuX2RlbGF5KTpuPXIuX3N0YXJ0VGltZSwwPnIuX3N0YXJ0VGltZSYmIXIuX3BhdXNlZCYmKHMtPXIuX3N0YXJ0VGltZSx0aGlzLl90aW1lbGluZS5zbW9vdGhDaGlsZFRpbWluZyYmKHRoaXMuX3N0YXJ0VGltZSs9ci5fc3RhcnRUaW1lL3RoaXMuX3RpbWVTY2FsZSksdGhpcy5zaGlmdENoaWxkcmVuKC1yLl9zdGFydFRpbWUsITEsLTk5OTk5OTk5OTkpLG49MCksaT1yLl9zdGFydFRpbWUrci5fdG90YWxEdXJhdGlvbi9yLl90aW1lU2NhbGUsaT5zJiYocz1pKSxyPWU7dGhpcy5fZHVyYXRpb249dGhpcy5fdG90YWxEdXJhdGlvbj1zLHRoaXMuX2RpcnR5PSExfXJldHVybiB0aGlzLl90b3RhbER1cmF0aW9ufXJldHVybiAwIT09dGhpcy50b3RhbER1cmF0aW9uKCkmJjAhPT10JiZ0aGlzLnRpbWVTY2FsZSh0aGlzLl90b3RhbER1cmF0aW9uL3QpLHRoaXN9LGYudXNlc0ZyYW1lcz1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLl90aW1lbGluZTtlLl90aW1lbGluZTspZT1lLl90aW1lbGluZTtyZXR1cm4gZT09PXQuX3Jvb3RGcmFtZXNUaW1lbGluZX0sZi5yYXdUaW1lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhdXNlZD90aGlzLl90b3RhbFRpbWU6KHRoaXMuX3RpbWVsaW5lLnJhd1RpbWUoKS10aGlzLl9zdGFydFRpbWUpKnRoaXMuX3RpbWVTY2FsZX0sc30sITApfSksd2luZG93Ll9nc0RlZmluZSYmd2luZG93Ll9nc1F1ZXVlLnBvcCgpKCk7IiwiLyohXHJcbiAqIFZFUlNJT046IDEuMTIuMVxyXG4gKiBEQVRFOiAyMDE0LTA2LTI2XHJcbiAqIFVQREFURVMgQU5EIERPQ1MgQVQ6IGh0dHA6Ly93d3cuZ3JlZW5zb2NrLmNvbVxyXG4gKlxyXG4gKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxNCwgR3JlZW5Tb2NrLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBUaGlzIHdvcmsgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYXQgaHR0cDovL3d3dy5ncmVlbnNvY2suY29tL3Rlcm1zX29mX3VzZS5odG1sIG9yIGZvclxyXG4gKiBDbHViIEdyZWVuU29jayBtZW1iZXJzLCB0aGUgc29mdHdhcmUgYWdyZWVtZW50IHRoYXQgd2FzIGlzc3VlZCB3aXRoIHlvdXIgbWVtYmVyc2hpcC5cclxuICogXHJcbiAqIEBhdXRob3I6IEphY2sgRG95bGUsIGphY2tAZ3JlZW5zb2NrLmNvbVxyXG4gKi9cclxuKGZ1bmN0aW9uKHQpe1widXNlIHN0cmljdFwiO3ZhciBlPXQuR3JlZW5Tb2NrR2xvYmFsc3x8dDtpZighZS5Ud2VlbkxpdGUpe3ZhciBpLHMsbixyLGEsbz1mdW5jdGlvbih0KXt2YXIgaSxzPXQuc3BsaXQoXCIuXCIpLG49ZTtmb3IoaT0wO3MubGVuZ3RoPmk7aSsrKW5bc1tpXV09bj1uW3NbaV1dfHx7fTtyZXR1cm4gbn0sbD1vKFwiY29tLmdyZWVuc29ja1wiKSxoPTFlLTEwLF89W10uc2xpY2UsdT1mdW5jdGlvbigpe30sbT1mdW5jdGlvbigpe3ZhciB0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsZT10LmNhbGwoW10pO3JldHVybiBmdW5jdGlvbihpKXtyZXR1cm4gbnVsbCE9aSYmKGkgaW5zdGFuY2VvZiBBcnJheXx8XCJvYmplY3RcIj09dHlwZW9mIGkmJiEhaS5wdXNoJiZ0LmNhbGwoaSk9PT1lKX19KCksZj17fSxwPWZ1bmN0aW9uKGkscyxuLHIpe3RoaXMuc2M9ZltpXT9mW2ldLnNjOltdLGZbaV09dGhpcyx0aGlzLmdzQ2xhc3M9bnVsbCx0aGlzLmZ1bmM9bjt2YXIgYT1bXTt0aGlzLmNoZWNrPWZ1bmN0aW9uKGwpe2Zvcih2YXIgaCxfLHUsbSxjPXMubGVuZ3RoLGQ9YzstLWM+LTE7KShoPWZbc1tjXV18fG5ldyBwKHNbY10sW10pKS5nc0NsYXNzPyhhW2NdPWguZ3NDbGFzcyxkLS0pOmwmJmguc2MucHVzaCh0aGlzKTtpZigwPT09ZCYmbilmb3IoXz0oXCJjb20uZ3JlZW5zb2NrLlwiK2kpLnNwbGl0KFwiLlwiKSx1PV8ucG9wKCksbT1vKF8uam9pbihcIi5cIikpW3VdPXRoaXMuZ3NDbGFzcz1uLmFwcGx5KG4sYSksciYmKGVbdV09bSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKCh0LkdyZWVuU29ja0FNRFBhdGg/dC5HcmVlblNvY2tBTURQYXRoK1wiL1wiOlwiXCIpK2kuc3BsaXQoXCIuXCIpLmpvaW4oXCIvXCIpLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIG19KTpcInVuZGVmaW5lZFwiIT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cyYmKG1vZHVsZS5leHBvcnRzPW0pKSxjPTA7dGhpcy5zYy5sZW5ndGg+YztjKyspdGhpcy5zY1tjXS5jaGVjaygpfSx0aGlzLmNoZWNrKCEwKX0sYz10Ll9nc0RlZmluZT1mdW5jdGlvbih0LGUsaSxzKXtyZXR1cm4gbmV3IHAodCxlLGkscyl9LGQ9bC5fY2xhc3M9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlPWV8fGZ1bmN0aW9uKCl7fSxjKHQsW10sZnVuY3Rpb24oKXtyZXR1cm4gZX0saSksZX07Yy5nbG9iYWxzPWU7dmFyIHY9WzAsMCwxLDFdLGc9W10sVD1kKFwiZWFzaW5nLkVhc2VcIixmdW5jdGlvbih0LGUsaSxzKXt0aGlzLl9mdW5jPXQsdGhpcy5fdHlwZT1pfHwwLHRoaXMuX3Bvd2VyPXN8fDAsdGhpcy5fcGFyYW1zPWU/di5jb25jYXQoZSk6dn0sITApLHk9VC5tYXA9e30sdz1ULnJlZ2lzdGVyPWZ1bmN0aW9uKHQsZSxpLHMpe2Zvcih2YXIgbixyLGEsbyxoPWUuc3BsaXQoXCIsXCIpLF89aC5sZW5ndGgsdT0oaXx8XCJlYXNlSW4sZWFzZU91dCxlYXNlSW5PdXRcIikuc3BsaXQoXCIsXCIpOy0tXz4tMTspZm9yKHI9aFtfXSxuPXM/ZChcImVhc2luZy5cIityLG51bGwsITApOmwuZWFzaW5nW3JdfHx7fSxhPXUubGVuZ3RoOy0tYT4tMTspbz11W2FdLHlbcitcIi5cIitvXT15W28rcl09bltvXT10LmdldFJhdGlvP3Q6dFtvXXx8bmV3IHR9O2ZvcihuPVQucHJvdG90eXBlLG4uX2NhbGNFbmQ9ITEsbi5nZXRSYXRpbz1mdW5jdGlvbih0KXtpZih0aGlzLl9mdW5jKXJldHVybiB0aGlzLl9wYXJhbXNbMF09dCx0aGlzLl9mdW5jLmFwcGx5KG51bGwsdGhpcy5fcGFyYW1zKTt2YXIgZT10aGlzLl90eXBlLGk9dGhpcy5fcG93ZXIscz0xPT09ZT8xLXQ6Mj09PWU/dDouNT50PzIqdDoyKigxLXQpO3JldHVybiAxPT09aT9zKj1zOjI9PT1pP3MqPXMqczozPT09aT9zKj1zKnMqczo0PT09aSYmKHMqPXMqcypzKnMpLDE9PT1lPzEtczoyPT09ZT9zOi41PnQ/cy8yOjEtcy8yfSxpPVtcIkxpbmVhclwiLFwiUXVhZFwiLFwiQ3ViaWNcIixcIlF1YXJ0XCIsXCJRdWludCxTdHJvbmdcIl0scz1pLmxlbmd0aDstLXM+LTE7KW49aVtzXStcIixQb3dlclwiK3MsdyhuZXcgVChudWxsLG51bGwsMSxzKSxuLFwiZWFzZU91dFwiLCEwKSx3KG5ldyBUKG51bGwsbnVsbCwyLHMpLG4sXCJlYXNlSW5cIisoMD09PXM/XCIsZWFzZU5vbmVcIjpcIlwiKSksdyhuZXcgVChudWxsLG51bGwsMyxzKSxuLFwiZWFzZUluT3V0XCIpO3kubGluZWFyPWwuZWFzaW5nLkxpbmVhci5lYXNlSW4seS5zd2luZz1sLmVhc2luZy5RdWFkLmVhc2VJbk91dDt2YXIgUD1kKFwiZXZlbnRzLkV2ZW50RGlzcGF0Y2hlclwiLGZ1bmN0aW9uKHQpe3RoaXMuX2xpc3RlbmVycz17fSx0aGlzLl9ldmVudFRhcmdldD10fHx0aGlzfSk7bj1QLnByb3RvdHlwZSxuLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxlLGkscyxuKXtuPW58fDA7dmFyIG8sbCxoPXRoaXMuX2xpc3RlbmVyc1t0XSxfPTA7Zm9yKG51bGw9PWgmJih0aGlzLl9saXN0ZW5lcnNbdF09aD1bXSksbD1oLmxlbmd0aDstLWw+LTE7KW89aFtsXSxvLmM9PT1lJiZvLnM9PT1pP2guc3BsaWNlKGwsMSk6MD09PV8mJm4+by5wciYmKF89bCsxKTtoLnNwbGljZShfLDAse2M6ZSxzOmksdXA6cyxwcjpufSksdGhpcyE9PXJ8fGF8fHIud2FrZSgpfSxuLnJlbW92ZUV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxlKXt2YXIgaSxzPXRoaXMuX2xpc3RlbmVyc1t0XTtpZihzKWZvcihpPXMubGVuZ3RoOy0taT4tMTspaWYoc1tpXS5jPT09ZSlyZXR1cm4gcy5zcGxpY2UoaSwxKSx2b2lkIDB9LG4uZGlzcGF0Y2hFdmVudD1mdW5jdGlvbih0KXt2YXIgZSxpLHMsbj10aGlzLl9saXN0ZW5lcnNbdF07aWYobilmb3IoZT1uLmxlbmd0aCxpPXRoaXMuX2V2ZW50VGFyZ2V0Oy0tZT4tMTspcz1uW2VdLHMudXA/cy5jLmNhbGwocy5zfHxpLHt0eXBlOnQsdGFyZ2V0Oml9KTpzLmMuY2FsbChzLnN8fGkpfTt2YXIgaz10LnJlcXVlc3RBbmltYXRpb25GcmFtZSxiPXQuY2FuY2VsQW5pbWF0aW9uRnJhbWUsQT1EYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKX0sUz1BKCk7Zm9yKGk9W1wibXNcIixcIm1velwiLFwid2Via2l0XCIsXCJvXCJdLHM9aS5sZW5ndGg7LS1zPi0xJiYhazspaz10W2lbc10rXCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWVcIl0sYj10W2lbc10rXCJDYW5jZWxBbmltYXRpb25GcmFtZVwiXXx8dFtpW3NdK1wiQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lXCJdO2QoXCJUaWNrZXJcIixmdW5jdGlvbih0LGUpe3ZhciBpLHMsbixvLGwsXz10aGlzLG09QSgpLGY9ZSE9PSExJiZrLHA9NTAwLGM9MzMsZD1mdW5jdGlvbih0KXt2YXIgZSxyLGE9QSgpLVM7YT5wJiYobSs9YS1jKSxTKz1hLF8udGltZT0oUy1tKS8xZTMsZT1fLnRpbWUtbCwoIWl8fGU+MHx8dD09PSEwKSYmKF8uZnJhbWUrKyxsKz1lKyhlPj1vPy4wMDQ6by1lKSxyPSEwKSx0IT09ITAmJihuPXMoZCkpLHImJl8uZGlzcGF0Y2hFdmVudChcInRpY2tcIil9O1AuY2FsbChfKSxfLnRpbWU9Xy5mcmFtZT0wLF8udGljaz1mdW5jdGlvbigpe2QoITApfSxfLmxhZ1Ntb290aGluZz1mdW5jdGlvbih0LGUpe3A9dHx8MS9oLGM9TWF0aC5taW4oZSxwLDApfSxfLnNsZWVwPWZ1bmN0aW9uKCl7bnVsbCE9biYmKGYmJmI/YihuKTpjbGVhclRpbWVvdXQobikscz11LG49bnVsbCxfPT09ciYmKGE9ITEpKX0sXy53YWtlPWZ1bmN0aW9uKCl7bnVsbCE9PW4/Xy5zbGVlcCgpOl8uZnJhbWU+MTAmJihTPUEoKS1wKzUpLHM9MD09PWk/dTpmJiZrP2s6ZnVuY3Rpb24odCl7cmV0dXJuIHNldFRpbWVvdXQodCwwfDFlMyoobC1fLnRpbWUpKzEpfSxfPT09ciYmKGE9ITApLGQoMil9LF8uZnBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbz0xLyhpfHw2MCksbD10aGlzLnRpbWUrbyxfLndha2UoKSx2b2lkIDApOml9LF8udXNlUkFGPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfLnNsZWVwKCksZj10LF8uZnBzKGkpLHZvaWQgMCk6Zn0sXy5mcHModCksc2V0VGltZW91dChmdW5jdGlvbigpe2YmJighbnx8NT5fLmZyYW1lKSYmXy51c2VSQUYoITEpfSwxNTAwKX0pLG49bC5UaWNrZXIucHJvdG90eXBlPW5ldyBsLmV2ZW50cy5FdmVudERpc3BhdGNoZXIsbi5jb25zdHJ1Y3Rvcj1sLlRpY2tlcjt2YXIgeD1kKFwiY29yZS5BbmltYXRpb25cIixmdW5jdGlvbih0LGUpe2lmKHRoaXMudmFycz1lPWV8fHt9LHRoaXMuX2R1cmF0aW9uPXRoaXMuX3RvdGFsRHVyYXRpb249dHx8MCx0aGlzLl9kZWxheT1OdW1iZXIoZS5kZWxheSl8fDAsdGhpcy5fdGltZVNjYWxlPTEsdGhpcy5fYWN0aXZlPWUuaW1tZWRpYXRlUmVuZGVyPT09ITAsdGhpcy5kYXRhPWUuZGF0YSx0aGlzLl9yZXZlcnNlZD1lLnJldmVyc2VkPT09ITAsQil7YXx8ci53YWtlKCk7dmFyIGk9dGhpcy52YXJzLnVzZUZyYW1lcz9ROkI7aS5hZGQodGhpcyxpLl90aW1lKSx0aGlzLnZhcnMucGF1c2VkJiZ0aGlzLnBhdXNlZCghMCl9fSk7cj14LnRpY2tlcj1uZXcgbC5UaWNrZXIsbj14LnByb3RvdHlwZSxuLl9kaXJ0eT1uLl9nYz1uLl9pbml0dGVkPW4uX3BhdXNlZD0hMSxuLl90b3RhbFRpbWU9bi5fdGltZT0wLG4uX3Jhd1ByZXZUaW1lPS0xLG4uX25leHQ9bi5fbGFzdD1uLl9vblVwZGF0ZT1uLl90aW1lbGluZT1uLnRpbWVsaW5lPW51bGwsbi5fcGF1c2VkPSExO3ZhciBDPWZ1bmN0aW9uKCl7YSYmQSgpLVM+MmUzJiZyLndha2UoKSxzZXRUaW1lb3V0KEMsMmUzKX07QygpLG4ucGxheT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiZ0aGlzLnNlZWsodCxlKSx0aGlzLnJldmVyc2VkKCExKS5wYXVzZWQoITEpfSxuLnBhdXNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGwhPXQmJnRoaXMuc2Vlayh0LGUpLHRoaXMucGF1c2VkKCEwKX0sbi5yZXN1bWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbCE9dCYmdGhpcy5zZWVrKHQsZSksdGhpcy5wYXVzZWQoITEpfSxuLnNlZWs9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy50b3RhbFRpbWUoTnVtYmVyKHQpLGUhPT0hMSl9LG4ucmVzdGFydD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJldmVyc2VkKCExKS5wYXVzZWQoITEpLnRvdGFsVGltZSh0Py10aGlzLl9kZWxheTowLGUhPT0hMSwhMCl9LG4ucmV2ZXJzZT1mdW5jdGlvbih0LGUpe3JldHVybiBudWxsIT10JiZ0aGlzLnNlZWsodHx8dGhpcy50b3RhbER1cmF0aW9uKCksZSksdGhpcy5yZXZlcnNlZCghMCkucGF1c2VkKCExKX0sbi5yZW5kZXI9ZnVuY3Rpb24oKXt9LG4uaW52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxuLmlzQWN0aXZlPWZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLl90aW1lbGluZSxpPXRoaXMuX3N0YXJ0VGltZTtyZXR1cm4hZXx8IXRoaXMuX2djJiYhdGhpcy5fcGF1c2VkJiZlLmlzQWN0aXZlKCkmJih0PWUucmF3VGltZSgpKT49aSYmaSt0aGlzLnRvdGFsRHVyYXRpb24oKS90aGlzLl90aW1lU2NhbGU+dH0sbi5fZW5hYmxlZD1mdW5jdGlvbih0LGUpe3JldHVybiBhfHxyLndha2UoKSx0aGlzLl9nYz0hdCx0aGlzLl9hY3RpdmU9dGhpcy5pc0FjdGl2ZSgpLGUhPT0hMCYmKHQmJiF0aGlzLnRpbWVsaW5lP3RoaXMuX3RpbWVsaW5lLmFkZCh0aGlzLHRoaXMuX3N0YXJ0VGltZS10aGlzLl9kZWxheSk6IXQmJnRoaXMudGltZWxpbmUmJnRoaXMuX3RpbWVsaW5lLl9yZW1vdmUodGhpcywhMCkpLCExfSxuLl9raWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWQoITEsITEpfSxuLmtpbGw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fa2lsbCh0LGUpLHRoaXN9LG4uX3VuY2FjaGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQ/dGhpczp0aGlzLnRpbWVsaW5lO2U7KWUuX2RpcnR5PSEwLGU9ZS50aW1lbGluZTtyZXR1cm4gdGhpc30sbi5fc3dhcFNlbGZJblBhcmFtcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgsaT10LmNvbmNhdCgpOy0tZT4tMTspXCJ7c2VsZn1cIj09PXRbZV0mJihpW2VdPXRoaXMpO3JldHVybiBpfSxuLmV2ZW50Q2FsbGJhY2s9ZnVuY3Rpb24odCxlLGkscyl7aWYoXCJvblwiPT09KHR8fFwiXCIpLnN1YnN0cigwLDIpKXt2YXIgbj10aGlzLnZhcnM7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIG5bdF07bnVsbD09ZT9kZWxldGUgblt0XTooblt0XT1lLG5bdCtcIlBhcmFtc1wiXT1tKGkpJiYtMSE9PWkuam9pbihcIlwiKS5pbmRleE9mKFwie3NlbGZ9XCIpP3RoaXMuX3N3YXBTZWxmSW5QYXJhbXMoaSk6aSxuW3QrXCJTY29wZVwiXT1zKSxcIm9uVXBkYXRlXCI9PT10JiYodGhpcy5fb25VcGRhdGU9ZSl9cmV0dXJuIHRoaXN9LG4uZGVsYXk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHRoaXMuX3RpbWVsaW5lLnNtb290aENoaWxkVGltaW5nJiZ0aGlzLnN0YXJ0VGltZSh0aGlzLl9zdGFydFRpbWUrdC10aGlzLl9kZWxheSksdGhpcy5fZGVsYXk9dCx0aGlzKTp0aGlzLl9kZWxheX0sbi5kdXJhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZHVyYXRpb249dGhpcy5fdG90YWxEdXJhdGlvbj10LHRoaXMuX3VuY2FjaGUoITApLHRoaXMuX3RpbWVsaW5lLnNtb290aENoaWxkVGltaW5nJiZ0aGlzLl90aW1lPjAmJnRoaXMuX3RpbWU8dGhpcy5fZHVyYXRpb24mJjAhPT10JiZ0aGlzLnRvdGFsVGltZSh0aGlzLl90b3RhbFRpbWUqKHQvdGhpcy5fZHVyYXRpb24pLCEwKSx0aGlzKToodGhpcy5fZGlydHk9ITEsdGhpcy5fZHVyYXRpb24pfSxuLnRvdGFsRHVyYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2RpcnR5PSExLGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5kdXJhdGlvbih0KTp0aGlzLl90b3RhbER1cmF0aW9ufSxuLnRpbWU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZGlydHkmJnRoaXMudG90YWxEdXJhdGlvbigpLHRoaXMudG90YWxUaW1lKHQ+dGhpcy5fZHVyYXRpb24/dGhpcy5fZHVyYXRpb246dCxlKSk6dGhpcy5fdGltZX0sbi50b3RhbFRpbWU9ZnVuY3Rpb24odCxlLGkpe2lmKGF8fHIud2FrZSgpLCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl90b3RhbFRpbWU7aWYodGhpcy5fdGltZWxpbmUpe2lmKDA+dCYmIWkmJih0Kz10aGlzLnRvdGFsRHVyYXRpb24oKSksdGhpcy5fdGltZWxpbmUuc21vb3RoQ2hpbGRUaW1pbmcpe3RoaXMuX2RpcnR5JiZ0aGlzLnRvdGFsRHVyYXRpb24oKTt2YXIgcz10aGlzLl90b3RhbER1cmF0aW9uLG49dGhpcy5fdGltZWxpbmU7aWYodD5zJiYhaSYmKHQ9cyksdGhpcy5fc3RhcnRUaW1lPSh0aGlzLl9wYXVzZWQ/dGhpcy5fcGF1c2VUaW1lOm4uX3RpbWUpLSh0aGlzLl9yZXZlcnNlZD9zLXQ6dCkvdGhpcy5fdGltZVNjYWxlLG4uX2RpcnR5fHx0aGlzLl91bmNhY2hlKCExKSxuLl90aW1lbGluZSlmb3IoO24uX3RpbWVsaW5lOyluLl90aW1lbGluZS5fdGltZSE9PShuLl9zdGFydFRpbWUrbi5fdG90YWxUaW1lKS9uLl90aW1lU2NhbGUmJm4udG90YWxUaW1lKG4uX3RvdGFsVGltZSwhMCksbj1uLl90aW1lbGluZX10aGlzLl9nYyYmdGhpcy5fZW5hYmxlZCghMCwhMSksKHRoaXMuX3RvdGFsVGltZSE9PXR8fDA9PT10aGlzLl9kdXJhdGlvbikmJih0aGlzLnJlbmRlcih0LGUsITEpLHoubGVuZ3RoJiZxKCkpfXJldHVybiB0aGlzfSxuLnByb2dyZXNzPW4udG90YWxQcm9ncmVzcz1mdW5jdGlvbih0LGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMudG90YWxUaW1lKHRoaXMuZHVyYXRpb24oKSp0LGUpOnRoaXMuX3RpbWUvdGhpcy5kdXJhdGlvbigpfSxuLnN0YXJ0VGltZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odCE9PXRoaXMuX3N0YXJ0VGltZSYmKHRoaXMuX3N0YXJ0VGltZT10LHRoaXMudGltZWxpbmUmJnRoaXMudGltZWxpbmUuX3NvcnRDaGlsZHJlbiYmdGhpcy50aW1lbGluZS5hZGQodGhpcyx0LXRoaXMuX2RlbGF5KSksdGhpcyk6dGhpcy5fc3RhcnRUaW1lfSxuLnRpbWVTY2FsZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fdGltZVNjYWxlO2lmKHQ9dHx8aCx0aGlzLl90aW1lbGluZSYmdGhpcy5fdGltZWxpbmUuc21vb3RoQ2hpbGRUaW1pbmcpe3ZhciBlPXRoaXMuX3BhdXNlVGltZSxpPWV8fDA9PT1lP2U6dGhpcy5fdGltZWxpbmUudG90YWxUaW1lKCk7dGhpcy5fc3RhcnRUaW1lPWktKGktdGhpcy5fc3RhcnRUaW1lKSp0aGlzLl90aW1lU2NhbGUvdH1yZXR1cm4gdGhpcy5fdGltZVNjYWxlPXQsdGhpcy5fdW5jYWNoZSghMSl9LG4ucmV2ZXJzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQhPXRoaXMuX3JldmVyc2VkJiYodGhpcy5fcmV2ZXJzZWQ9dCx0aGlzLnRvdGFsVGltZSh0aGlzLl90aW1lbGluZSYmIXRoaXMuX3RpbWVsaW5lLnNtb290aENoaWxkVGltaW5nP3RoaXMudG90YWxEdXJhdGlvbigpLXRoaXMuX3RvdGFsVGltZTp0aGlzLl90b3RhbFRpbWUsITApKSx0aGlzKTp0aGlzLl9yZXZlcnNlZH0sbi5wYXVzZWQ9ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3BhdXNlZDtpZih0IT10aGlzLl9wYXVzZWQmJnRoaXMuX3RpbWVsaW5lKXthfHx0fHxyLndha2UoKTt2YXIgZT10aGlzLl90aW1lbGluZSxpPWUucmF3VGltZSgpLHM9aS10aGlzLl9wYXVzZVRpbWU7IXQmJmUuc21vb3RoQ2hpbGRUaW1pbmcmJih0aGlzLl9zdGFydFRpbWUrPXMsdGhpcy5fdW5jYWNoZSghMSkpLHRoaXMuX3BhdXNlVGltZT10P2k6bnVsbCx0aGlzLl9wYXVzZWQ9dCx0aGlzLl9hY3RpdmU9dGhpcy5pc0FjdGl2ZSgpLCF0JiYwIT09cyYmdGhpcy5faW5pdHRlZCYmdGhpcy5kdXJhdGlvbigpJiZ0aGlzLnJlbmRlcihlLnNtb290aENoaWxkVGltaW5nP3RoaXMuX3RvdGFsVGltZTooaS10aGlzLl9zdGFydFRpbWUpL3RoaXMuX3RpbWVTY2FsZSwhMCwhMCl9cmV0dXJuIHRoaXMuX2djJiYhdCYmdGhpcy5fZW5hYmxlZCghMCwhMSksdGhpc307dmFyIFI9ZChcImNvcmUuU2ltcGxlVGltZWxpbmVcIixmdW5jdGlvbih0KXt4LmNhbGwodGhpcywwLHQpLHRoaXMuYXV0b1JlbW92ZUNoaWxkcmVuPXRoaXMuc21vb3RoQ2hpbGRUaW1pbmc9ITB9KTtuPVIucHJvdG90eXBlPW5ldyB4LG4uY29uc3RydWN0b3I9UixuLmtpbGwoKS5fZ2M9ITEsbi5fZmlyc3Q9bi5fbGFzdD1udWxsLG4uX3NvcnRDaGlsZHJlbj0hMSxuLmFkZD1uLmluc2VydD1mdW5jdGlvbih0LGUpe3ZhciBpLHM7aWYodC5fc3RhcnRUaW1lPU51bWJlcihlfHwwKSt0Ll9kZWxheSx0Ll9wYXVzZWQmJnRoaXMhPT10Ll90aW1lbGluZSYmKHQuX3BhdXNlVGltZT10Ll9zdGFydFRpbWUrKHRoaXMucmF3VGltZSgpLXQuX3N0YXJ0VGltZSkvdC5fdGltZVNjYWxlKSx0LnRpbWVsaW5lJiZ0LnRpbWVsaW5lLl9yZW1vdmUodCwhMCksdC50aW1lbGluZT10Ll90aW1lbGluZT10aGlzLHQuX2djJiZ0Ll9lbmFibGVkKCEwLCEwKSxpPXRoaXMuX2xhc3QsdGhpcy5fc29ydENoaWxkcmVuKWZvcihzPXQuX3N0YXJ0VGltZTtpJiZpLl9zdGFydFRpbWU+czspaT1pLl9wcmV2O3JldHVybiBpPyh0Ll9uZXh0PWkuX25leHQsaS5fbmV4dD10KToodC5fbmV4dD10aGlzLl9maXJzdCx0aGlzLl9maXJzdD10KSx0Ll9uZXh0P3QuX25leHQuX3ByZXY9dDp0aGlzLl9sYXN0PXQsdC5fcHJldj1pLHRoaXMuX3RpbWVsaW5lJiZ0aGlzLl91bmNhY2hlKCEwKSx0aGlzfSxuLl9yZW1vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50aW1lbGluZT09PXRoaXMmJihlfHx0Ll9lbmFibGVkKCExLCEwKSx0LnRpbWVsaW5lPW51bGwsdC5fcHJldj90Ll9wcmV2Ll9uZXh0PXQuX25leHQ6dGhpcy5fZmlyc3Q9PT10JiYodGhpcy5fZmlyc3Q9dC5fbmV4dCksdC5fbmV4dD90Ll9uZXh0Ll9wcmV2PXQuX3ByZXY6dGhpcy5fbGFzdD09PXQmJih0aGlzLl9sYXN0PXQuX3ByZXYpLHRoaXMuX3RpbWVsaW5lJiZ0aGlzLl91bmNhY2hlKCEwKSksdGhpc30sbi5yZW5kZXI9ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG49dGhpcy5fZmlyc3Q7Zm9yKHRoaXMuX3RvdGFsVGltZT10aGlzLl90aW1lPXRoaXMuX3Jhd1ByZXZUaW1lPXQ7bjspcz1uLl9uZXh0LChuLl9hY3RpdmV8fHQ+PW4uX3N0YXJ0VGltZSYmIW4uX3BhdXNlZCkmJihuLl9yZXZlcnNlZD9uLnJlbmRlcigobi5fZGlydHk/bi50b3RhbER1cmF0aW9uKCk6bi5fdG90YWxEdXJhdGlvbiktKHQtbi5fc3RhcnRUaW1lKSpuLl90aW1lU2NhbGUsZSxpKTpuLnJlbmRlcigodC1uLl9zdGFydFRpbWUpKm4uX3RpbWVTY2FsZSxlLGkpKSxuPXN9LG4ucmF3VGltZT1mdW5jdGlvbigpe3JldHVybiBhfHxyLndha2UoKSx0aGlzLl90b3RhbFRpbWV9O3ZhciBEPWQoXCJUd2VlbkxpdGVcIixmdW5jdGlvbihlLGkscyl7aWYoeC5jYWxsKHRoaXMsaSxzKSx0aGlzLnJlbmRlcj1ELnByb3RvdHlwZS5yZW5kZXIsbnVsbD09ZSl0aHJvd1wiQ2Fubm90IHR3ZWVuIGEgbnVsbCB0YXJnZXQuXCI7dGhpcy50YXJnZXQ9ZT1cInN0cmluZ1wiIT10eXBlb2YgZT9lOkQuc2VsZWN0b3IoZSl8fGU7dmFyIG4scixhLG89ZS5qcXVlcnl8fGUubGVuZ3RoJiZlIT09dCYmZVswXSYmKGVbMF09PT10fHxlWzBdLm5vZGVUeXBlJiZlWzBdLnN0eWxlJiYhZS5ub2RlVHlwZSksbD10aGlzLnZhcnMub3ZlcndyaXRlO2lmKHRoaXMuX292ZXJ3cml0ZT1sPW51bGw9PWw/R1tELmRlZmF1bHRPdmVyd3JpdGVdOlwibnVtYmVyXCI9PXR5cGVvZiBsP2w+PjA6R1tsXSwob3x8ZSBpbnN0YW5jZW9mIEFycmF5fHxlLnB1c2gmJm0oZSkpJiZcIm51bWJlclwiIT10eXBlb2YgZVswXSlmb3IodGhpcy5fdGFyZ2V0cz1hPV8uY2FsbChlLDApLHRoaXMuX3Byb3BMb29rdXA9W10sdGhpcy5fc2libGluZ3M9W10sbj0wO2EubGVuZ3RoPm47bisrKXI9YVtuXSxyP1wic3RyaW5nXCIhPXR5cGVvZiByP3IubGVuZ3RoJiZyIT09dCYmclswXSYmKHJbMF09PT10fHxyWzBdLm5vZGVUeXBlJiZyWzBdLnN0eWxlJiYhci5ub2RlVHlwZSk/KGEuc3BsaWNlKG4tLSwxKSx0aGlzLl90YXJnZXRzPWE9YS5jb25jYXQoXy5jYWxsKHIsMCkpKToodGhpcy5fc2libGluZ3Nbbl09TShyLHRoaXMsITEpLDE9PT1sJiZ0aGlzLl9zaWJsaW5nc1tuXS5sZW5ndGg+MSYmJChyLHRoaXMsbnVsbCwxLHRoaXMuX3NpYmxpbmdzW25dKSk6KHI9YVtuLS1dPUQuc2VsZWN0b3IociksXCJzdHJpbmdcIj09dHlwZW9mIHImJmEuc3BsaWNlKG4rMSwxKSk6YS5zcGxpY2Uobi0tLDEpO2Vsc2UgdGhpcy5fcHJvcExvb2t1cD17fSx0aGlzLl9zaWJsaW5ncz1NKGUsdGhpcywhMSksMT09PWwmJnRoaXMuX3NpYmxpbmdzLmxlbmd0aD4xJiYkKGUsdGhpcyxudWxsLDEsdGhpcy5fc2libGluZ3MpOyh0aGlzLnZhcnMuaW1tZWRpYXRlUmVuZGVyfHwwPT09aSYmMD09PXRoaXMuX2RlbGF5JiZ0aGlzLnZhcnMuaW1tZWRpYXRlUmVuZGVyIT09ITEpJiYodGhpcy5fdGltZT0taCx0aGlzLnJlbmRlcigtdGhpcy5fZGVsYXkpKX0sITApLEk9ZnVuY3Rpb24oZSl7cmV0dXJuIGUubGVuZ3RoJiZlIT09dCYmZVswXSYmKGVbMF09PT10fHxlWzBdLm5vZGVUeXBlJiZlWzBdLnN0eWxlJiYhZS5ub2RlVHlwZSl9LEU9ZnVuY3Rpb24odCxlKXt2YXIgaSxzPXt9O2ZvcihpIGluIHQpaltpXXx8aSBpbiBlJiZcInRyYW5zZm9ybVwiIT09aSYmXCJ4XCIhPT1pJiZcInlcIiE9PWkmJlwid2lkdGhcIiE9PWkmJlwiaGVpZ2h0XCIhPT1pJiZcImNsYXNzTmFtZVwiIT09aSYmXCJib3JkZXJcIiE9PWl8fCEoIUxbaV18fExbaV0mJkxbaV0uX2F1dG9DU1MpfHwoc1tpXT10W2ldLGRlbGV0ZSB0W2ldKTt0LmNzcz1zfTtuPUQucHJvdG90eXBlPW5ldyB4LG4uY29uc3RydWN0b3I9RCxuLmtpbGwoKS5fZ2M9ITEsbi5yYXRpbz0wLG4uX2ZpcnN0UFQ9bi5fdGFyZ2V0cz1uLl9vdmVyd3JpdHRlblByb3BzPW4uX3N0YXJ0QXQ9bnVsbCxuLl9ub3RpZnlQbHVnaW5zT2ZFbmFibGVkPW4uX2xhenk9ITEsRC52ZXJzaW9uPVwiMS4xMi4xXCIsRC5kZWZhdWx0RWFzZT1uLl9lYXNlPW5ldyBUKG51bGwsbnVsbCwxLDEpLEQuZGVmYXVsdE92ZXJ3cml0ZT1cImF1dG9cIixELnRpY2tlcj1yLEQuYXV0b1NsZWVwPSEwLEQubGFnU21vb3RoaW5nPWZ1bmN0aW9uKHQsZSl7ci5sYWdTbW9vdGhpbmcodCxlKX0sRC5zZWxlY3Rvcj10LiR8fHQualF1ZXJ5fHxmdW5jdGlvbihlKXtyZXR1cm4gdC4kPyhELnNlbGVjdG9yPXQuJCx0LiQoZSkpOnQuZG9jdW1lbnQ/dC5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIiNcIj09PWUuY2hhckF0KDApP2Uuc3Vic3RyKDEpOmUpOmV9O3ZhciB6PVtdLE89e30sTj1ELl9pbnRlcm5hbHM9e2lzQXJyYXk6bSxpc1NlbGVjdG9yOkksbGF6eVR3ZWVuczp6fSxMPUQuX3BsdWdpbnM9e30sVT1OLnR3ZWVuTG9va3VwPXt9LEY9MCxqPU4ucmVzZXJ2ZWRQcm9wcz17ZWFzZToxLGRlbGF5OjEsb3ZlcndyaXRlOjEsb25Db21wbGV0ZToxLG9uQ29tcGxldGVQYXJhbXM6MSxvbkNvbXBsZXRlU2NvcGU6MSx1c2VGcmFtZXM6MSxydW5CYWNrd2FyZHM6MSxzdGFydEF0OjEsb25VcGRhdGU6MSxvblVwZGF0ZVBhcmFtczoxLG9uVXBkYXRlU2NvcGU6MSxvblN0YXJ0OjEsb25TdGFydFBhcmFtczoxLG9uU3RhcnRTY29wZToxLG9uUmV2ZXJzZUNvbXBsZXRlOjEsb25SZXZlcnNlQ29tcGxldGVQYXJhbXM6MSxvblJldmVyc2VDb21wbGV0ZVNjb3BlOjEsb25SZXBlYXQ6MSxvblJlcGVhdFBhcmFtczoxLG9uUmVwZWF0U2NvcGU6MSxlYXNlUGFyYW1zOjEseW95bzoxLGltbWVkaWF0ZVJlbmRlcjoxLHJlcGVhdDoxLHJlcGVhdERlbGF5OjEsZGF0YToxLHBhdXNlZDoxLHJldmVyc2VkOjEsYXV0b0NTUzoxLGxhenk6MX0sRz17bm9uZTowLGFsbDoxLGF1dG86Mixjb25jdXJyZW50OjMsYWxsT25TdGFydDo0LHByZWV4aXN0aW5nOjUsXCJ0cnVlXCI6MSxcImZhbHNlXCI6MH0sUT14Ll9yb290RnJhbWVzVGltZWxpbmU9bmV3IFIsQj14Ll9yb290VGltZWxpbmU9bmV3IFIscT1mdW5jdGlvbigpe3ZhciB0PXoubGVuZ3RoO2ZvcihPPXt9Oy0tdD4tMTspaT16W3RdLGkmJmkuX2xhenkhPT0hMSYmKGkucmVuZGVyKGkuX2xhenksITEsITApLGkuX2xhenk9ITEpO3oubGVuZ3RoPTB9O0IuX3N0YXJ0VGltZT1yLnRpbWUsUS5fc3RhcnRUaW1lPXIuZnJhbWUsQi5fYWN0aXZlPVEuX2FjdGl2ZT0hMCxzZXRUaW1lb3V0KHEsMSkseC5fdXBkYXRlUm9vdD1ELnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0LGUsaTtpZih6Lmxlbmd0aCYmcSgpLEIucmVuZGVyKChyLnRpbWUtQi5fc3RhcnRUaW1lKSpCLl90aW1lU2NhbGUsITEsITEpLFEucmVuZGVyKChyLmZyYW1lLVEuX3N0YXJ0VGltZSkqUS5fdGltZVNjYWxlLCExLCExKSx6Lmxlbmd0aCYmcSgpLCEoci5mcmFtZSUxMjApKXtmb3IoaSBpbiBVKXtmb3IoZT1VW2ldLnR3ZWVucyx0PWUubGVuZ3RoOy0tdD4tMTspZVt0XS5fZ2MmJmUuc3BsaWNlKHQsMSk7MD09PWUubGVuZ3RoJiZkZWxldGUgVVtpXX1pZihpPUIuX2ZpcnN0LCghaXx8aS5fcGF1c2VkKSYmRC5hdXRvU2xlZXAmJiFRLl9maXJzdCYmMT09PXIuX2xpc3RlbmVycy50aWNrLmxlbmd0aCl7Zm9yKDtpJiZpLl9wYXVzZWQ7KWk9aS5fbmV4dDtpfHxyLnNsZWVwKCl9fX0sci5hZGRFdmVudExpc3RlbmVyKFwidGlja1wiLHguX3VwZGF0ZVJvb3QpO3ZhciBNPWZ1bmN0aW9uKHQsZSxpKXt2YXIgcyxuLHI9dC5fZ3NUd2VlbklEO2lmKFVbcnx8KHQuX2dzVHdlZW5JRD1yPVwidFwiK0YrKyldfHwoVVtyXT17dGFyZ2V0OnQsdHdlZW5zOltdfSksZSYmKHM9VVtyXS50d2VlbnMsc1tuPXMubGVuZ3RoXT1lLGkpKWZvcig7LS1uPi0xOylzW25dPT09ZSYmcy5zcGxpY2UobiwxKTtyZXR1cm4gVVtyXS50d2VlbnN9LCQ9ZnVuY3Rpb24odCxlLGkscyxuKXt2YXIgcixhLG8sbDtpZigxPT09c3x8cz49NCl7Zm9yKGw9bi5sZW5ndGgscj0wO2w+cjtyKyspaWYoKG89bltyXSkhPT1lKW8uX2djfHxvLl9lbmFibGVkKCExLCExKSYmKGE9ITApO2Vsc2UgaWYoNT09PXMpYnJlYWs7cmV0dXJuIGF9dmFyIF8sdT1lLl9zdGFydFRpbWUraCxtPVtdLGY9MCxwPTA9PT1lLl9kdXJhdGlvbjtmb3Iocj1uLmxlbmd0aDstLXI+LTE7KShvPW5bcl0pPT09ZXx8by5fZ2N8fG8uX3BhdXNlZHx8KG8uX3RpbWVsaW5lIT09ZS5fdGltZWxpbmU/KF89X3x8SyhlLDAscCksMD09PUsobyxfLHApJiYobVtmKytdPW8pKTp1Pj1vLl9zdGFydFRpbWUmJm8uX3N0YXJ0VGltZStvLnRvdGFsRHVyYXRpb24oKS9vLl90aW1lU2NhbGU+dSYmKChwfHwhby5faW5pdHRlZCkmJjJlLTEwPj11LW8uX3N0YXJ0VGltZXx8KG1bZisrXT1vKSkpO2ZvcihyPWY7LS1yPi0xOylvPW1bcl0sMj09PXMmJm8uX2tpbGwoaSx0KSYmKGE9ITApLCgyIT09c3x8IW8uX2ZpcnN0UFQmJm8uX2luaXR0ZWQpJiZvLl9lbmFibGVkKCExLCExKSYmKGE9ITApO3JldHVybiBhfSxLPWZ1bmN0aW9uKHQsZSxpKXtmb3IodmFyIHM9dC5fdGltZWxpbmUsbj1zLl90aW1lU2NhbGUscj10Ll9zdGFydFRpbWU7cy5fdGltZWxpbmU7KXtpZihyKz1zLl9zdGFydFRpbWUsbio9cy5fdGltZVNjYWxlLHMuX3BhdXNlZClyZXR1cm4tMTAwO3M9cy5fdGltZWxpbmV9cmV0dXJuIHIvPW4scj5lP3ItZTppJiZyPT09ZXx8IXQuX2luaXR0ZWQmJjIqaD5yLWU/aDoocis9dC50b3RhbER1cmF0aW9uKCkvdC5fdGltZVNjYWxlL24pPmUraD8wOnItZS1ofTtuLl9pbml0PWZ1bmN0aW9uKCl7dmFyIHQsZSxpLHMsbixyPXRoaXMudmFycyxhPXRoaXMuX292ZXJ3cml0dGVuUHJvcHMsbz10aGlzLl9kdXJhdGlvbixsPSEhci5pbW1lZGlhdGVSZW5kZXIsaD1yLmVhc2U7aWYoci5zdGFydEF0KXt0aGlzLl9zdGFydEF0JiYodGhpcy5fc3RhcnRBdC5yZW5kZXIoLTEsITApLHRoaXMuX3N0YXJ0QXQua2lsbCgpKSxuPXt9O2ZvcihzIGluIHIuc3RhcnRBdCluW3NdPXIuc3RhcnRBdFtzXTtpZihuLm92ZXJ3cml0ZT0hMSxuLmltbWVkaWF0ZVJlbmRlcj0hMCxuLmxhenk9bCYmci5sYXp5IT09ITEsbi5zdGFydEF0PW4uZGVsYXk9bnVsbCx0aGlzLl9zdGFydEF0PUQudG8odGhpcy50YXJnZXQsMCxuKSxsKWlmKHRoaXMuX3RpbWU+MCl0aGlzLl9zdGFydEF0PW51bGw7ZWxzZSBpZigwIT09bylyZXR1cm59ZWxzZSBpZihyLnJ1bkJhY2t3YXJkcyYmMCE9PW8paWYodGhpcy5fc3RhcnRBdCl0aGlzLl9zdGFydEF0LnJlbmRlcigtMSwhMCksdGhpcy5fc3RhcnRBdC5raWxsKCksdGhpcy5fc3RhcnRBdD1udWxsO2Vsc2V7aT17fTtmb3IocyBpbiByKWpbc10mJlwiYXV0b0NTU1wiIT09c3x8KGlbc109cltzXSk7aWYoaS5vdmVyd3JpdGU9MCxpLmRhdGE9XCJpc0Zyb21TdGFydFwiLGkubGF6eT1sJiZyLmxhenkhPT0hMSxpLmltbWVkaWF0ZVJlbmRlcj1sLHRoaXMuX3N0YXJ0QXQ9RC50byh0aGlzLnRhcmdldCwwLGkpLGwpe2lmKDA9PT10aGlzLl90aW1lKXJldHVybn1lbHNlIHRoaXMuX3N0YXJ0QXQuX2luaXQoKSx0aGlzLl9zdGFydEF0Ll9lbmFibGVkKCExKX1pZih0aGlzLl9lYXNlPWg/aCBpbnN0YW5jZW9mIFQ/ci5lYXNlUGFyYW1zIGluc3RhbmNlb2YgQXJyYXk/aC5jb25maWcuYXBwbHkoaCxyLmVhc2VQYXJhbXMpOmg6XCJmdW5jdGlvblwiPT10eXBlb2YgaD9uZXcgVChoLHIuZWFzZVBhcmFtcyk6eVtoXXx8RC5kZWZhdWx0RWFzZTpELmRlZmF1bHRFYXNlLHRoaXMuX2Vhc2VUeXBlPXRoaXMuX2Vhc2UuX3R5cGUsdGhpcy5fZWFzZVBvd2VyPXRoaXMuX2Vhc2UuX3Bvd2VyLHRoaXMuX2ZpcnN0UFQ9bnVsbCx0aGlzLl90YXJnZXRzKWZvcih0PXRoaXMuX3RhcmdldHMubGVuZ3RoOy0tdD4tMTspdGhpcy5faW5pdFByb3BzKHRoaXMuX3RhcmdldHNbdF0sdGhpcy5fcHJvcExvb2t1cFt0XT17fSx0aGlzLl9zaWJsaW5nc1t0XSxhP2FbdF06bnVsbCkmJihlPSEwKTtlbHNlIGU9dGhpcy5faW5pdFByb3BzKHRoaXMudGFyZ2V0LHRoaXMuX3Byb3BMb29rdXAsdGhpcy5fc2libGluZ3MsYSk7aWYoZSYmRC5fb25QbHVnaW5FdmVudChcIl9vbkluaXRBbGxQcm9wc1wiLHRoaXMpLGEmJih0aGlzLl9maXJzdFBUfHxcImZ1bmN0aW9uXCIhPXR5cGVvZiB0aGlzLnRhcmdldCYmdGhpcy5fZW5hYmxlZCghMSwhMSkpLHIucnVuQmFja3dhcmRzKWZvcihpPXRoaXMuX2ZpcnN0UFQ7aTspaS5zKz1pLmMsaS5jPS1pLmMsaT1pLl9uZXh0O3RoaXMuX29uVXBkYXRlPXIub25VcGRhdGUsdGhpcy5faW5pdHRlZD0hMH0sbi5faW5pdFByb3BzPWZ1bmN0aW9uKGUsaSxzLG4pe3ZhciByLGEsbyxsLGgsXztpZihudWxsPT1lKXJldHVybiExO09bZS5fZ3NUd2VlbklEXSYmcSgpLHRoaXMudmFycy5jc3N8fGUuc3R5bGUmJmUhPT10JiZlLm5vZGVUeXBlJiZMLmNzcyYmdGhpcy52YXJzLmF1dG9DU1MhPT0hMSYmRSh0aGlzLnZhcnMsZSk7Zm9yKHIgaW4gdGhpcy52YXJzKXtpZihfPXRoaXMudmFyc1tyXSxqW3JdKV8mJihfIGluc3RhbmNlb2YgQXJyYXl8fF8ucHVzaCYmbShfKSkmJi0xIT09Xy5qb2luKFwiXCIpLmluZGV4T2YoXCJ7c2VsZn1cIikmJih0aGlzLnZhcnNbcl09Xz10aGlzLl9zd2FwU2VsZkluUGFyYW1zKF8sdGhpcykpO2Vsc2UgaWYoTFtyXSYmKGw9bmV3IExbcl0pLl9vbkluaXRUd2VlbihlLHRoaXMudmFyc1tyXSx0aGlzKSl7Zm9yKHRoaXMuX2ZpcnN0UFQ9aD17X25leHQ6dGhpcy5fZmlyc3RQVCx0OmwscDpcInNldFJhdGlvXCIsczowLGM6MSxmOiEwLG46cixwZzohMCxwcjpsLl9wcmlvcml0eX0sYT1sLl9vdmVyd3JpdGVQcm9wcy5sZW5ndGg7LS1hPi0xOylpW2wuX292ZXJ3cml0ZVByb3BzW2FdXT10aGlzLl9maXJzdFBUOyhsLl9wcmlvcml0eXx8bC5fb25Jbml0QWxsUHJvcHMpJiYobz0hMCksKGwuX29uRGlzYWJsZXx8bC5fb25FbmFibGUpJiYodGhpcy5fbm90aWZ5UGx1Z2luc09mRW5hYmxlZD0hMCl9ZWxzZSB0aGlzLl9maXJzdFBUPWlbcl09aD17X25leHQ6dGhpcy5fZmlyc3RQVCx0OmUscDpyLGY6XCJmdW5jdGlvblwiPT10eXBlb2YgZVtyXSxuOnIscGc6ITEscHI6MH0saC5zPWguZj9lW3IuaW5kZXhPZihcInNldFwiKXx8XCJmdW5jdGlvblwiIT10eXBlb2YgZVtcImdldFwiK3Iuc3Vic3RyKDMpXT9yOlwiZ2V0XCIrci5zdWJzdHIoMyldKCk6cGFyc2VGbG9hdChlW3JdKSxoLmM9XCJzdHJpbmdcIj09dHlwZW9mIF8mJlwiPVwiPT09Xy5jaGFyQXQoMSk/cGFyc2VJbnQoXy5jaGFyQXQoMCkrXCIxXCIsMTApKk51bWJlcihfLnN1YnN0cigyKSk6TnVtYmVyKF8pLWguc3x8MDtoJiZoLl9uZXh0JiYoaC5fbmV4dC5fcHJldj1oKX1yZXR1cm4gbiYmdGhpcy5fa2lsbChuLGUpP3RoaXMuX2luaXRQcm9wcyhlLGkscyxuKTp0aGlzLl9vdmVyd3JpdGU+MSYmdGhpcy5fZmlyc3RQVCYmcy5sZW5ndGg+MSYmJChlLHRoaXMsaSx0aGlzLl9vdmVyd3JpdGUscyk/KHRoaXMuX2tpbGwoaSxlKSx0aGlzLl9pbml0UHJvcHMoZSxpLHMsbikpOih0aGlzLl9maXJzdFBUJiYodGhpcy52YXJzLmxhenkhPT0hMSYmdGhpcy5fZHVyYXRpb258fHRoaXMudmFycy5sYXp5JiYhdGhpcy5fZHVyYXRpb24pJiYoT1tlLl9nc1R3ZWVuSURdPSEwKSxvKX0sbi5yZW5kZXI9ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG4scixhLG89dGhpcy5fdGltZSxsPXRoaXMuX2R1cmF0aW9uLF89dGhpcy5fcmF3UHJldlRpbWU7aWYodD49bCl0aGlzLl90b3RhbFRpbWU9dGhpcy5fdGltZT1sLHRoaXMucmF0aW89dGhpcy5fZWFzZS5fY2FsY0VuZD90aGlzLl9lYXNlLmdldFJhdGlvKDEpOjEsdGhpcy5fcmV2ZXJzZWR8fChzPSEwLG49XCJvbkNvbXBsZXRlXCIpLDA9PT1sJiYodGhpcy5faW5pdHRlZHx8IXRoaXMudmFycy5sYXp5fHxpKSYmKHRoaXMuX3N0YXJ0VGltZT09PXRoaXMuX3RpbWVsaW5lLl9kdXJhdGlvbiYmKHQ9MCksKDA9PT10fHwwPl98fF89PT1oKSYmXyE9PXQmJihpPSEwLF8+aCYmKG49XCJvblJldmVyc2VDb21wbGV0ZVwiKSksdGhpcy5fcmF3UHJldlRpbWU9YT0hZXx8dHx8Xz09PXQ/dDpoKTtlbHNlIGlmKDFlLTc+dCl0aGlzLl90b3RhbFRpbWU9dGhpcy5fdGltZT0wLHRoaXMucmF0aW89dGhpcy5fZWFzZS5fY2FsY0VuZD90aGlzLl9lYXNlLmdldFJhdGlvKDApOjAsKDAhPT1vfHwwPT09bCYmXz4wJiZfIT09aCkmJihuPVwib25SZXZlcnNlQ29tcGxldGVcIixzPXRoaXMuX3JldmVyc2VkKSwwPnQ/KHRoaXMuX2FjdGl2ZT0hMSwwPT09bCYmKHRoaXMuX2luaXR0ZWR8fCF0aGlzLnZhcnMubGF6eXx8aSkmJihfPj0wJiYoaT0hMCksdGhpcy5fcmF3UHJldlRpbWU9YT0hZXx8dHx8Xz09PXQ/dDpoKSk6dGhpcy5faW5pdHRlZHx8KGk9ITApO2Vsc2UgaWYodGhpcy5fdG90YWxUaW1lPXRoaXMuX3RpbWU9dCx0aGlzLl9lYXNlVHlwZSl7dmFyIHU9dC9sLG09dGhpcy5fZWFzZVR5cGUsZj10aGlzLl9lYXNlUG93ZXI7KDE9PT1tfHwzPT09bSYmdT49LjUpJiYodT0xLXUpLDM9PT1tJiYodSo9MiksMT09PWY/dSo9dToyPT09Zj91Kj11KnU6Mz09PWY/dSo9dSp1KnU6ND09PWYmJih1Kj11KnUqdSp1KSx0aGlzLnJhdGlvPTE9PT1tPzEtdToyPT09bT91Oi41PnQvbD91LzI6MS11LzJ9ZWxzZSB0aGlzLnJhdGlvPXRoaXMuX2Vhc2UuZ2V0UmF0aW8odC9sKTtpZih0aGlzLl90aW1lIT09b3x8aSl7aWYoIXRoaXMuX2luaXR0ZWQpe2lmKHRoaXMuX2luaXQoKSwhdGhpcy5faW5pdHRlZHx8dGhpcy5fZ2MpcmV0dXJuO2lmKCFpJiZ0aGlzLl9maXJzdFBUJiYodGhpcy52YXJzLmxhenkhPT0hMSYmdGhpcy5fZHVyYXRpb258fHRoaXMudmFycy5sYXp5JiYhdGhpcy5fZHVyYXRpb24pKXJldHVybiB0aGlzLl90aW1lPXRoaXMuX3RvdGFsVGltZT1vLHRoaXMuX3Jhd1ByZXZUaW1lPV8sei5wdXNoKHRoaXMpLHRoaXMuX2xhenk9dCx2b2lkIDA7dGhpcy5fdGltZSYmIXM/dGhpcy5yYXRpbz10aGlzLl9lYXNlLmdldFJhdGlvKHRoaXMuX3RpbWUvbCk6cyYmdGhpcy5fZWFzZS5fY2FsY0VuZCYmKHRoaXMucmF0aW89dGhpcy5fZWFzZS5nZXRSYXRpbygwPT09dGhpcy5fdGltZT8wOjEpKX1mb3IodGhpcy5fbGF6eSE9PSExJiYodGhpcy5fbGF6eT0hMSksdGhpcy5fYWN0aXZlfHwhdGhpcy5fcGF1c2VkJiZ0aGlzLl90aW1lIT09byYmdD49MCYmKHRoaXMuX2FjdGl2ZT0hMCksMD09PW8mJih0aGlzLl9zdGFydEF0JiYodD49MD90aGlzLl9zdGFydEF0LnJlbmRlcih0LGUsaSk6bnx8KG49XCJfZHVtbXlHU1wiKSksdGhpcy52YXJzLm9uU3RhcnQmJigwIT09dGhpcy5fdGltZXx8MD09PWwpJiYoZXx8dGhpcy52YXJzLm9uU3RhcnQuYXBwbHkodGhpcy52YXJzLm9uU3RhcnRTY29wZXx8dGhpcyx0aGlzLnZhcnMub25TdGFydFBhcmFtc3x8ZykpKSxyPXRoaXMuX2ZpcnN0UFQ7cjspci5mP3IudFtyLnBdKHIuYyp0aGlzLnJhdGlvK3Iucyk6ci50W3IucF09ci5jKnRoaXMucmF0aW8rci5zLHI9ci5fbmV4dDt0aGlzLl9vblVwZGF0ZSYmKDA+dCYmdGhpcy5fc3RhcnRBdCYmdGhpcy5fc3RhcnRUaW1lJiZ0aGlzLl9zdGFydEF0LnJlbmRlcih0LGUsaSksZXx8KHRoaXMuX3RpbWUhPT1vfHxzKSYmdGhpcy5fb25VcGRhdGUuYXBwbHkodGhpcy52YXJzLm9uVXBkYXRlU2NvcGV8fHRoaXMsdGhpcy52YXJzLm9uVXBkYXRlUGFyYW1zfHxnKSksbiYmKHRoaXMuX2djfHwoMD50JiZ0aGlzLl9zdGFydEF0JiYhdGhpcy5fb25VcGRhdGUmJnRoaXMuX3N0YXJ0VGltZSYmdGhpcy5fc3RhcnRBdC5yZW5kZXIodCxlLGkpLHMmJih0aGlzLl90aW1lbGluZS5hdXRvUmVtb3ZlQ2hpbGRyZW4mJnRoaXMuX2VuYWJsZWQoITEsITEpLHRoaXMuX2FjdGl2ZT0hMSksIWUmJnRoaXMudmFyc1tuXSYmdGhpcy52YXJzW25dLmFwcGx5KHRoaXMudmFyc1tuK1wiU2NvcGVcIl18fHRoaXMsdGhpcy52YXJzW24rXCJQYXJhbXNcIl18fGcpLDA9PT1sJiZ0aGlzLl9yYXdQcmV2VGltZT09PWgmJmEhPT1oJiYodGhpcy5fcmF3UHJldlRpbWU9MCkpKX19LG4uX2tpbGw9ZnVuY3Rpb24odCxlKXtpZihcImFsbFwiPT09dCYmKHQ9bnVsbCksbnVsbD09dCYmKG51bGw9PWV8fGU9PT10aGlzLnRhcmdldCkpcmV0dXJuIHRoaXMuX2xhenk9ITEsdGhpcy5fZW5hYmxlZCghMSwhMSk7ZT1cInN0cmluZ1wiIT10eXBlb2YgZT9lfHx0aGlzLl90YXJnZXRzfHx0aGlzLnRhcmdldDpELnNlbGVjdG9yKGUpfHxlO3ZhciBpLHMsbixyLGEsbyxsLGg7aWYoKG0oZSl8fEkoZSkpJiZcIm51bWJlclwiIT10eXBlb2YgZVswXSlmb3IoaT1lLmxlbmd0aDstLWk+LTE7KXRoaXMuX2tpbGwodCxlW2ldKSYmKG89ITApO2Vsc2V7aWYodGhpcy5fdGFyZ2V0cyl7Zm9yKGk9dGhpcy5fdGFyZ2V0cy5sZW5ndGg7LS1pPi0xOylpZihlPT09dGhpcy5fdGFyZ2V0c1tpXSl7YT10aGlzLl9wcm9wTG9va3VwW2ldfHx7fSx0aGlzLl9vdmVyd3JpdHRlblByb3BzPXRoaXMuX292ZXJ3cml0dGVuUHJvcHN8fFtdLHM9dGhpcy5fb3ZlcndyaXR0ZW5Qcm9wc1tpXT10P3RoaXMuX292ZXJ3cml0dGVuUHJvcHNbaV18fHt9OlwiYWxsXCI7YnJlYWt9fWVsc2V7aWYoZSE9PXRoaXMudGFyZ2V0KXJldHVybiExO2E9dGhpcy5fcHJvcExvb2t1cCxzPXRoaXMuX292ZXJ3cml0dGVuUHJvcHM9dD90aGlzLl9vdmVyd3JpdHRlblByb3BzfHx7fTpcImFsbFwifWlmKGEpe2w9dHx8YSxoPXQhPT1zJiZcImFsbFwiIT09cyYmdCE9PWEmJihcIm9iamVjdFwiIT10eXBlb2YgdHx8IXQuX3RlbXBLaWxsKTtmb3IobiBpbiBsKShyPWFbbl0pJiYoci5wZyYmci50Ll9raWxsKGwpJiYobz0hMCksci5wZyYmMCE9PXIudC5fb3ZlcndyaXRlUHJvcHMubGVuZ3RofHwoci5fcHJldj9yLl9wcmV2Ll9uZXh0PXIuX25leHQ6cj09PXRoaXMuX2ZpcnN0UFQmJih0aGlzLl9maXJzdFBUPXIuX25leHQpLHIuX25leHQmJihyLl9uZXh0Ll9wcmV2PXIuX3ByZXYpLHIuX25leHQ9ci5fcHJldj1udWxsKSxkZWxldGUgYVtuXSksaCYmKHNbbl09MSk7IXRoaXMuX2ZpcnN0UFQmJnRoaXMuX2luaXR0ZWQmJnRoaXMuX2VuYWJsZWQoITEsITEpfX1yZXR1cm4gb30sbi5pbnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25vdGlmeVBsdWdpbnNPZkVuYWJsZWQmJkQuX29uUGx1Z2luRXZlbnQoXCJfb25EaXNhYmxlXCIsdGhpcyksdGhpcy5fZmlyc3RQVD1udWxsLHRoaXMuX292ZXJ3cml0dGVuUHJvcHM9bnVsbCx0aGlzLl9vblVwZGF0ZT1udWxsLHRoaXMuX3N0YXJ0QXQ9bnVsbCx0aGlzLl9pbml0dGVkPXRoaXMuX2FjdGl2ZT10aGlzLl9ub3RpZnlQbHVnaW5zT2ZFbmFibGVkPXRoaXMuX2xhenk9ITEsdGhpcy5fcHJvcExvb2t1cD10aGlzLl90YXJnZXRzP3t9OltdLHRoaXN9LG4uX2VuYWJsZWQ9ZnVuY3Rpb24odCxlKXtpZihhfHxyLndha2UoKSx0JiZ0aGlzLl9nYyl7dmFyIGkscz10aGlzLl90YXJnZXRzO2lmKHMpZm9yKGk9cy5sZW5ndGg7LS1pPi0xOyl0aGlzLl9zaWJsaW5nc1tpXT1NKHNbaV0sdGhpcywhMCk7ZWxzZSB0aGlzLl9zaWJsaW5ncz1NKHRoaXMudGFyZ2V0LHRoaXMsITApfXJldHVybiB4LnByb3RvdHlwZS5fZW5hYmxlZC5jYWxsKHRoaXMsdCxlKSx0aGlzLl9ub3RpZnlQbHVnaW5zT2ZFbmFibGVkJiZ0aGlzLl9maXJzdFBUP0QuX29uUGx1Z2luRXZlbnQodD9cIl9vbkVuYWJsZVwiOlwiX29uRGlzYWJsZVwiLHRoaXMpOiExfSxELnRvPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbmV3IEQodCxlLGkpfSxELmZyb209ZnVuY3Rpb24odCxlLGkpe3JldHVybiBpLnJ1bkJhY2t3YXJkcz0hMCxpLmltbWVkaWF0ZVJlbmRlcj0wIT1pLmltbWVkaWF0ZVJlbmRlcixuZXcgRCh0LGUsaSl9LEQuZnJvbVRvPWZ1bmN0aW9uKHQsZSxpLHMpe3JldHVybiBzLnN0YXJ0QXQ9aSxzLmltbWVkaWF0ZVJlbmRlcj0wIT1zLmltbWVkaWF0ZVJlbmRlciYmMCE9aS5pbW1lZGlhdGVSZW5kZXIsbmV3IEQodCxlLHMpfSxELmRlbGF5ZWRDYWxsPWZ1bmN0aW9uKHQsZSxpLHMsbil7cmV0dXJuIG5ldyBEKGUsMCx7ZGVsYXk6dCxvbkNvbXBsZXRlOmUsb25Db21wbGV0ZVBhcmFtczppLG9uQ29tcGxldGVTY29wZTpzLG9uUmV2ZXJzZUNvbXBsZXRlOmUsb25SZXZlcnNlQ29tcGxldGVQYXJhbXM6aSxvblJldmVyc2VDb21wbGV0ZVNjb3BlOnMsaW1tZWRpYXRlUmVuZGVyOiExLHVzZUZyYW1lczpuLG92ZXJ3cml0ZTowfSl9LEQuc2V0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBEKHQsMCxlKX0sRC5nZXRUd2VlbnNPZj1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJuW107dD1cInN0cmluZ1wiIT10eXBlb2YgdD90OkQuc2VsZWN0b3IodCl8fHQ7dmFyIGkscyxuLHI7aWYoKG0odCl8fEkodCkpJiZcIm51bWJlclwiIT10eXBlb2YgdFswXSl7Zm9yKGk9dC5sZW5ndGgscz1bXTstLWk+LTE7KXM9cy5jb25jYXQoRC5nZXRUd2VlbnNPZih0W2ldLGUpKTtmb3IoaT1zLmxlbmd0aDstLWk+LTE7KWZvcihyPXNbaV0sbj1pOy0tbj4tMTspcj09PXNbbl0mJnMuc3BsaWNlKGksMSl9ZWxzZSBmb3Iocz1NKHQpLmNvbmNhdCgpLGk9cy5sZW5ndGg7LS1pPi0xOykoc1tpXS5fZ2N8fGUmJiFzW2ldLmlzQWN0aXZlKCkpJiZzLnNwbGljZShpLDEpO3JldHVybiBzfSxELmtpbGxUd2VlbnNPZj1ELmtpbGxEZWxheWVkQ2FsbHNUbz1mdW5jdGlvbih0LGUsaSl7XCJvYmplY3RcIj09dHlwZW9mIGUmJihpPWUsZT0hMSk7Zm9yKHZhciBzPUQuZ2V0VHdlZW5zT2YodCxlKSxuPXMubGVuZ3RoOy0tbj4tMTspc1tuXS5fa2lsbChpLHQpfTt2YXIgSD1kKFwicGx1Z2lucy5Ud2VlblBsdWdpblwiLGZ1bmN0aW9uKHQsZSl7dGhpcy5fb3ZlcndyaXRlUHJvcHM9KHR8fFwiXCIpLnNwbGl0KFwiLFwiKSx0aGlzLl9wcm9wTmFtZT10aGlzLl9vdmVyd3JpdGVQcm9wc1swXSx0aGlzLl9wcmlvcml0eT1lfHwwLHRoaXMuX3N1cGVyPUgucHJvdG90eXBlfSwhMCk7aWYobj1ILnByb3RvdHlwZSxILnZlcnNpb249XCIxLjEwLjFcIixILkFQST0yLG4uX2ZpcnN0UFQ9bnVsbCxuLl9hZGRUd2Vlbj1mdW5jdGlvbih0LGUsaSxzLG4scil7dmFyIGEsbztyZXR1cm4gbnVsbCE9cyYmKGE9XCJudW1iZXJcIj09dHlwZW9mIHN8fFwiPVwiIT09cy5jaGFyQXQoMSk/TnVtYmVyKHMpLWk6cGFyc2VJbnQocy5jaGFyQXQoMCkrXCIxXCIsMTApKk51bWJlcihzLnN1YnN0cigyKSkpPyh0aGlzLl9maXJzdFBUPW89e19uZXh0OnRoaXMuX2ZpcnN0UFQsdDp0LHA6ZSxzOmksYzphLGY6XCJmdW5jdGlvblwiPT10eXBlb2YgdFtlXSxuOm58fGUscjpyfSxvLl9uZXh0JiYoby5fbmV4dC5fcHJldj1vKSxvKTp2b2lkIDB9LG4uc2V0UmF0aW89ZnVuY3Rpb24odCl7Zm9yKHZhciBlLGk9dGhpcy5fZmlyc3RQVCxzPTFlLTY7aTspZT1pLmMqdCtpLnMsaS5yP2U9TWF0aC5yb3VuZChlKTpzPmUmJmU+LXMmJihlPTApLGkuZj9pLnRbaS5wXShlKTppLnRbaS5wXT1lLGk9aS5fbmV4dH0sbi5fa2lsbD1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMuX292ZXJ3cml0ZVByb3BzLHM9dGhpcy5fZmlyc3RQVDtpZihudWxsIT10W3RoaXMuX3Byb3BOYW1lXSl0aGlzLl9vdmVyd3JpdGVQcm9wcz1bXTtlbHNlIGZvcihlPWkubGVuZ3RoOy0tZT4tMTspbnVsbCE9dFtpW2VdXSYmaS5zcGxpY2UoZSwxKTtmb3IoO3M7KW51bGwhPXRbcy5uXSYmKHMuX25leHQmJihzLl9uZXh0Ll9wcmV2PXMuX3ByZXYpLHMuX3ByZXY/KHMuX3ByZXYuX25leHQ9cy5fbmV4dCxzLl9wcmV2PW51bGwpOnRoaXMuX2ZpcnN0UFQ9PT1zJiYodGhpcy5fZmlyc3RQVD1zLl9uZXh0KSkscz1zLl9uZXh0O3JldHVybiExfSxuLl9yb3VuZFByb3BzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBpPXRoaXMuX2ZpcnN0UFQ7aTspKHRbdGhpcy5fcHJvcE5hbWVdfHxudWxsIT1pLm4mJnRbaS5uLnNwbGl0KHRoaXMuX3Byb3BOYW1lK1wiX1wiKS5qb2luKFwiXCIpXSkmJihpLnI9ZSksaT1pLl9uZXh0fSxELl9vblBsdWdpbkV2ZW50PWZ1bmN0aW9uKHQsZSl7dmFyIGkscyxuLHIsYSxvPWUuX2ZpcnN0UFQ7aWYoXCJfb25Jbml0QWxsUHJvcHNcIj09PXQpe2Zvcig7bzspe2ZvcihhPW8uX25leHQscz1uO3MmJnMucHI+by5wcjspcz1zLl9uZXh0OyhvLl9wcmV2PXM/cy5fcHJldjpyKT9vLl9wcmV2Ll9uZXh0PW86bj1vLChvLl9uZXh0PXMpP3MuX3ByZXY9bzpyPW8sbz1hfW89ZS5fZmlyc3RQVD1ufWZvcig7bzspby5wZyYmXCJmdW5jdGlvblwiPT10eXBlb2Ygby50W3RdJiZvLnRbdF0oKSYmKGk9ITApLG89by5fbmV4dDtyZXR1cm4gaX0sSC5hY3RpdmF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGg7LS1lPi0xOyl0W2VdLkFQST09PUguQVBJJiYoTFsobmV3IHRbZV0pLl9wcm9wTmFtZV09dFtlXSk7cmV0dXJuITB9LGMucGx1Z2luPWZ1bmN0aW9uKHQpe2lmKCEodCYmdC5wcm9wTmFtZSYmdC5pbml0JiZ0LkFQSSkpdGhyb3dcImlsbGVnYWwgcGx1Z2luIGRlZmluaXRpb24uXCI7dmFyIGUsaT10LnByb3BOYW1lLHM9dC5wcmlvcml0eXx8MCxuPXQub3ZlcndyaXRlUHJvcHMscj17aW5pdDpcIl9vbkluaXRUd2VlblwiLHNldDpcInNldFJhdGlvXCIsa2lsbDpcIl9raWxsXCIscm91bmQ6XCJfcm91bmRQcm9wc1wiLGluaXRBbGw6XCJfb25Jbml0QWxsUHJvcHNcIn0sYT1kKFwicGx1Z2lucy5cIitpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2kuc3Vic3RyKDEpK1wiUGx1Z2luXCIsZnVuY3Rpb24oKXtILmNhbGwodGhpcyxpLHMpLHRoaXMuX292ZXJ3cml0ZVByb3BzPW58fFtdfSx0Lmdsb2JhbD09PSEwKSxvPWEucHJvdG90eXBlPW5ldyBIKGkpO28uY29uc3RydWN0b3I9YSxhLkFQST10LkFQSTtmb3IoZSBpbiByKVwiZnVuY3Rpb25cIj09dHlwZW9mIHRbZV0mJihvW3JbZV1dPXRbZV0pO3JldHVybiBhLnZlcnNpb249dC52ZXJzaW9uLEguYWN0aXZhdGUoW2FdKSxhfSxpPXQuX2dzUXVldWUpe2ZvcihzPTA7aS5sZW5ndGg+cztzKyspaVtzXSgpO2ZvcihuIGluIGYpZltuXS5mdW5jfHx0LmNvbnNvbGUubG9nKFwiR1NBUCBlbmNvdW50ZXJlZCBtaXNzaW5nIGRlcGVuZGVuY3k6IGNvbS5ncmVlbnNvY2suXCIrbil9YT0hMX19KSh3aW5kb3cpOyIsIi8qIVxyXG4gKiBWRVJTSU9OOiBiZXRhIDEuOS4zXHJcbiAqIERBVEU6IDIwMTMtMDQtMDJcclxuICogVVBEQVRFUyBBTkQgRE9DUyBBVDogaHR0cDovL3d3dy5ncmVlbnNvY2suY29tXHJcbiAqXHJcbiAqIEBsaWNlbnNlIENvcHlyaWdodCAoYykgMjAwOC0yMDE0LCBHcmVlblNvY2suIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIFRoaXMgd29yayBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhdCBodHRwOi8vd3d3LmdyZWVuc29jay5jb20vdGVybXNfb2ZfdXNlLmh0bWwgb3IgZm9yXHJcbiAqIENsdWIgR3JlZW5Tb2NrIG1lbWJlcnMsIHRoZSBzb2Z0d2FyZSBhZ3JlZW1lbnQgdGhhdCB3YXMgaXNzdWVkIHdpdGggeW91ciBtZW1iZXJzaGlwLlxyXG4gKiBcclxuICogQGF1dGhvcjogSmFjayBEb3lsZSwgamFja0BncmVlbnNvY2suY29tXHJcbiAqKi9cclxuKHdpbmRvdy5fZ3NRdWV1ZXx8KHdpbmRvdy5fZ3NRdWV1ZT1bXSkpLnB1c2goZnVuY3Rpb24oKXtcInVzZSBzdHJpY3RcIjt3aW5kb3cuX2dzRGVmaW5lKFwiZWFzaW5nLkJhY2tcIixbXCJlYXNpbmcuRWFzZVwiXSxmdW5jdGlvbih0KXt2YXIgZSxpLHMscj13aW5kb3cuR3JlZW5Tb2NrR2xvYmFsc3x8d2luZG93LG49ci5jb20uZ3JlZW5zb2NrLGE9MipNYXRoLlBJLG89TWF0aC5QSS8yLGg9bi5fY2xhc3MsbD1mdW5jdGlvbihlLGkpe3ZhciBzPWgoXCJlYXNpbmcuXCIrZSxmdW5jdGlvbigpe30sITApLHI9cy5wcm90b3R5cGU9bmV3IHQ7cmV0dXJuIHIuY29uc3RydWN0b3I9cyxyLmdldFJhdGlvPWksc30sXz10LnJlZ2lzdGVyfHxmdW5jdGlvbigpe30sdT1mdW5jdGlvbih0LGUsaSxzKXt2YXIgcj1oKFwiZWFzaW5nLlwiK3Qse2Vhc2VPdXQ6bmV3IGUsZWFzZUluOm5ldyBpLGVhc2VJbk91dDpuZXcgc30sITApO3JldHVybiBfKHIsdCkscn0sYz1mdW5jdGlvbih0LGUsaSl7dGhpcy50PXQsdGhpcy52PWUsaSYmKHRoaXMubmV4dD1pLGkucHJldj10aGlzLHRoaXMuYz1pLnYtZSx0aGlzLmdhcD1pLnQtdCl9LGY9ZnVuY3Rpb24oZSxpKXt2YXIgcz1oKFwiZWFzaW5nLlwiK2UsZnVuY3Rpb24odCl7dGhpcy5fcDE9dHx8MD09PXQ/dDoxLjcwMTU4LHRoaXMuX3AyPTEuNTI1KnRoaXMuX3AxfSwhMCkscj1zLnByb3RvdHlwZT1uZXcgdDtyZXR1cm4gci5jb25zdHJ1Y3Rvcj1zLHIuZ2V0UmF0aW89aSxyLmNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModCl9LHN9LHA9dShcIkJhY2tcIixmKFwiQmFja091dFwiLGZ1bmN0aW9uKHQpe3JldHVybih0LT0xKSp0KigodGhpcy5fcDErMSkqdCt0aGlzLl9wMSkrMX0pLGYoXCJCYWNrSW5cIixmdW5jdGlvbih0KXtyZXR1cm4gdCp0KigodGhpcy5fcDErMSkqdC10aGlzLl9wMSl9KSxmKFwiQmFja0luT3V0XCIsZnVuY3Rpb24odCl7cmV0dXJuIDE+KHQqPTIpPy41KnQqdCooKHRoaXMuX3AyKzEpKnQtdGhpcy5fcDIpOi41KigodC09MikqdCooKHRoaXMuX3AyKzEpKnQrdGhpcy5fcDIpKzIpfSkpLG09aChcImVhc2luZy5TbG93TW9cIixmdW5jdGlvbih0LGUsaSl7ZT1lfHwwPT09ZT9lOi43LG51bGw9PXQ/dD0uNzp0PjEmJih0PTEpLHRoaXMuX3A9MSE9PXQ/ZTowLHRoaXMuX3AxPSgxLXQpLzIsdGhpcy5fcDI9dCx0aGlzLl9wMz10aGlzLl9wMSt0aGlzLl9wMix0aGlzLl9jYWxjRW5kPWk9PT0hMH0sITApLGQ9bS5wcm90b3R5cGU9bmV3IHQ7cmV0dXJuIGQuY29uc3RydWN0b3I9bSxkLmdldFJhdGlvPWZ1bmN0aW9uKHQpe3ZhciBlPXQrKC41LXQpKnRoaXMuX3A7cmV0dXJuIHRoaXMuX3AxPnQ/dGhpcy5fY2FsY0VuZD8xLSh0PTEtdC90aGlzLl9wMSkqdDplLSh0PTEtdC90aGlzLl9wMSkqdCp0KnQqZTp0PnRoaXMuX3AzP3RoaXMuX2NhbGNFbmQ/MS0odD0odC10aGlzLl9wMykvdGhpcy5fcDEpKnQ6ZSsodC1lKSoodD0odC10aGlzLl9wMykvdGhpcy5fcDEpKnQqdCp0OnRoaXMuX2NhbGNFbmQ/MTplfSxtLmVhc2U9bmV3IG0oLjcsLjcpLGQuY29uZmlnPW0uY29uZmlnPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gbmV3IG0odCxlLGkpfSxlPWgoXCJlYXNpbmcuU3RlcHBlZEVhc2VcIixmdW5jdGlvbih0KXt0PXR8fDEsdGhpcy5fcDE9MS90LHRoaXMuX3AyPXQrMX0sITApLGQ9ZS5wcm90b3R5cGU9bmV3IHQsZC5jb25zdHJ1Y3Rvcj1lLGQuZ2V0UmF0aW89ZnVuY3Rpb24odCl7cmV0dXJuIDA+dD90PTA6dD49MSYmKHQ9Ljk5OTk5OTk5OSksKHRoaXMuX3AyKnQ+PjApKnRoaXMuX3AxfSxkLmNvbmZpZz1lLmNvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGUodCl9LGk9aChcImVhc2luZy5Sb3VnaEVhc2VcIixmdW5jdGlvbihlKXtlPWV8fHt9O2Zvcih2YXIgaSxzLHIsbixhLG8saD1lLnRhcGVyfHxcIm5vbmVcIixsPVtdLF89MCx1PTB8KGUucG9pbnRzfHwyMCksZj11LHA9ZS5yYW5kb21pemUhPT0hMSxtPWUuY2xhbXA9PT0hMCxkPWUudGVtcGxhdGUgaW5zdGFuY2VvZiB0P2UudGVtcGxhdGU6bnVsbCxnPVwibnVtYmVyXCI9PXR5cGVvZiBlLnN0cmVuZ3RoPy40KmUuc3RyZW5ndGg6LjQ7LS1mPi0xOylpPXA/TWF0aC5yYW5kb20oKToxL3UqZixzPWQ/ZC5nZXRSYXRpbyhpKTppLFwibm9uZVwiPT09aD9yPWc6XCJvdXRcIj09PWg/KG49MS1pLHI9bipuKmcpOlwiaW5cIj09PWg/cj1pKmkqZzouNT5pPyhuPTIqaSxyPS41Km4qbipnKToobj0yKigxLWkpLHI9LjUqbipuKmcpLHA/cys9TWF0aC5yYW5kb20oKSpyLS41KnI6ZiUyP3MrPS41KnI6cy09LjUqcixtJiYocz4xP3M9MTowPnMmJihzPTApKSxsW18rK109e3g6aSx5OnN9O2ZvcihsLnNvcnQoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pLG89bmV3IGMoMSwxLG51bGwpLGY9dTstLWY+LTE7KWE9bFtmXSxvPW5ldyBjKGEueCxhLnksbyk7dGhpcy5fcHJldj1uZXcgYygwLDAsMCE9PW8udD9vOm8ubmV4dCl9LCEwKSxkPWkucHJvdG90eXBlPW5ldyB0LGQuY29uc3RydWN0b3I9aSxkLmdldFJhdGlvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ByZXY7aWYodD5lLnQpe2Zvcig7ZS5uZXh0JiZ0Pj1lLnQ7KWU9ZS5uZXh0O2U9ZS5wcmV2fWVsc2UgZm9yKDtlLnByZXYmJmUudD49dDspZT1lLnByZXY7cmV0dXJuIHRoaXMuX3ByZXY9ZSxlLnYrKHQtZS50KS9lLmdhcCplLmN9LGQuY29uZmlnPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgaSh0KX0saS5lYXNlPW5ldyBpLHUoXCJCb3VuY2VcIixsKFwiQm91bmNlT3V0XCIsZnVuY3Rpb24odCl7cmV0dXJuIDEvMi43NT50PzcuNTYyNSp0KnQ6Mi8yLjc1PnQ/Ny41NjI1Kih0LT0xLjUvMi43NSkqdCsuNzU6Mi41LzIuNzU+dD83LjU2MjUqKHQtPTIuMjUvMi43NSkqdCsuOTM3NTo3LjU2MjUqKHQtPTIuNjI1LzIuNzUpKnQrLjk4NDM3NX0pLGwoXCJCb3VuY2VJblwiLGZ1bmN0aW9uKHQpe3JldHVybiAxLzIuNzU+KHQ9MS10KT8xLTcuNTYyNSp0KnQ6Mi8yLjc1PnQ/MS0oNy41NjI1Kih0LT0xLjUvMi43NSkqdCsuNzUpOjIuNS8yLjc1PnQ/MS0oNy41NjI1Kih0LT0yLjI1LzIuNzUpKnQrLjkzNzUpOjEtKDcuNTYyNSoodC09Mi42MjUvMi43NSkqdCsuOTg0Mzc1KX0pLGwoXCJCb3VuY2VJbk91dFwiLGZ1bmN0aW9uKHQpe3ZhciBlPS41PnQ7cmV0dXJuIHQ9ZT8xLTIqdDoyKnQtMSx0PTEvMi43NT50PzcuNTYyNSp0KnQ6Mi8yLjc1PnQ/Ny41NjI1Kih0LT0xLjUvMi43NSkqdCsuNzU6Mi41LzIuNzU+dD83LjU2MjUqKHQtPTIuMjUvMi43NSkqdCsuOTM3NTo3LjU2MjUqKHQtPTIuNjI1LzIuNzUpKnQrLjk4NDM3NSxlPy41KigxLXQpOi41KnQrLjV9KSksdShcIkNpcmNcIixsKFwiQ2lyY091dFwiLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoMS0odC09MSkqdCl9KSxsKFwiQ2lyY0luXCIsZnVuY3Rpb24odCl7cmV0dXJuLShNYXRoLnNxcnQoMS10KnQpLTEpfSksbChcIkNpcmNJbk91dFwiLGZ1bmN0aW9uKHQpe3JldHVybiAxPih0Kj0yKT8tLjUqKE1hdGguc3FydCgxLXQqdCktMSk6LjUqKE1hdGguc3FydCgxLSh0LT0yKSp0KSsxKX0pKSxzPWZ1bmN0aW9uKGUsaSxzKXt2YXIgcj1oKFwiZWFzaW5nLlwiK2UsZnVuY3Rpb24odCxlKXt0aGlzLl9wMT10fHwxLHRoaXMuX3AyPWV8fHMsdGhpcy5fcDM9dGhpcy5fcDIvYSooTWF0aC5hc2luKDEvdGhpcy5fcDEpfHwwKX0sITApLG49ci5wcm90b3R5cGU9bmV3IHQ7cmV0dXJuIG4uY29uc3RydWN0b3I9cixuLmdldFJhdGlvPWksbi5jb25maWc9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHIodCxlKX0scn0sdShcIkVsYXN0aWNcIixzKFwiRWxhc3RpY091dFwiLGZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9wMSpNYXRoLnBvdygyLC0xMCp0KSpNYXRoLnNpbigodC10aGlzLl9wMykqYS90aGlzLl9wMikrMX0sLjMpLHMoXCJFbGFzdGljSW5cIixmdW5jdGlvbih0KXtyZXR1cm4tKHRoaXMuX3AxKk1hdGgucG93KDIsMTAqKHQtPTEpKSpNYXRoLnNpbigodC10aGlzLl9wMykqYS90aGlzLl9wMikpfSwuMykscyhcIkVsYXN0aWNJbk91dFwiLGZ1bmN0aW9uKHQpe3JldHVybiAxPih0Kj0yKT8tLjUqdGhpcy5fcDEqTWF0aC5wb3coMiwxMCoodC09MSkpKk1hdGguc2luKCh0LXRoaXMuX3AzKSphL3RoaXMuX3AyKTouNSp0aGlzLl9wMSpNYXRoLnBvdygyLC0xMCoodC09MSkpKk1hdGguc2luKCh0LXRoaXMuX3AzKSphL3RoaXMuX3AyKSsxfSwuNDUpKSx1KFwiRXhwb1wiLGwoXCJFeHBvT3V0XCIsZnVuY3Rpb24odCl7cmV0dXJuIDEtTWF0aC5wb3coMiwtMTAqdCl9KSxsKFwiRXhwb0luXCIsZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucG93KDIsMTAqKHQtMSkpLS4wMDF9KSxsKFwiRXhwb0luT3V0XCIsZnVuY3Rpb24odCl7cmV0dXJuIDE+KHQqPTIpPy41Kk1hdGgucG93KDIsMTAqKHQtMSkpOi41KigyLU1hdGgucG93KDIsLTEwKih0LTEpKSl9KSksdShcIlNpbmVcIixsKFwiU2luZU91dFwiLGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNpbih0Km8pfSksbChcIlNpbmVJblwiLGZ1bmN0aW9uKHQpe3JldHVybi1NYXRoLmNvcyh0Km8pKzF9KSxsKFwiU2luZUluT3V0XCIsZnVuY3Rpb24odCl7cmV0dXJuLS41KihNYXRoLmNvcyhNYXRoLlBJKnQpLTEpfSkpLGgoXCJlYXNpbmcuRWFzZUxvb2t1cFwiLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiB0Lm1hcFtlXX19LCEwKSxfKHIuU2xvd01vLFwiU2xvd01vXCIsXCJlYXNlLFwiKSxfKGksXCJSb3VnaEVhc2VcIixcImVhc2UsXCIpLF8oZSxcIlN0ZXBwZWRFYXNlXCIsXCJlYXNlLFwiKSxwfSwhMCl9KSx3aW5kb3cuX2dzRGVmaW5lJiZ3aW5kb3cuX2dzUXVldWUucG9wKCkoKTsiLCIvKiFcclxuICogVkVSU0lPTjogMS4xMi4xXHJcbiAqIERBVEU6IDIwMTQtMDYtMjZcclxuICogVVBEQVRFUyBBTkQgRE9DUyBBVDogaHR0cDovL3d3dy5ncmVlbnNvY2suY29tXHJcbiAqXHJcbiAqIEBsaWNlbnNlIENvcHlyaWdodCAoYykgMjAwOC0yMDE0LCBHcmVlblNvY2suIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbiAqIFRoaXMgd29yayBpcyBzdWJqZWN0IHRvIHRoZSB0ZXJtcyBhdCBodHRwOi8vd3d3LmdyZWVuc29jay5jb20vdGVybXNfb2ZfdXNlLmh0bWwgb3IgZm9yXHJcbiAqIENsdWIgR3JlZW5Tb2NrIG1lbWJlcnMsIHRoZSBzb2Z0d2FyZSBhZ3JlZW1lbnQgdGhhdCB3YXMgaXNzdWVkIHdpdGggeW91ciBtZW1iZXJzaGlwLlxyXG4gKiBcclxuICogQGF1dGhvcjogSmFjayBEb3lsZSwgamFja0BncmVlbnNvY2suY29tXHJcbiAqL1xyXG4od2luZG93Ll9nc1F1ZXVlfHwod2luZG93Ll9nc1F1ZXVlPVtdKSkucHVzaChmdW5jdGlvbigpe1widXNlIHN0cmljdFwiO3dpbmRvdy5fZ3NEZWZpbmUoXCJwbHVnaW5zLkNTU1BsdWdpblwiLFtcInBsdWdpbnMuVHdlZW5QbHVnaW5cIixcIlR3ZWVuTGl0ZVwiXSxmdW5jdGlvbih0LGUpe3ZhciBpLHIscyxuLGE9ZnVuY3Rpb24oKXt0LmNhbGwodGhpcyxcImNzc1wiKSx0aGlzLl9vdmVyd3JpdGVQcm9wcy5sZW5ndGg9MCx0aGlzLnNldFJhdGlvPWEucHJvdG90eXBlLnNldFJhdGlvfSxvPXt9LGw9YS5wcm90b3R5cGU9bmV3IHQoXCJjc3NcIik7bC5jb25zdHJ1Y3Rvcj1hLGEudmVyc2lvbj1cIjEuMTIuMVwiLGEuQVBJPTIsYS5kZWZhdWx0VHJhbnNmb3JtUGVyc3BlY3RpdmU9MCxhLmRlZmF1bHRTa2V3VHlwZT1cImNvbXBlbnNhdGVkXCIsbD1cInB4XCIsYS5zdWZmaXhNYXA9e3RvcDpsLHJpZ2h0OmwsYm90dG9tOmwsbGVmdDpsLHdpZHRoOmwsaGVpZ2h0OmwsZm9udFNpemU6bCxwYWRkaW5nOmwsbWFyZ2luOmwscGVyc3BlY3RpdmU6bCxsaW5lSGVpZ2h0OlwiXCJ9O3ZhciBoLHUsZixfLHAsYyxkPS8oPzpcXGR8XFwtXFxkfFxcLlxcZHxcXC1cXC5cXGQpKy9nLG09Lyg/OlxcZHxcXC1cXGR8XFwuXFxkfFxcLVxcLlxcZHxcXCs9XFxkfFxcLT1cXGR8XFwrPS5cXGR8XFwtPVxcLlxcZCkrL2csZz0vKD86XFwrPXxcXC09fFxcLXxcXGIpW1xcZFxcLVxcLl0rW2EtekEtWjAtOV0qKD86JXxcXGIpL2dpLHY9L1teXFxkXFwtXFwuXS9nLHk9Lyg/OlxcZHxcXC18XFwrfD18I3xcXC4pKi9nLFQ9L29wYWNpdHkgKj0gKihbXildKikvaSx3PS9vcGFjaXR5OihbXjtdKikvaSx4PS9hbHBoYVxcKG9wYWNpdHkgKj0uKz9cXCkvaSxiPS9eKHJnYnxoc2wpLyxQPS8oW0EtWl0pL2csUz0vLShbYS16XSkvZ2ksQz0vKF4oPzp1cmxcXChcXFwifHVybFxcKCkpfCg/OihcXFwiXFwpKSR8XFwpJCkvZ2ksUj1mdW5jdGlvbih0LGUpe3JldHVybiBlLnRvVXBwZXJDYXNlKCl9LGs9Lyg/OkxlZnR8UmlnaHR8V2lkdGgpL2ksQT0vKE0xMXxNMTJ8TTIxfE0yMik9W1xcZFxcLVxcLmVdKy9naSxPPS9wcm9naWRcXDpEWEltYWdlVHJhbnNmb3JtXFwuTWljcm9zb2Z0XFwuTWF0cml4XFwoLis/XFwpL2ksRD0vLCg/PVteXFwpXSooPzpcXCh8JCkpL2dpLE09TWF0aC5QSS8xODAsTD0xODAvTWF0aC5QSSxOPXt9LFg9ZG9jdW1lbnQsej1YLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIiksST1YLmNyZWF0ZUVsZW1lbnQoXCJpbWdcIiksRT1hLl9pbnRlcm5hbHM9e19zcGVjaWFsUHJvcHM6b30sRj1uYXZpZ2F0b3IudXNlckFnZW50LFk9ZnVuY3Rpb24oKXt2YXIgdCxlPUYuaW5kZXhPZihcIkFuZHJvaWRcIiksaT1YLmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7cmV0dXJuIGY9LTEhPT1GLmluZGV4T2YoXCJTYWZhcmlcIikmJi0xPT09Ri5pbmRleE9mKFwiQ2hyb21lXCIpJiYoLTE9PT1lfHxOdW1iZXIoRi5zdWJzdHIoZSs4LDEpKT4zKSxwPWYmJjY+TnVtYmVyKEYuc3Vic3RyKEYuaW5kZXhPZihcIlZlcnNpb24vXCIpKzgsMSkpLF89LTEhPT1GLmluZGV4T2YoXCJGaXJlZm94XCIpLC9NU0lFIChbMC05XXsxLH1bXFwuMC05XXswLH0pLy5leGVjKEYpJiYoYz1wYXJzZUZsb2F0KFJlZ0V4cC4kMSkpLGkuaW5uZXJIVE1MPVwiPGEgc3R5bGU9J3RvcDoxcHg7b3BhY2l0eTouNTU7Jz5hPC9hPlwiLHQ9aS5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIilbMF0sdD8vXjAuNTUvLnRlc3QodC5zdHlsZS5vcGFjaXR5KTohMX0oKSxCPWZ1bmN0aW9uKHQpe3JldHVybiBULnRlc3QoXCJzdHJpbmdcIj09dHlwZW9mIHQ/dDoodC5jdXJyZW50U3R5bGU/dC5jdXJyZW50U3R5bGUuZmlsdGVyOnQuc3R5bGUuZmlsdGVyKXx8XCJcIik/cGFyc2VGbG9hdChSZWdFeHAuJDEpLzEwMDoxfSxVPWZ1bmN0aW9uKHQpe3dpbmRvdy5jb25zb2xlJiZjb25zb2xlLmxvZyh0KX0sVz1cIlwiLGo9XCJcIixWPWZ1bmN0aW9uKHQsZSl7ZT1lfHx6O3ZhciBpLHIscz1lLnN0eWxlO2lmKHZvaWQgMCE9PXNbdF0pcmV0dXJuIHQ7Zm9yKHQ9dC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSt0LnN1YnN0cigxKSxpPVtcIk9cIixcIk1velwiLFwibXNcIixcIk1zXCIsXCJXZWJraXRcIl0scj01Oy0tcj4tMSYmdm9pZCAwPT09c1tpW3JdK3RdOyk7cmV0dXJuIHI+PTA/KGo9Mz09PXI/XCJtc1wiOmlbcl0sVz1cIi1cIitqLnRvTG93ZXJDYXNlKCkrXCItXCIsait0KTpudWxsfSxIPVguZGVmYXVsdFZpZXc/WC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlOmZ1bmN0aW9uKCl7fSxxPWEuZ2V0U3R5bGU9ZnVuY3Rpb24odCxlLGkscixzKXt2YXIgbjtyZXR1cm4gWXx8XCJvcGFjaXR5XCIhPT1lPyghciYmdC5zdHlsZVtlXT9uPXQuc3R5bGVbZV06KGk9aXx8SCh0KSk/bj1pW2VdfHxpLmdldFByb3BlcnR5VmFsdWUoZSl8fGkuZ2V0UHJvcGVydHlWYWx1ZShlLnJlcGxhY2UoUCxcIi0kMVwiKS50b0xvd2VyQ2FzZSgpKTp0LmN1cnJlbnRTdHlsZSYmKG49dC5jdXJyZW50U3R5bGVbZV0pLG51bGw9PXN8fG4mJlwibm9uZVwiIT09biYmXCJhdXRvXCIhPT1uJiZcImF1dG8gYXV0b1wiIT09bj9uOnMpOkIodCl9LFE9RS5jb252ZXJ0VG9QaXhlbHM9ZnVuY3Rpb24odCxpLHIscyxuKXtpZihcInB4XCI9PT1zfHwhcylyZXR1cm4gcjtpZihcImF1dG9cIj09PXN8fCFyKXJldHVybiAwO3ZhciBvLGwsaCx1PWsudGVzdChpKSxmPXQsXz16LnN0eWxlLHA9MD5yO2lmKHAmJihyPS1yKSxcIiVcIj09PXMmJi0xIT09aS5pbmRleE9mKFwiYm9yZGVyXCIpKW89ci8xMDAqKHU/dC5jbGllbnRXaWR0aDp0LmNsaWVudEhlaWdodCk7ZWxzZXtpZihfLmNzc1RleHQ9XCJib3JkZXI6MCBzb2xpZCByZWQ7cG9zaXRpb246XCIrcSh0LFwicG9zaXRpb25cIikrXCI7bGluZS1oZWlnaHQ6MDtcIixcIiVcIiE9PXMmJmYuYXBwZW5kQ2hpbGQpX1t1P1wiYm9yZGVyTGVmdFdpZHRoXCI6XCJib3JkZXJUb3BXaWR0aFwiXT1yK3M7ZWxzZXtpZihmPXQucGFyZW50Tm9kZXx8WC5ib2R5LGw9Zi5fZ3NDYWNoZSxoPWUudGlja2VyLmZyYW1lLGwmJnUmJmwudGltZT09PWgpcmV0dXJuIGwud2lkdGgqci8xMDA7X1t1P1wid2lkdGhcIjpcImhlaWdodFwiXT1yK3N9Zi5hcHBlbmRDaGlsZCh6KSxvPXBhcnNlRmxvYXQoelt1P1wib2Zmc2V0V2lkdGhcIjpcIm9mZnNldEhlaWdodFwiXSksZi5yZW1vdmVDaGlsZCh6KSx1JiZcIiVcIj09PXMmJmEuY2FjaGVXaWR0aHMhPT0hMSYmKGw9Zi5fZ3NDYWNoZT1mLl9nc0NhY2hlfHx7fSxsLnRpbWU9aCxsLndpZHRoPTEwMCooby9yKSksMCE9PW98fG58fChvPVEodCxpLHIscywhMCkpfXJldHVybiBwPy1vOm99LFo9RS5jYWxjdWxhdGVPZmZzZXQ9ZnVuY3Rpb24odCxlLGkpe2lmKFwiYWJzb2x1dGVcIiE9PXEodCxcInBvc2l0aW9uXCIsaSkpcmV0dXJuIDA7dmFyIHI9XCJsZWZ0XCI9PT1lP1wiTGVmdFwiOlwiVG9wXCIscz1xKHQsXCJtYXJnaW5cIityLGkpO3JldHVybiB0W1wib2Zmc2V0XCIrcl0tKFEodCxlLHBhcnNlRmxvYXQocykscy5yZXBsYWNlKHksXCJcIikpfHwwKX0sJD1mdW5jdGlvbih0LGUpe3ZhciBpLHIscz17fTtpZihlPWV8fEgodCxudWxsKSlpZihpPWUubGVuZ3RoKWZvcig7LS1pPi0xOylzW2VbaV0ucmVwbGFjZShTLFIpXT1lLmdldFByb3BlcnR5VmFsdWUoZVtpXSk7ZWxzZSBmb3IoaSBpbiBlKXNbaV09ZVtpXTtlbHNlIGlmKGU9dC5jdXJyZW50U3R5bGV8fHQuc3R5bGUpZm9yKGkgaW4gZSlcInN0cmluZ1wiPT10eXBlb2YgaSYmdm9pZCAwPT09c1tpXSYmKHNbaS5yZXBsYWNlKFMsUildPWVbaV0pO3JldHVybiBZfHwocy5vcGFjaXR5PUIodCkpLHI9UGUodCxlLCExKSxzLnJvdGF0aW9uPXIucm90YXRpb24scy5za2V3WD1yLnNrZXdYLHMuc2NhbGVYPXIuc2NhbGVYLHMuc2NhbGVZPXIuc2NhbGVZLHMueD1yLngscy55PXIueSx4ZSYmKHMuej1yLnoscy5yb3RhdGlvblg9ci5yb3RhdGlvblgscy5yb3RhdGlvblk9ci5yb3RhdGlvblkscy5zY2FsZVo9ci5zY2FsZVopLHMuZmlsdGVycyYmZGVsZXRlIHMuZmlsdGVycyxzfSxHPWZ1bmN0aW9uKHQsZSxpLHIscyl7dmFyIG4sYSxvLGw9e30saD10LnN0eWxlO2ZvcihhIGluIGkpXCJjc3NUZXh0XCIhPT1hJiZcImxlbmd0aFwiIT09YSYmaXNOYU4oYSkmJihlW2FdIT09KG49aVthXSl8fHMmJnNbYV0pJiYtMT09PWEuaW5kZXhPZihcIk9yaWdpblwiKSYmKFwibnVtYmVyXCI9PXR5cGVvZiBufHxcInN0cmluZ1wiPT10eXBlb2YgbikmJihsW2FdPVwiYXV0b1wiIT09bnx8XCJsZWZ0XCIhPT1hJiZcInRvcFwiIT09YT9cIlwiIT09biYmXCJhdXRvXCIhPT1uJiZcIm5vbmVcIiE9PW58fFwic3RyaW5nXCIhPXR5cGVvZiBlW2FdfHxcIlwiPT09ZVthXS5yZXBsYWNlKHYsXCJcIik/bjowOloodCxhKSx2b2lkIDAhPT1oW2FdJiYobz1uZXcgZmUoaCxhLGhbYV0sbykpKTtpZihyKWZvcihhIGluIHIpXCJjbGFzc05hbWVcIiE9PWEmJihsW2FdPXJbYV0pO3JldHVybntkaWZzOmwsZmlyc3RNUFQ6b319LEs9e3dpZHRoOltcIkxlZnRcIixcIlJpZ2h0XCJdLGhlaWdodDpbXCJUb3BcIixcIkJvdHRvbVwiXX0sSj1bXCJtYXJnaW5MZWZ0XCIsXCJtYXJnaW5SaWdodFwiLFwibWFyZ2luVG9wXCIsXCJtYXJnaW5Cb3R0b21cIl0sdGU9ZnVuY3Rpb24odCxlLGkpe3ZhciByPXBhcnNlRmxvYXQoXCJ3aWR0aFwiPT09ZT90Lm9mZnNldFdpZHRoOnQub2Zmc2V0SGVpZ2h0KSxzPUtbZV0sbj1zLmxlbmd0aDtmb3IoaT1pfHxIKHQsbnVsbCk7LS1uPi0xOylyLT1wYXJzZUZsb2F0KHEodCxcInBhZGRpbmdcIitzW25dLGksITApKXx8MCxyLT1wYXJzZUZsb2F0KHEodCxcImJvcmRlclwiK3Nbbl0rXCJXaWR0aFwiLGksITApKXx8MDtyZXR1cm4gcn0sZWU9ZnVuY3Rpb24odCxlKXsobnVsbD09dHx8XCJcIj09PXR8fFwiYXV0b1wiPT09dHx8XCJhdXRvIGF1dG9cIj09PXQpJiYodD1cIjAgMFwiKTt2YXIgaT10LnNwbGl0KFwiIFwiKSxyPS0xIT09dC5pbmRleE9mKFwibGVmdFwiKT9cIjAlXCI6LTEhPT10LmluZGV4T2YoXCJyaWdodFwiKT9cIjEwMCVcIjppWzBdLHM9LTEhPT10LmluZGV4T2YoXCJ0b3BcIik/XCIwJVwiOi0xIT09dC5pbmRleE9mKFwiYm90dG9tXCIpP1wiMTAwJVwiOmlbMV07cmV0dXJuIG51bGw9PXM/cz1cIjBcIjpcImNlbnRlclwiPT09cyYmKHM9XCI1MCVcIiksKFwiY2VudGVyXCI9PT1yfHxpc05hTihwYXJzZUZsb2F0KHIpKSYmLTE9PT0ocitcIlwiKS5pbmRleE9mKFwiPVwiKSkmJihyPVwiNTAlXCIpLGUmJihlLm94cD0tMSE9PXIuaW5kZXhPZihcIiVcIiksZS5veXA9LTEhPT1zLmluZGV4T2YoXCIlXCIpLGUub3hyPVwiPVwiPT09ci5jaGFyQXQoMSksZS5veXI9XCI9XCI9PT1zLmNoYXJBdCgxKSxlLm94PXBhcnNlRmxvYXQoci5yZXBsYWNlKHYsXCJcIikpLGUub3k9cGFyc2VGbG9hdChzLnJlcGxhY2UodixcIlwiKSkpLHIrXCIgXCIrcysoaS5sZW5ndGg+Mj9cIiBcIitpWzJdOlwiXCIpfSxpZT1mdW5jdGlvbih0LGUpe3JldHVyblwic3RyaW5nXCI9PXR5cGVvZiB0JiZcIj1cIj09PXQuY2hhckF0KDEpP3BhcnNlSW50KHQuY2hhckF0KDApK1wiMVwiLDEwKSpwYXJzZUZsb2F0KHQuc3Vic3RyKDIpKTpwYXJzZUZsb2F0KHQpLXBhcnNlRmxvYXQoZSl9LHJlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG51bGw9PXQ/ZTpcInN0cmluZ1wiPT10eXBlb2YgdCYmXCI9XCI9PT10LmNoYXJBdCgxKT9wYXJzZUludCh0LmNoYXJBdCgwKStcIjFcIiwxMCkqTnVtYmVyKHQuc3Vic3RyKDIpKStlOnBhcnNlRmxvYXQodCl9LHNlPWZ1bmN0aW9uKHQsZSxpLHIpe3ZhciBzLG4sYSxvLGw9MWUtNjtyZXR1cm4gbnVsbD09dD9vPWU6XCJudW1iZXJcIj09dHlwZW9mIHQ/bz10OihzPTM2MCxuPXQuc3BsaXQoXCJfXCIpLGE9TnVtYmVyKG5bMF0ucmVwbGFjZSh2LFwiXCIpKSooLTE9PT10LmluZGV4T2YoXCJyYWRcIik/MTpMKS0oXCI9XCI9PT10LmNoYXJBdCgxKT8wOmUpLG4ubGVuZ3RoJiYociYmKHJbaV09ZSthKSwtMSE9PXQuaW5kZXhPZihcInNob3J0XCIpJiYoYSU9cyxhIT09YSUocy8yKSYmKGE9MD5hP2ErczphLXMpKSwtMSE9PXQuaW5kZXhPZihcIl9jd1wiKSYmMD5hP2E9KGErOTk5OTk5OTk5OSpzKSVzLSgwfGEvcykqczotMSE9PXQuaW5kZXhPZihcImNjd1wiKSYmYT4wJiYoYT0oYS05OTk5OTk5OTk5KnMpJXMtKDB8YS9zKSpzKSksbz1lK2EpLGw+byYmbz4tbCYmKG89MCksb30sbmU9e2FxdWE6WzAsMjU1LDI1NV0sbGltZTpbMCwyNTUsMF0sc2lsdmVyOlsxOTIsMTkyLDE5Ml0sYmxhY2s6WzAsMCwwXSxtYXJvb246WzEyOCwwLDBdLHRlYWw6WzAsMTI4LDEyOF0sYmx1ZTpbMCwwLDI1NV0sbmF2eTpbMCwwLDEyOF0sd2hpdGU6WzI1NSwyNTUsMjU1XSxmdWNoc2lhOlsyNTUsMCwyNTVdLG9saXZlOlsxMjgsMTI4LDBdLHllbGxvdzpbMjU1LDI1NSwwXSxvcmFuZ2U6WzI1NSwxNjUsMF0sZ3JheTpbMTI4LDEyOCwxMjhdLHB1cnBsZTpbMTI4LDAsMTI4XSxncmVlbjpbMCwxMjgsMF0scmVkOlsyNTUsMCwwXSxwaW5rOlsyNTUsMTkyLDIwM10sY3lhbjpbMCwyNTUsMjU1XSx0cmFuc3BhcmVudDpbMjU1LDI1NSwyNTUsMF19LGFlPWZ1bmN0aW9uKHQsZSxpKXtyZXR1cm4gdD0wPnQ/dCsxOnQ+MT90LTE6dCwwfDI1NSooMT42KnQ/ZSs2KihpLWUpKnQ6LjU+dD9pOjI+Myp0P2UrNiooaS1lKSooMi8zLXQpOmUpKy41fSxvZT1mdW5jdGlvbih0KXt2YXIgZSxpLHIscyxuLGE7cmV0dXJuIHQmJlwiXCIhPT10P1wibnVtYmVyXCI9PXR5cGVvZiB0P1t0Pj4xNiwyNTUmdD4+OCwyNTUmdF06KFwiLFwiPT09dC5jaGFyQXQodC5sZW5ndGgtMSkmJih0PXQuc3Vic3RyKDAsdC5sZW5ndGgtMSkpLG5lW3RdP25lW3RdOlwiI1wiPT09dC5jaGFyQXQoMCk/KDQ9PT10Lmxlbmd0aCYmKGU9dC5jaGFyQXQoMSksaT10LmNoYXJBdCgyKSxyPXQuY2hhckF0KDMpLHQ9XCIjXCIrZStlK2kraStyK3IpLHQ9cGFyc2VJbnQodC5zdWJzdHIoMSksMTYpLFt0Pj4xNiwyNTUmdD4+OCwyNTUmdF0pOlwiaHNsXCI9PT10LnN1YnN0cigwLDMpPyh0PXQubWF0Y2goZCkscz1OdW1iZXIodFswXSklMzYwLzM2MCxuPU51bWJlcih0WzFdKS8xMDAsYT1OdW1iZXIodFsyXSkvMTAwLGk9LjU+PWE/YSoobisxKTphK24tYSpuLGU9MiphLWksdC5sZW5ndGg+MyYmKHRbM109TnVtYmVyKHRbM10pKSx0WzBdPWFlKHMrMS8zLGUsaSksdFsxXT1hZShzLGUsaSksdFsyXT1hZShzLTEvMyxlLGkpLHQpOih0PXQubWF0Y2goZCl8fG5lLnRyYW5zcGFyZW50LHRbMF09TnVtYmVyKHRbMF0pLHRbMV09TnVtYmVyKHRbMV0pLHRbMl09TnVtYmVyKHRbMl0pLHQubGVuZ3RoPjMmJih0WzNdPU51bWJlcih0WzNdKSksdCkpOm5lLmJsYWNrfSxsZT1cIig/OlxcXFxiKD86KD86cmdifHJnYmF8aHNsfGhzbGEpXFxcXCguKz9cXFxcKSl8XFxcXEIjLis/XFxcXGJcIjtmb3IobCBpbiBuZSlsZSs9XCJ8XCIrbCtcIlxcXFxiXCI7bGU9UmVnRXhwKGxlK1wiKVwiLFwiZ2lcIik7dmFyIGhlPWZ1bmN0aW9uKHQsZSxpLHIpe2lmKG51bGw9PXQpcmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiB0fTt2YXIgcyxuPWU/KHQubWF0Y2gobGUpfHxbXCJcIl0pWzBdOlwiXCIsYT10LnNwbGl0KG4pLmpvaW4oXCJcIikubWF0Y2goZyl8fFtdLG89dC5zdWJzdHIoMCx0LmluZGV4T2YoYVswXSkpLGw9XCIpXCI9PT10LmNoYXJBdCh0Lmxlbmd0aC0xKT9cIilcIjpcIlwiLGg9LTEhPT10LmluZGV4T2YoXCIgXCIpP1wiIFwiOlwiLFwiLHU9YS5sZW5ndGgsZj11PjA/YVswXS5yZXBsYWNlKGQsXCJcIik6XCJcIjtyZXR1cm4gdT9zPWU/ZnVuY3Rpb24odCl7dmFyIGUsXyxwLGM7aWYoXCJudW1iZXJcIj09dHlwZW9mIHQpdCs9ZjtlbHNlIGlmKHImJkQudGVzdCh0KSl7Zm9yKGM9dC5yZXBsYWNlKEQsXCJ8XCIpLnNwbGl0KFwifFwiKSxwPTA7Yy5sZW5ndGg+cDtwKyspY1twXT1zKGNbcF0pO3JldHVybiBjLmpvaW4oXCIsXCIpfWlmKGU9KHQubWF0Y2gobGUpfHxbbl0pWzBdLF89dC5zcGxpdChlKS5qb2luKFwiXCIpLm1hdGNoKGcpfHxbXSxwPV8ubGVuZ3RoLHU+cC0tKWZvcig7dT4rK3A7KV9bcF09aT9fWzB8KHAtMSkvMl06YVtwXTtyZXR1cm4gbytfLmpvaW4oaCkraCtlK2wrKC0xIT09dC5pbmRleE9mKFwiaW5zZXRcIik/XCIgaW5zZXRcIjpcIlwiKX06ZnVuY3Rpb24odCl7dmFyIGUsbixfO2lmKFwibnVtYmVyXCI9PXR5cGVvZiB0KXQrPWY7ZWxzZSBpZihyJiZELnRlc3QodCkpe2ZvcihuPXQucmVwbGFjZShELFwifFwiKS5zcGxpdChcInxcIiksXz0wO24ubGVuZ3RoPl87XysrKW5bX109cyhuW19dKTtyZXR1cm4gbi5qb2luKFwiLFwiKX1pZihlPXQubWF0Y2goZyl8fFtdLF89ZS5sZW5ndGgsdT5fLS0pZm9yKDt1PisrXzspZVtfXT1pP2VbMHwoXy0xKS8yXTphW19dO3JldHVybiBvK2Uuam9pbihoKStsfTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0PXQuc3BsaXQoXCIsXCIpLGZ1bmN0aW9uKGUsaSxyLHMsbixhLG8pe3ZhciBsLGg9KGkrXCJcIikuc3BsaXQoXCIgXCIpO2ZvcihvPXt9LGw9MDs0Pmw7bCsrKW9bdFtsXV09aFtsXT1oW2xdfHxoWyhsLTEpLzI+PjBdO3JldHVybiBzLnBhcnNlKGUsbyxuLGEpfX0sZmU9KEUuX3NldFBsdWdpblJhdGlvPWZ1bmN0aW9uKHQpe3RoaXMucGx1Z2luLnNldFJhdGlvKHQpO2Zvcih2YXIgZSxpLHIscyxuPXRoaXMuZGF0YSxhPW4ucHJveHksbz1uLmZpcnN0TVBULGw9MWUtNjtvOyllPWFbby52XSxvLnI/ZT1NYXRoLnJvdW5kKGUpOmw+ZSYmZT4tbCYmKGU9MCksby50W28ucF09ZSxvPW8uX25leHQ7aWYobi5hdXRvUm90YXRlJiYobi5hdXRvUm90YXRlLnJvdGF0aW9uPWEucm90YXRpb24pLDE9PT10KWZvcihvPW4uZmlyc3RNUFQ7bzspe2lmKGk9by50LGkudHlwZSl7aWYoMT09PWkudHlwZSl7Zm9yKHM9aS54czAraS5zK2kueHMxLHI9MTtpLmw+cjtyKyspcys9aVtcInhuXCIrcl0raVtcInhzXCIrKHIrMSldO2kuZT1zfX1lbHNlIGkuZT1pLnMraS54czA7bz1vLl9uZXh0fX0sZnVuY3Rpb24odCxlLGkscixzKXt0aGlzLnQ9dCx0aGlzLnA9ZSx0aGlzLnY9aSx0aGlzLnI9cyxyJiYoci5fcHJldj10aGlzLHRoaXMuX25leHQ9cil9KSxfZT0oRS5fcGFyc2VUb1Byb3h5PWZ1bmN0aW9uKHQsZSxpLHIscyxuKXt2YXIgYSxvLGwsaCx1LGY9cixfPXt9LHA9e30sYz1pLl90cmFuc2Zvcm0sZD1OO2ZvcihpLl90cmFuc2Zvcm09bnVsbCxOPWUscj11PWkucGFyc2UodCxlLHIscyksTj1kLG4mJihpLl90cmFuc2Zvcm09YyxmJiYoZi5fcHJldj1udWxsLGYuX3ByZXYmJihmLl9wcmV2Ll9uZXh0PW51bGwpKSk7ciYmciE9PWY7KXtpZigxPj1yLnR5cGUmJihvPXIucCxwW29dPXIucytyLmMsX1tvXT1yLnMsbnx8KGg9bmV3IGZlKHIsXCJzXCIsbyxoLHIuciksci5jPTApLDE9PT1yLnR5cGUpKWZvcihhPXIubDstLWE+MDspbD1cInhuXCIrYSxvPXIucCtcIl9cIitsLHBbb109ci5kYXRhW2xdLF9bb109cltsXSxufHwoaD1uZXcgZmUocixsLG8saCxyLnJ4cFtsXSkpO3I9ci5fbmV4dH1yZXR1cm57cHJveHk6XyxlbmQ6cCxmaXJzdE1QVDpoLHB0OnV9fSxFLkNTU1Byb3BUd2Vlbj1mdW5jdGlvbih0LGUscixzLGEsbyxsLGgsdSxmLF8pe3RoaXMudD10LHRoaXMucD1lLHRoaXMucz1yLHRoaXMuYz1zLHRoaXMubj1sfHxlLHQgaW5zdGFuY2VvZiBfZXx8bi5wdXNoKHRoaXMubiksdGhpcy5yPWgsdGhpcy50eXBlPW98fDAsdSYmKHRoaXMucHI9dSxpPSEwKSx0aGlzLmI9dm9pZCAwPT09Zj9yOmYsdGhpcy5lPXZvaWQgMD09PV8/citzOl8sYSYmKHRoaXMuX25leHQ9YSxhLl9wcmV2PXRoaXMpfSkscGU9YS5wYXJzZUNvbXBsZXg9ZnVuY3Rpb24odCxlLGkscixzLG4sYSxvLGwsdSl7aT1pfHxufHxcIlwiLGE9bmV3IF9lKHQsZSwwLDAsYSx1PzI6MSxudWxsLCExLG8saSxyKSxyKz1cIlwiO3ZhciBmLF8scCxjLGcsdix5LFQsdyx4LFAsUyxDPWkuc3BsaXQoXCIsIFwiKS5qb2luKFwiLFwiKS5zcGxpdChcIiBcIiksUj1yLnNwbGl0KFwiLCBcIikuam9pbihcIixcIikuc3BsaXQoXCIgXCIpLGs9Qy5sZW5ndGgsQT1oIT09ITE7Zm9yKCgtMSE9PXIuaW5kZXhPZihcIixcIil8fC0xIT09aS5pbmRleE9mKFwiLFwiKSkmJihDPUMuam9pbihcIiBcIikucmVwbGFjZShELFwiLCBcIikuc3BsaXQoXCIgXCIpLFI9Ui5qb2luKFwiIFwiKS5yZXBsYWNlKEQsXCIsIFwiKS5zcGxpdChcIiBcIiksaz1DLmxlbmd0aCksayE9PVIubGVuZ3RoJiYoQz0obnx8XCJcIikuc3BsaXQoXCIgXCIpLGs9Qy5sZW5ndGgpLGEucGx1Z2luPWwsYS5zZXRSYXRpbz11LGY9MDtrPmY7ZisrKWlmKGM9Q1tmXSxnPVJbZl0sVD1wYXJzZUZsb2F0KGMpLFR8fDA9PT1UKWEuYXBwZW5kWHRyYShcIlwiLFQsaWUoZyxUKSxnLnJlcGxhY2UobSxcIlwiKSxBJiYtMSE9PWcuaW5kZXhPZihcInB4XCIpLCEwKTtlbHNlIGlmKHMmJihcIiNcIj09PWMuY2hhckF0KDApfHxuZVtjXXx8Yi50ZXN0KGMpKSlTPVwiLFwiPT09Zy5jaGFyQXQoZy5sZW5ndGgtMSk/XCIpLFwiOlwiKVwiLGM9b2UoYyksZz1vZShnKSx3PWMubGVuZ3RoK2cubGVuZ3RoPjYsdyYmIVkmJjA9PT1nWzNdPyhhW1wieHNcIithLmxdKz1hLmw/XCIgdHJhbnNwYXJlbnRcIjpcInRyYW5zcGFyZW50XCIsYS5lPWEuZS5zcGxpdChSW2ZdKS5qb2luKFwidHJhbnNwYXJlbnRcIikpOihZfHwodz0hMSksYS5hcHBlbmRYdHJhKHc/XCJyZ2JhKFwiOlwicmdiKFwiLGNbMF0sZ1swXS1jWzBdLFwiLFwiLCEwLCEwKS5hcHBlbmRYdHJhKFwiXCIsY1sxXSxnWzFdLWNbMV0sXCIsXCIsITApLmFwcGVuZFh0cmEoXCJcIixjWzJdLGdbMl0tY1syXSx3P1wiLFwiOlMsITApLHcmJihjPTQ+Yy5sZW5ndGg/MTpjWzNdLGEuYXBwZW5kWHRyYShcIlwiLGMsKDQ+Zy5sZW5ndGg/MTpnWzNdKS1jLFMsITEpKSk7ZWxzZSBpZih2PWMubWF0Y2goZCkpe2lmKHk9Zy5tYXRjaChtKSwheXx8eS5sZW5ndGghPT12Lmxlbmd0aClyZXR1cm4gYTtmb3IocD0wLF89MDt2Lmxlbmd0aD5fO18rKylQPXZbX10seD1jLmluZGV4T2YoUCxwKSxhLmFwcGVuZFh0cmEoYy5zdWJzdHIocCx4LXApLE51bWJlcihQKSxpZSh5W19dLFApLFwiXCIsQSYmXCJweFwiPT09Yy5zdWJzdHIoeCtQLmxlbmd0aCwyKSwwPT09XykscD14K1AubGVuZ3RoO2FbXCJ4c1wiK2EubF0rPWMuc3Vic3RyKHApfWVsc2UgYVtcInhzXCIrYS5sXSs9YS5sP1wiIFwiK2M6YztpZigtMSE9PXIuaW5kZXhPZihcIj1cIikmJmEuZGF0YSl7Zm9yKFM9YS54czArYS5kYXRhLnMsZj0xO2EubD5mO2YrKylTKz1hW1wieHNcIitmXSthLmRhdGFbXCJ4blwiK2ZdO2EuZT1TK2FbXCJ4c1wiK2ZdfXJldHVybiBhLmx8fChhLnR5cGU9LTEsYS54czA9YS5lKSxhLnhmaXJzdHx8YX0sY2U9OTtmb3IobD1fZS5wcm90b3R5cGUsbC5sPWwucHI9MDstLWNlPjA7KWxbXCJ4blwiK2NlXT0wLGxbXCJ4c1wiK2NlXT1cIlwiO2wueHMwPVwiXCIsbC5fbmV4dD1sLl9wcmV2PWwueGZpcnN0PWwuZGF0YT1sLnBsdWdpbj1sLnNldFJhdGlvPWwucnhwPW51bGwsbC5hcHBlbmRYdHJhPWZ1bmN0aW9uKHQsZSxpLHIscyxuKXt2YXIgYT10aGlzLG89YS5sO3JldHVybiBhW1wieHNcIitvXSs9biYmbz9cIiBcIit0OnR8fFwiXCIsaXx8MD09PW98fGEucGx1Z2luPyhhLmwrKyxhLnR5cGU9YS5zZXRSYXRpbz8yOjEsYVtcInhzXCIrYS5sXT1yfHxcIlwiLG8+MD8oYS5kYXRhW1wieG5cIitvXT1lK2ksYS5yeHBbXCJ4blwiK29dPXMsYVtcInhuXCIrb109ZSxhLnBsdWdpbnx8KGEueGZpcnN0PW5ldyBfZShhLFwieG5cIitvLGUsaSxhLnhmaXJzdHx8YSwwLGEubixzLGEucHIpLGEueGZpcnN0LnhzMD0wKSxhKTooYS5kYXRhPXtzOmUraX0sYS5yeHA9e30sYS5zPWUsYS5jPWksYS5yPXMsYSkpOihhW1wieHNcIitvXSs9ZSsocnx8XCJcIiksYSl9O3ZhciBkZT1mdW5jdGlvbih0LGUpe2U9ZXx8e30sdGhpcy5wPWUucHJlZml4P1YodCl8fHQ6dCxvW3RdPW9bdGhpcy5wXT10aGlzLHRoaXMuZm9ybWF0PWUuZm9ybWF0dGVyfHxoZShlLmRlZmF1bHRWYWx1ZSxlLmNvbG9yLGUuY29sbGFwc2libGUsZS5tdWx0aSksZS5wYXJzZXImJih0aGlzLnBhcnNlPWUucGFyc2VyKSx0aGlzLmNscnM9ZS5jb2xvcix0aGlzLm11bHRpPWUubXVsdGksdGhpcy5rZXl3b3JkPWUua2V5d29yZCx0aGlzLmRmbHQ9ZS5kZWZhdWx0VmFsdWUsdGhpcy5wcj1lLnByaW9yaXR5fHwwfSxtZT1FLl9yZWdpc3RlckNvbXBsZXhTcGVjaWFsUHJvcD1mdW5jdGlvbih0LGUsaSl7XCJvYmplY3RcIiE9dHlwZW9mIGUmJihlPXtwYXJzZXI6aX0pO3ZhciByLHMsbj10LnNwbGl0KFwiLFwiKSxhPWUuZGVmYXVsdFZhbHVlO2ZvcihpPWl8fFthXSxyPTA7bi5sZW5ndGg+cjtyKyspZS5wcmVmaXg9MD09PXImJmUucHJlZml4LGUuZGVmYXVsdFZhbHVlPWlbcl18fGEscz1uZXcgZGUobltyXSxlKX0sZ2U9ZnVuY3Rpb24odCl7aWYoIW9bdF0pe3ZhciBlPXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrdC5zdWJzdHIoMSkrXCJQbHVnaW5cIjttZSh0LHtwYXJzZXI6ZnVuY3Rpb24odCxpLHIscyxuLGEsbCl7dmFyIGg9KHdpbmRvdy5HcmVlblNvY2tHbG9iYWxzfHx3aW5kb3cpLmNvbS5ncmVlbnNvY2sucGx1Z2luc1tlXTtyZXR1cm4gaD8oaC5fY3NzUmVnaXN0ZXIoKSxvW3JdLnBhcnNlKHQsaSxyLHMsbixhLGwpKTooVShcIkVycm9yOiBcIitlK1wiIGpzIGZpbGUgbm90IGxvYWRlZC5cIiksbil9fSl9fTtsPWRlLnByb3RvdHlwZSxsLnBhcnNlQ29tcGxleD1mdW5jdGlvbih0LGUsaSxyLHMsbil7dmFyIGEsbyxsLGgsdSxmLF89dGhpcy5rZXl3b3JkO2lmKHRoaXMubXVsdGkmJihELnRlc3QoaSl8fEQudGVzdChlKT8obz1lLnJlcGxhY2UoRCxcInxcIikuc3BsaXQoXCJ8XCIpLGw9aS5yZXBsYWNlKEQsXCJ8XCIpLnNwbGl0KFwifFwiKSk6XyYmKG89W2VdLGw9W2ldKSksbCl7Zm9yKGg9bC5sZW5ndGg+by5sZW5ndGg/bC5sZW5ndGg6by5sZW5ndGgsYT0wO2g+YTthKyspZT1vW2FdPW9bYV18fHRoaXMuZGZsdCxpPWxbYV09bFthXXx8dGhpcy5kZmx0LF8mJih1PWUuaW5kZXhPZihfKSxmPWkuaW5kZXhPZihfKSx1IT09ZiYmKGk9LTE9PT1mP2w6byxpW2FdKz1cIiBcIitfKSk7ZT1vLmpvaW4oXCIsIFwiKSxpPWwuam9pbihcIiwgXCIpfXJldHVybiBwZSh0LHRoaXMucCxlLGksdGhpcy5jbHJzLHRoaXMuZGZsdCxyLHRoaXMucHIscyxuKX0sbC5wYXJzZT1mdW5jdGlvbih0LGUsaSxyLG4sYSl7cmV0dXJuIHRoaXMucGFyc2VDb21wbGV4KHQuc3R5bGUsdGhpcy5mb3JtYXQocSh0LHRoaXMucCxzLCExLHRoaXMuZGZsdCkpLHRoaXMuZm9ybWF0KGUpLG4sYSl9LGEucmVnaXN0ZXJTcGVjaWFsUHJvcD1mdW5jdGlvbih0LGUsaSl7bWUodCx7cGFyc2VyOmZ1bmN0aW9uKHQscixzLG4sYSxvKXt2YXIgbD1uZXcgX2UodCxzLDAsMCxhLDIscywhMSxpKTtyZXR1cm4gbC5wbHVnaW49byxsLnNldFJhdGlvPWUodCxyLG4uX3R3ZWVuLHMpLGx9LHByaW9yaXR5Oml9KX07dmFyIHZlPVwic2NhbGVYLHNjYWxlWSxzY2FsZVoseCx5LHosc2tld1gsc2tld1kscm90YXRpb24scm90YXRpb25YLHJvdGF0aW9uWSxwZXJzcGVjdGl2ZVwiLnNwbGl0KFwiLFwiKSx5ZT1WKFwidHJhbnNmb3JtXCIpLFRlPVcrXCJ0cmFuc2Zvcm1cIix3ZT1WKFwidHJhbnNmb3JtT3JpZ2luXCIpLHhlPW51bGwhPT1WKFwicGVyc3BlY3RpdmVcIiksYmU9RS5UcmFuc2Zvcm09ZnVuY3Rpb24oKXt0aGlzLnNrZXdZPTB9LFBlPUUuZ2V0VHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxpLHIpe2lmKHQuX2dzVHJhbnNmb3JtJiZpJiYhcilyZXR1cm4gdC5fZ3NUcmFuc2Zvcm07dmFyIHMsbixvLGwsaCx1LGYsXyxwLGMsZCxtLGcsdj1pP3QuX2dzVHJhbnNmb3JtfHxuZXcgYmU6bmV3IGJlLHk9MD52LnNjYWxlWCxUPTJlLTUsdz0xZTUseD0xNzkuOTksYj14Kk0sUD14ZT9wYXJzZUZsb2F0KHEodCx3ZSxlLCExLFwiMCAwIDBcIikuc3BsaXQoXCIgXCIpWzJdKXx8di56T3JpZ2lufHwwOjA7Zm9yKHllP3M9cSh0LFRlLGUsITApOnQuY3VycmVudFN0eWxlJiYocz10LmN1cnJlbnRTdHlsZS5maWx0ZXIubWF0Y2goQSkscz1zJiY0PT09cy5sZW5ndGg/W3NbMF0uc3Vic3RyKDQpLE51bWJlcihzWzJdLnN1YnN0cig0KSksTnVtYmVyKHNbMV0uc3Vic3RyKDQpKSxzWzNdLnN1YnN0cig0KSx2Lnh8fDAsdi55fHwwXS5qb2luKFwiLFwiKTpcIlwiKSxuPShzfHxcIlwiKS5tYXRjaCgvKD86XFwtfFxcYilbXFxkXFwtXFwuZV0rXFxiL2dpKXx8W10sbz1uLmxlbmd0aDstLW8+LTE7KWw9TnVtYmVyKG5bb10pLG5bb109KGg9bC0obHw9MCkpPygwfGgqdysoMD5oPy0uNTouNSkpL3crbDpsO2lmKDE2PT09bi5sZW5ndGgpe3ZhciBTPW5bOF0sQz1uWzldLFI9blsxMF0saz1uWzEyXSxPPW5bMTNdLEQ9blsxNF07aWYodi56T3JpZ2luJiYoRD0tdi56T3JpZ2luLGs9UypELW5bMTJdLE89QypELW5bMTNdLEQ9UipEK3Yuek9yaWdpbi1uWzE0XSksIWl8fHJ8fG51bGw9PXYucm90YXRpb25YKXt2YXIgTixYLHosSSxFLEYsWSxCPW5bMF0sVT1uWzFdLFc9blsyXSxqPW5bM10sVj1uWzRdLEg9bls1XSxRPW5bNl0sWj1uWzddLCQ9blsxMV0sRz1NYXRoLmF0YW4yKFEsUiksSz0tYj5HfHxHPmI7di5yb3RhdGlvblg9RypMLEcmJihJPU1hdGguY29zKC1HKSxFPU1hdGguc2luKC1HKSxOPVYqSStTKkUsWD1IKkkrQypFLHo9USpJK1IqRSxTPVYqLUUrUypJLEM9SCotRStDKkksUj1RKi1FK1IqSSwkPVoqLUUrJCpJLFY9TixIPVgsUT16KSxHPU1hdGguYXRhbjIoUyxCKSx2LnJvdGF0aW9uWT1HKkwsRyYmKEY9LWI+R3x8Rz5iLEk9TWF0aC5jb3MoLUcpLEU9TWF0aC5zaW4oLUcpLE49QipJLVMqRSxYPVUqSS1DKkUsej1XKkktUipFLEM9VSpFK0MqSSxSPVcqRStSKkksJD1qKkUrJCpJLEI9TixVPVgsVz16KSxHPU1hdGguYXRhbjIoVSxIKSx2LnJvdGF0aW9uPUcqTCxHJiYoWT0tYj5HfHxHPmIsST1NYXRoLmNvcygtRyksRT1NYXRoLnNpbigtRyksQj1CKkkrVipFLFg9VSpJK0gqRSxIPVUqLUUrSCpJLFE9VyotRStRKkksVT1YKSxZJiZLP3Yucm90YXRpb249di5yb3RhdGlvblg9MDpZJiZGP3Yucm90YXRpb249di5yb3RhdGlvblk9MDpGJiZLJiYodi5yb3RhdGlvblk9di5yb3RhdGlvblg9MCksdi5zY2FsZVg9KDB8TWF0aC5zcXJ0KEIqQitVKlUpKncrLjUpL3csdi5zY2FsZVk9KDB8TWF0aC5zcXJ0KEgqSCtDKkMpKncrLjUpL3csdi5zY2FsZVo9KDB8TWF0aC5zcXJ0KFEqUStSKlIpKncrLjUpL3csdi5za2V3WD0wLHYucGVyc3BlY3RpdmU9JD8xLygwPiQ/LSQ6JCk6MCx2Lng9ayx2Lnk9Tyx2Lno9RH19ZWxzZSBpZighKHhlJiYhciYmbi5sZW5ndGgmJnYueD09PW5bNF0mJnYueT09PW5bNV0mJih2LnJvdGF0aW9uWHx8di5yb3RhdGlvblkpfHx2b2lkIDAhPT12LngmJlwibm9uZVwiPT09cSh0LFwiZGlzcGxheVwiLGUpKSl7dmFyIEo9bi5sZW5ndGg+PTYsdGU9Sj9uWzBdOjEsZWU9blsxXXx8MCxpZT1uWzJdfHwwLHJlPUo/blszXToxO3YueD1uWzRdfHwwLHYueT1uWzVdfHwwLHU9TWF0aC5zcXJ0KHRlKnRlK2VlKmVlKSxmPU1hdGguc3FydChyZSpyZStpZSppZSksXz10ZXx8ZWU/TWF0aC5hdGFuMihlZSx0ZSkqTDp2LnJvdGF0aW9ufHwwLHA9aWV8fHJlP01hdGguYXRhbjIoaWUscmUpKkwrXzp2LnNrZXdYfHwwLGM9dS1NYXRoLmFicyh2LnNjYWxlWHx8MCksZD1mLU1hdGguYWJzKHYuc2NhbGVZfHwwKSxNYXRoLmFicyhwKT45MCYmMjcwPk1hdGguYWJzKHApJiYoeT8odSo9LTEscCs9MD49Xz8xODA6LTE4MCxfKz0wPj1fPzE4MDotMTgwKTooZio9LTEscCs9MD49cD8xODA6LTE4MCkpLG09KF8tdi5yb3RhdGlvbiklMTgwLGc9KHAtdi5za2V3WCklMTgwLCh2b2lkIDA9PT12LnNrZXdYfHxjPlR8fC1UPmN8fGQ+VHx8LVQ+ZHx8bT4teCYmeD5tJiZmYWxzZXxtKnd8fGc+LXgmJng+ZyYmZmFsc2V8Zyp3KSYmKHYuc2NhbGVYPXUsdi5zY2FsZVk9Zix2LnJvdGF0aW9uPV8sdi5za2V3WD1wKSx4ZSYmKHYucm90YXRpb25YPXYucm90YXRpb25ZPXYuej0wLHYucGVyc3BlY3RpdmU9cGFyc2VGbG9hdChhLmRlZmF1bHRUcmFuc2Zvcm1QZXJzcGVjdGl2ZSl8fDAsdi5zY2FsZVo9MSl9di56T3JpZ2luPVA7Zm9yKG8gaW4gdilUPnZbb10mJnZbb10+LVQmJih2W29dPTApO3JldHVybiBpJiYodC5fZ3NUcmFuc2Zvcm09diksdn0sU2U9ZnVuY3Rpb24odCl7dmFyIGUsaSxyPXRoaXMuZGF0YSxzPS1yLnJvdGF0aW9uKk0sbj1zK3Iuc2tld1gqTSxhPTFlNSxvPSgwfE1hdGguY29zKHMpKnIuc2NhbGVYKmEpL2EsbD0oMHxNYXRoLnNpbihzKSpyLnNjYWxlWCphKS9hLGg9KDB8TWF0aC5zaW4obikqLXIuc2NhbGVZKmEpL2EsdT0oMHxNYXRoLmNvcyhuKSpyLnNjYWxlWSphKS9hLGY9dGhpcy50LnN0eWxlLF89dGhpcy50LmN1cnJlbnRTdHlsZTtpZihfKXtpPWwsbD0taCxoPS1pLGU9Xy5maWx0ZXIsZi5maWx0ZXI9XCJcIjt2YXIgcCxkLG09dGhpcy50Lm9mZnNldFdpZHRoLGc9dGhpcy50Lm9mZnNldEhlaWdodCx2PVwiYWJzb2x1dGVcIiE9PV8ucG9zaXRpb24sdz1cInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5NYXRyaXgoTTExPVwiK28rXCIsIE0xMj1cIitsK1wiLCBNMjE9XCIraCtcIiwgTTIyPVwiK3UseD1yLngsYj1yLnk7aWYobnVsbCE9ci5veCYmKHA9KHIub3hwPy4wMSptKnIub3g6ci5veCktbS8yLGQ9KHIub3lwPy4wMSpnKnIub3k6ci5veSktZy8yLHgrPXAtKHAqbytkKmwpLGIrPWQtKHAqaCtkKnUpKSx2PyhwPW0vMixkPWcvMix3Kz1cIiwgRHg9XCIrKHAtKHAqbytkKmwpK3gpK1wiLCBEeT1cIisoZC0ocCpoK2QqdSkrYikrXCIpXCIpOncrPVwiLCBzaXppbmdNZXRob2Q9J2F1dG8gZXhwYW5kJylcIixmLmZpbHRlcj0tMSE9PWUuaW5kZXhPZihcIkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lk1hdHJpeChcIik/ZS5yZXBsYWNlKE8sdyk6dytcIiBcIitlLCgwPT09dHx8MT09PXQpJiYxPT09byYmMD09PWwmJjA9PT1oJiYxPT09dSYmKHYmJi0xPT09dy5pbmRleE9mKFwiRHg9MCwgRHk9MFwiKXx8VC50ZXN0KGUpJiYxMDAhPT1wYXJzZUZsb2F0KFJlZ0V4cC4kMSl8fC0xPT09ZS5pbmRleE9mKFwiZ3JhZGllbnQoXCImJmUuaW5kZXhPZihcIkFscGhhXCIpKSYmZi5yZW1vdmVBdHRyaWJ1dGUoXCJmaWx0ZXJcIikpLCF2KXt2YXIgUCxTLEMsUj04PmM/MTotMTtmb3IocD1yLmllT2Zmc2V0WHx8MCxkPXIuaWVPZmZzZXRZfHwwLHIuaWVPZmZzZXRYPU1hdGgucm91bmQoKG0tKCgwPm8/LW86bykqbSsoMD5sPy1sOmwpKmcpKS8yK3gpLHIuaWVPZmZzZXRZPU1hdGgucm91bmQoKGctKCgwPnU/LXU6dSkqZysoMD5oPy1oOmgpKm0pKS8yK2IpLGNlPTA7ND5jZTtjZSsrKVM9SltjZV0sUD1fW1NdLGk9LTEhPT1QLmluZGV4T2YoXCJweFwiKT9wYXJzZUZsb2F0KFApOlEodGhpcy50LFMscGFyc2VGbG9hdChQKSxQLnJlcGxhY2UoeSxcIlwiKSl8fDAsQz1pIT09cltTXT8yPmNlPy1yLmllT2Zmc2V0WDotci5pZU9mZnNldFk6Mj5jZT9wLXIuaWVPZmZzZXRYOmQtci5pZU9mZnNldFksZltTXT0ocltTXT1NYXRoLnJvdW5kKGktQyooMD09PWNlfHwyPT09Y2U/MTpSKSkpK1wicHhcIn19fSxDZT1FLnNldDNEVHJhbnNmb3JtUmF0aW89ZnVuY3Rpb24odCl7dmFyIGUsaSxyLHMsbixhLG8sbCxoLHUsZixwLGMsZCxtLGcsdix5LFQsdyx4LGIsUCxTPXRoaXMuZGF0YSxDPXRoaXMudC5zdHlsZSxSPVMucm90YXRpb24qTSxrPVMuc2NhbGVYLEE9Uy5zY2FsZVksTz1TLnNjYWxlWixEPVMucGVyc3BlY3RpdmU7aWYoISgxIT09dCYmMCE9PXR8fFwiYXV0b1wiIT09Uy5mb3JjZTNEfHxTLnJvdGF0aW9uWXx8Uy5yb3RhdGlvblh8fDEhPT1PfHxEfHxTLnopKXJldHVybiBSZS5jYWxsKHRoaXMsdCksdm9pZCAwO2lmKF8pe3ZhciBMPTFlLTQ7TD5rJiZrPi1MJiYoaz1PPTJlLTUpLEw+QSYmQT4tTCYmKEE9Tz0yZS01KSwhRHx8Uy56fHxTLnJvdGF0aW9uWHx8Uy5yb3RhdGlvbll8fChEPTApfWlmKFJ8fFMuc2tld1gpeT1NYXRoLmNvcyhSKSxUPU1hdGguc2luKFIpLGU9eSxuPVQsUy5za2V3WCYmKFItPVMuc2tld1gqTSx5PU1hdGguY29zKFIpLFQ9TWF0aC5zaW4oUiksXCJzaW1wbGVcIj09PVMuc2tld1R5cGUmJih3PU1hdGgudGFuKFMuc2tld1gqTSksdz1NYXRoLnNxcnQoMSt3KncpLHkqPXcsVCo9dykpLGk9LVQsYT15O2Vsc2V7aWYoIShTLnJvdGF0aW9uWXx8Uy5yb3RhdGlvblh8fDEhPT1PfHxEKSlyZXR1cm4gQ1t5ZV09XCJ0cmFuc2xhdGUzZChcIitTLngrXCJweCxcIitTLnkrXCJweCxcIitTLnorXCJweClcIisoMSE9PWt8fDEhPT1BP1wiIHNjYWxlKFwiK2srXCIsXCIrQStcIilcIjpcIlwiKSx2b2lkIDA7ZT1hPTEsaT1uPTB9Zj0xLHI9cz1vPWw9aD11PXA9Yz1kPTAsbT1EPy0xL0Q6MCxnPVMuek9yaWdpbix2PTFlNSxSPVMucm90YXRpb25ZKk0sUiYmKHk9TWF0aC5jb3MoUiksVD1NYXRoLnNpbihSKSxoPWYqLVQsYz1tKi1ULHI9ZSpULG89bipULGYqPXksbSo9eSxlKj15LG4qPXkpLFI9Uy5yb3RhdGlvblgqTSxSJiYoeT1NYXRoLmNvcyhSKSxUPU1hdGguc2luKFIpLHc9aSp5K3IqVCx4PWEqeStvKlQsYj11KnkrZipULFA9ZCp5K20qVCxyPWkqLVQrcip5LG89YSotVCtvKnksZj11Ki1UK2YqeSxtPWQqLVQrbSp5LGk9dyxhPXgsdT1iLGQ9UCksMSE9PU8mJihyKj1PLG8qPU8sZio9TyxtKj1PKSwxIT09QSYmKGkqPUEsYSo9QSx1Kj1BLGQqPUEpLDEhPT1rJiYoZSo9ayxuKj1rLGgqPWssYyo9ayksZyYmKHAtPWcscz1yKnAsbD1vKnAscD1mKnArZykscz0odz0ocys9Uy54KS0oc3w9MCkpPygwfHcqdisoMD53Py0uNTouNSkpL3YrczpzLGw9KHc9KGwrPVMueSktKGx8PTApKT8oMHx3KnYrKDA+dz8tLjU6LjUpKS92K2w6bCxwPSh3PShwKz1TLnopLShwfD0wKSk/KDB8dyp2KygwPnc/LS41Oi41KSkvditwOnAsQ1t5ZV09XCJtYXRyaXgzZChcIitbKDB8ZSp2KS92LCgwfG4qdikvdiwoMHxoKnYpL3YsKDB8Yyp2KS92LCgwfGkqdikvdiwoMHxhKnYpL3YsKDB8dSp2KS92LCgwfGQqdikvdiwoMHxyKnYpL3YsKDB8byp2KS92LCgwfGYqdikvdiwoMHxtKnYpL3YscyxsLHAsRD8xKy1wL0Q6MV0uam9pbihcIixcIikrXCIpXCJ9LFJlPUUuc2V0MkRUcmFuc2Zvcm1SYXRpbz1mdW5jdGlvbih0KXt2YXIgZSxpLHIscyxuLGE9dGhpcy5kYXRhLG89dGhpcy50LGw9by5zdHlsZTtyZXR1cm4gYS5yb3RhdGlvblh8fGEucm90YXRpb25ZfHxhLnp8fGEuZm9yY2UzRD09PSEwfHxcImF1dG9cIj09PWEuZm9yY2UzRCYmMSE9PXQmJjAhPT10Pyh0aGlzLnNldFJhdGlvPUNlLENlLmNhbGwodGhpcyx0KSx2b2lkIDApOihhLnJvdGF0aW9ufHxhLnNrZXdYPyhlPWEucm90YXRpb24qTSxpPWUtYS5za2V3WCpNLHI9MWU1LHM9YS5zY2FsZVgqcixuPWEuc2NhbGVZKnIsbFt5ZV09XCJtYXRyaXgoXCIrKDB8TWF0aC5jb3MoZSkqcykvcitcIixcIisoMHxNYXRoLnNpbihlKSpzKS9yK1wiLFwiKygwfE1hdGguc2luKGkpKi1uKS9yK1wiLFwiKygwfE1hdGguY29zKGkpKm4pL3IrXCIsXCIrYS54K1wiLFwiK2EueStcIilcIik6bFt5ZV09XCJtYXRyaXgoXCIrYS5zY2FsZVgrXCIsMCwwLFwiK2Euc2NhbGVZK1wiLFwiK2EueCtcIixcIithLnkrXCIpXCIsdm9pZCAwKX07bWUoXCJ0cmFuc2Zvcm0sc2NhbGUsc2NhbGVYLHNjYWxlWSxzY2FsZVoseCx5LHoscm90YXRpb24scm90YXRpb25YLHJvdGF0aW9uWSxyb3RhdGlvblosc2tld1gsc2tld1ksc2hvcnRSb3RhdGlvbixzaG9ydFJvdGF0aW9uWCxzaG9ydFJvdGF0aW9uWSxzaG9ydFJvdGF0aW9uWix0cmFuc2Zvcm1PcmlnaW4sdHJhbnNmb3JtUGVyc3BlY3RpdmUsZGlyZWN0aW9uYWxSb3RhdGlvbixwYXJzZVRyYW5zZm9ybSxmb3JjZTNELHNrZXdUeXBlXCIse3BhcnNlcjpmdW5jdGlvbih0LGUsaSxyLG4sbyxsKXtpZihyLl90cmFuc2Zvcm0pcmV0dXJuIG47dmFyIGgsdSxmLF8scCxjLGQsbT1yLl90cmFuc2Zvcm09UGUodCxzLCEwLGwucGFyc2VUcmFuc2Zvcm0pLGc9dC5zdHlsZSx2PTFlLTYseT12ZS5sZW5ndGgsVD1sLHc9e307aWYoXCJzdHJpbmdcIj09dHlwZW9mIFQudHJhbnNmb3JtJiZ5ZSlmPXouc3R5bGUsZlt5ZV09VC50cmFuc2Zvcm0sZi5kaXNwbGF5PVwiYmxvY2tcIixmLnBvc2l0aW9uPVwiYWJzb2x1dGVcIixYLmJvZHkuYXBwZW5kQ2hpbGQoeiksaD1QZSh6LG51bGwsITEpLFguYm9keS5yZW1vdmVDaGlsZCh6KTtlbHNlIGlmKFwib2JqZWN0XCI9PXR5cGVvZiBUKXtpZihoPXtzY2FsZVg6cmUobnVsbCE9VC5zY2FsZVg/VC5zY2FsZVg6VC5zY2FsZSxtLnNjYWxlWCksc2NhbGVZOnJlKG51bGwhPVQuc2NhbGVZP1Quc2NhbGVZOlQuc2NhbGUsbS5zY2FsZVkpLHNjYWxlWjpyZShULnNjYWxlWixtLnNjYWxlWikseDpyZShULngsbS54KSx5OnJlKFQueSxtLnkpLHo6cmUoVC56LG0ueikscGVyc3BlY3RpdmU6cmUoVC50cmFuc2Zvcm1QZXJzcGVjdGl2ZSxtLnBlcnNwZWN0aXZlKX0sZD1ULmRpcmVjdGlvbmFsUm90YXRpb24sbnVsbCE9ZClpZihcIm9iamVjdFwiPT10eXBlb2YgZClmb3IoZiBpbiBkKVRbZl09ZFtmXTtlbHNlIFQucm90YXRpb249ZDtoLnJvdGF0aW9uPXNlKFwicm90YXRpb25cImluIFQ/VC5yb3RhdGlvbjpcInNob3J0Um90YXRpb25cImluIFQ/VC5zaG9ydFJvdGF0aW9uK1wiX3Nob3J0XCI6XCJyb3RhdGlvblpcImluIFQ/VC5yb3RhdGlvblo6bS5yb3RhdGlvbixtLnJvdGF0aW9uLFwicm90YXRpb25cIix3KSx4ZSYmKGgucm90YXRpb25YPXNlKFwicm90YXRpb25YXCJpbiBUP1Qucm90YXRpb25YOlwic2hvcnRSb3RhdGlvblhcImluIFQ/VC5zaG9ydFJvdGF0aW9uWCtcIl9zaG9ydFwiOm0ucm90YXRpb25YfHwwLG0ucm90YXRpb25YLFwicm90YXRpb25YXCIsdyksaC5yb3RhdGlvblk9c2UoXCJyb3RhdGlvbllcImluIFQ/VC5yb3RhdGlvblk6XCJzaG9ydFJvdGF0aW9uWVwiaW4gVD9ULnNob3J0Um90YXRpb25ZK1wiX3Nob3J0XCI6bS5yb3RhdGlvbll8fDAsbS5yb3RhdGlvblksXCJyb3RhdGlvbllcIix3KSksaC5za2V3WD1udWxsPT1ULnNrZXdYP20uc2tld1g6c2UoVC5za2V3WCxtLnNrZXdYKSxoLnNrZXdZPW51bGw9PVQuc2tld1k/bS5za2V3WTpzZShULnNrZXdZLG0uc2tld1kpLCh1PWguc2tld1ktbS5za2V3WSkmJihoLnNrZXdYKz11LGgucm90YXRpb24rPXUpfWZvcih4ZSYmbnVsbCE9VC5mb3JjZTNEJiYobS5mb3JjZTNEPVQuZm9yY2UzRCxjPSEwKSxtLnNrZXdUeXBlPVQuc2tld1R5cGV8fG0uc2tld1R5cGV8fGEuZGVmYXVsdFNrZXdUeXBlLHA9bS5mb3JjZTNEfHxtLnp8fG0ucm90YXRpb25YfHxtLnJvdGF0aW9uWXx8aC56fHxoLnJvdGF0aW9uWHx8aC5yb3RhdGlvbll8fGgucGVyc3BlY3RpdmUscHx8bnVsbD09VC5zY2FsZXx8KGguc2NhbGVaPTEpOy0teT4tMTspaT12ZVt5XSxfPWhbaV0tbVtpXSwoXz52fHwtdj5ffHxudWxsIT1OW2ldKSYmKGM9ITAsbj1uZXcgX2UobSxpLG1baV0sXyxuKSxpIGluIHcmJihuLmU9d1tpXSksbi54czA9MCxuLnBsdWdpbj1vLHIuX292ZXJ3cml0ZVByb3BzLnB1c2gobi5uKSk7cmV0dXJuIF89VC50cmFuc2Zvcm1PcmlnaW4sKF98fHhlJiZwJiZtLnpPcmlnaW4pJiYoeWU/KGM9ITAsaT13ZSxfPShffHxxKHQsaSxzLCExLFwiNTAlIDUwJVwiKSkrXCJcIixuPW5ldyBfZShnLGksMCwwLG4sLTEsXCJ0cmFuc2Zvcm1PcmlnaW5cIiksbi5iPWdbaV0sbi5wbHVnaW49byx4ZT8oZj1tLnpPcmlnaW4sXz1fLnNwbGl0KFwiIFwiKSxtLnpPcmlnaW49KF8ubGVuZ3RoPjImJigwPT09Znx8XCIwcHhcIiE9PV9bMl0pP3BhcnNlRmxvYXQoX1syXSk6Zil8fDAsbi54czA9bi5lPV9bMF0rXCIgXCIrKF9bMV18fFwiNTAlXCIpK1wiIDBweFwiLG49bmV3IF9lKG0sXCJ6T3JpZ2luXCIsMCwwLG4sLTEsbi5uKSxuLmI9ZixuLnhzMD1uLmU9bS56T3JpZ2luKTpuLnhzMD1uLmU9Xyk6ZWUoXytcIlwiLG0pKSxjJiYoci5fdHJhbnNmb3JtVHlwZT1wfHwzPT09dGhpcy5fdHJhbnNmb3JtVHlwZT8zOjIpLG59LHByZWZpeDohMH0pLG1lKFwiYm94U2hhZG93XCIse2RlZmF1bHRWYWx1ZTpcIjBweCAwcHggMHB4IDBweCAjOTk5XCIscHJlZml4OiEwLGNvbG9yOiEwLG11bHRpOiEwLGtleXdvcmQ6XCJpbnNldFwifSksbWUoXCJib3JkZXJSYWRpdXNcIix7ZGVmYXVsdFZhbHVlOlwiMHB4XCIscGFyc2VyOmZ1bmN0aW9uKHQsZSxpLG4sYSl7ZT10aGlzLmZvcm1hdChlKTt2YXIgbyxsLGgsdSxmLF8scCxjLGQsbSxnLHYseSxULHcseCxiPVtcImJvcmRlclRvcExlZnRSYWRpdXNcIixcImJvcmRlclRvcFJpZ2h0UmFkaXVzXCIsXCJib3JkZXJCb3R0b21SaWdodFJhZGl1c1wiLFwiYm9yZGVyQm90dG9tTGVmdFJhZGl1c1wiXSxQPXQuc3R5bGU7Zm9yKGQ9cGFyc2VGbG9hdCh0Lm9mZnNldFdpZHRoKSxtPXBhcnNlRmxvYXQodC5vZmZzZXRIZWlnaHQpLG89ZS5zcGxpdChcIiBcIiksbD0wO2IubGVuZ3RoPmw7bCsrKXRoaXMucC5pbmRleE9mKFwiYm9yZGVyXCIpJiYoYltsXT1WKGJbbF0pKSxmPXU9cSh0LGJbbF0scywhMSxcIjBweFwiKSwtMSE9PWYuaW5kZXhPZihcIiBcIikmJih1PWYuc3BsaXQoXCIgXCIpLGY9dVswXSx1PXVbMV0pLF89aD1vW2xdLHA9cGFyc2VGbG9hdChmKSx2PWYuc3Vic3RyKChwK1wiXCIpLmxlbmd0aCkseT1cIj1cIj09PV8uY2hhckF0KDEpLHk/KGM9cGFyc2VJbnQoXy5jaGFyQXQoMCkrXCIxXCIsMTApLF89Xy5zdWJzdHIoMiksYyo9cGFyc2VGbG9hdChfKSxnPV8uc3Vic3RyKChjK1wiXCIpLmxlbmd0aC0oMD5jPzE6MCkpfHxcIlwiKTooYz1wYXJzZUZsb2F0KF8pLGc9Xy5zdWJzdHIoKGMrXCJcIikubGVuZ3RoKSksXCJcIj09PWcmJihnPXJbaV18fHYpLGchPT12JiYoVD1RKHQsXCJib3JkZXJMZWZ0XCIscCx2KSx3PVEodCxcImJvcmRlclRvcFwiLHAsdiksXCIlXCI9PT1nPyhmPTEwMCooVC9kKStcIiVcIix1PTEwMCoody9tKStcIiVcIik6XCJlbVwiPT09Zz8oeD1RKHQsXCJib3JkZXJMZWZ0XCIsMSxcImVtXCIpLGY9VC94K1wiZW1cIix1PXcveCtcImVtXCIpOihmPVQrXCJweFwiLHU9dytcInB4XCIpLHkmJihfPXBhcnNlRmxvYXQoZikrYytnLGg9cGFyc2VGbG9hdCh1KStjK2cpKSxhPXBlKFAsYltsXSxmK1wiIFwiK3UsXytcIiBcIitoLCExLFwiMHB4XCIsYSk7cmV0dXJuIGF9LHByZWZpeDohMCxmb3JtYXR0ZXI6aGUoXCIwcHggMHB4IDBweCAwcHhcIiwhMSwhMCl9KSxtZShcImJhY2tncm91bmRQb3NpdGlvblwiLHtkZWZhdWx0VmFsdWU6XCIwIDBcIixwYXJzZXI6ZnVuY3Rpb24odCxlLGkscixuLGEpe3ZhciBvLGwsaCx1LGYsXyxwPVwiYmFja2dyb3VuZC1wb3NpdGlvblwiLGQ9c3x8SCh0LG51bGwpLG09dGhpcy5mb3JtYXQoKGQ/Yz9kLmdldFByb3BlcnR5VmFsdWUocCtcIi14XCIpK1wiIFwiK2QuZ2V0UHJvcGVydHlWYWx1ZShwK1wiLXlcIik6ZC5nZXRQcm9wZXJ0eVZhbHVlKHApOnQuY3VycmVudFN0eWxlLmJhY2tncm91bmRQb3NpdGlvblgrXCIgXCIrdC5jdXJyZW50U3R5bGUuYmFja2dyb3VuZFBvc2l0aW9uWSl8fFwiMCAwXCIpLGc9dGhpcy5mb3JtYXQoZSk7aWYoLTEhPT1tLmluZGV4T2YoXCIlXCIpIT0oLTEhPT1nLmluZGV4T2YoXCIlXCIpKSYmKF89cSh0LFwiYmFja2dyb3VuZEltYWdlXCIpLnJlcGxhY2UoQyxcIlwiKSxfJiZcIm5vbmVcIiE9PV8pKXtmb3Iobz1tLnNwbGl0KFwiIFwiKSxsPWcuc3BsaXQoXCIgXCIpLEkuc2V0QXR0cmlidXRlKFwic3JjXCIsXyksaD0yOy0taD4tMTspbT1vW2hdLHU9LTEhPT1tLmluZGV4T2YoXCIlXCIpLHUhPT0oLTEhPT1sW2hdLmluZGV4T2YoXCIlXCIpKSYmKGY9MD09PWg/dC5vZmZzZXRXaWR0aC1JLndpZHRoOnQub2Zmc2V0SGVpZ2h0LUkuaGVpZ2h0LG9baF09dT9wYXJzZUZsb2F0KG0pLzEwMCpmK1wicHhcIjoxMDAqKHBhcnNlRmxvYXQobSkvZikrXCIlXCIpO209by5qb2luKFwiIFwiKX1yZXR1cm4gdGhpcy5wYXJzZUNvbXBsZXgodC5zdHlsZSxtLGcsbixhKX0sZm9ybWF0dGVyOmVlfSksbWUoXCJiYWNrZ3JvdW5kU2l6ZVwiLHtkZWZhdWx0VmFsdWU6XCIwIDBcIixmb3JtYXR0ZXI6ZWV9KSxtZShcInBlcnNwZWN0aXZlXCIse2RlZmF1bHRWYWx1ZTpcIjBweFwiLHByZWZpeDohMH0pLG1lKFwicGVyc3BlY3RpdmVPcmlnaW5cIix7ZGVmYXVsdFZhbHVlOlwiNTAlIDUwJVwiLHByZWZpeDohMH0pLG1lKFwidHJhbnNmb3JtU3R5bGVcIix7cHJlZml4OiEwfSksbWUoXCJiYWNrZmFjZVZpc2liaWxpdHlcIix7cHJlZml4OiEwfSksbWUoXCJ1c2VyU2VsZWN0XCIse3ByZWZpeDohMH0pLG1lKFwibWFyZ2luXCIse3BhcnNlcjp1ZShcIm1hcmdpblRvcCxtYXJnaW5SaWdodCxtYXJnaW5Cb3R0b20sbWFyZ2luTGVmdFwiKX0pLG1lKFwicGFkZGluZ1wiLHtwYXJzZXI6dWUoXCJwYWRkaW5nVG9wLHBhZGRpbmdSaWdodCxwYWRkaW5nQm90dG9tLHBhZGRpbmdMZWZ0XCIpfSksbWUoXCJjbGlwXCIse2RlZmF1bHRWYWx1ZTpcInJlY3QoMHB4LDBweCwwcHgsMHB4KVwiLHBhcnNlcjpmdW5jdGlvbih0LGUsaSxyLG4sYSl7dmFyIG8sbCxoO3JldHVybiA5PmM/KGw9dC5jdXJyZW50U3R5bGUsaD04PmM/XCIgXCI6XCIsXCIsbz1cInJlY3QoXCIrbC5jbGlwVG9wK2grbC5jbGlwUmlnaHQraCtsLmNsaXBCb3R0b20raCtsLmNsaXBMZWZ0K1wiKVwiLGU9dGhpcy5mb3JtYXQoZSkuc3BsaXQoXCIsXCIpLmpvaW4oaCkpOihvPXRoaXMuZm9ybWF0KHEodCx0aGlzLnAscywhMSx0aGlzLmRmbHQpKSxlPXRoaXMuZm9ybWF0KGUpKSx0aGlzLnBhcnNlQ29tcGxleCh0LnN0eWxlLG8sZSxuLGEpfX0pLG1lKFwidGV4dFNoYWRvd1wiLHtkZWZhdWx0VmFsdWU6XCIwcHggMHB4IDBweCAjOTk5XCIsY29sb3I6ITAsbXVsdGk6ITB9KSxtZShcImF1dG9Sb3VuZCxzdHJpY3RVbml0c1wiLHtwYXJzZXI6ZnVuY3Rpb24odCxlLGkscixzKXtyZXR1cm4gc319KSxtZShcImJvcmRlclwiLHtkZWZhdWx0VmFsdWU6XCIwcHggc29saWQgIzAwMFwiLHBhcnNlcjpmdW5jdGlvbih0LGUsaSxyLG4sYSl7cmV0dXJuIHRoaXMucGFyc2VDb21wbGV4KHQuc3R5bGUsdGhpcy5mb3JtYXQocSh0LFwiYm9yZGVyVG9wV2lkdGhcIixzLCExLFwiMHB4XCIpK1wiIFwiK3EodCxcImJvcmRlclRvcFN0eWxlXCIscywhMSxcInNvbGlkXCIpK1wiIFwiK3EodCxcImJvcmRlclRvcENvbG9yXCIscywhMSxcIiMwMDBcIikpLHRoaXMuZm9ybWF0KGUpLG4sYSl9LGNvbG9yOiEwLGZvcm1hdHRlcjpmdW5jdGlvbih0KXt2YXIgZT10LnNwbGl0KFwiIFwiKTtyZXR1cm4gZVswXStcIiBcIisoZVsxXXx8XCJzb2xpZFwiKStcIiBcIisodC5tYXRjaChsZSl8fFtcIiMwMDBcIl0pWzBdfX0pLG1lKFwiYm9yZGVyV2lkdGhcIix7cGFyc2VyOnVlKFwiYm9yZGVyVG9wV2lkdGgsYm9yZGVyUmlnaHRXaWR0aCxib3JkZXJCb3R0b21XaWR0aCxib3JkZXJMZWZ0V2lkdGhcIil9KSxtZShcImZsb2F0LGNzc0Zsb2F0LHN0eWxlRmxvYXRcIix7cGFyc2VyOmZ1bmN0aW9uKHQsZSxpLHIscyl7dmFyIG49dC5zdHlsZSxhPVwiY3NzRmxvYXRcImluIG4/XCJjc3NGbG9hdFwiOlwic3R5bGVGbG9hdFwiO3JldHVybiBuZXcgX2UobixhLDAsMCxzLC0xLGksITEsMCxuW2FdLGUpfX0pO3ZhciBrZT1mdW5jdGlvbih0KXt2YXIgZSxpPXRoaXMudCxyPWkuZmlsdGVyfHxxKHRoaXMuZGF0YSxcImZpbHRlclwiKSxzPTB8dGhpcy5zK3RoaXMuYyp0OzEwMD09PXMmJigtMT09PXIuaW5kZXhPZihcImF0cml4KFwiKSYmLTE9PT1yLmluZGV4T2YoXCJyYWRpZW50KFwiKSYmLTE9PT1yLmluZGV4T2YoXCJvYWRlcihcIik/KGkucmVtb3ZlQXR0cmlidXRlKFwiZmlsdGVyXCIpLGU9IXEodGhpcy5kYXRhLFwiZmlsdGVyXCIpKTooaS5maWx0ZXI9ci5yZXBsYWNlKHgsXCJcIiksZT0hMCkpLGV8fCh0aGlzLnhuMSYmKGkuZmlsdGVyPXI9cnx8XCJhbHBoYShvcGFjaXR5PVwiK3MrXCIpXCIpLC0xPT09ci5pbmRleE9mKFwicGFjaXR5XCIpPzA9PT1zJiZ0aGlzLnhuMXx8KGkuZmlsdGVyPXIrXCIgYWxwaGEob3BhY2l0eT1cIitzK1wiKVwiKTppLmZpbHRlcj1yLnJlcGxhY2UoVCxcIm9wYWNpdHk9XCIrcykpfTttZShcIm9wYWNpdHksYWxwaGEsYXV0b0FscGhhXCIse2RlZmF1bHRWYWx1ZTpcIjFcIixwYXJzZXI6ZnVuY3Rpb24odCxlLGkscixuLGEpe3ZhciBvPXBhcnNlRmxvYXQocSh0LFwib3BhY2l0eVwiLHMsITEsXCIxXCIpKSxsPXQuc3R5bGUsaD1cImF1dG9BbHBoYVwiPT09aTtyZXR1cm5cInN0cmluZ1wiPT10eXBlb2YgZSYmXCI9XCI9PT1lLmNoYXJBdCgxKSYmKGU9KFwiLVwiPT09ZS5jaGFyQXQoMCk/LTE6MSkqcGFyc2VGbG9hdChlLnN1YnN0cigyKSkrbyksaCYmMT09PW8mJlwiaGlkZGVuXCI9PT1xKHQsXCJ2aXNpYmlsaXR5XCIscykmJjAhPT1lJiYobz0wKSxZP249bmV3IF9lKGwsXCJvcGFjaXR5XCIsbyxlLW8sbik6KG49bmV3IF9lKGwsXCJvcGFjaXR5XCIsMTAwKm8sMTAwKihlLW8pLG4pLG4ueG4xPWg/MTowLGwuem9vbT0xLG4udHlwZT0yLG4uYj1cImFscGhhKG9wYWNpdHk9XCIrbi5zK1wiKVwiLG4uZT1cImFscGhhKG9wYWNpdHk9XCIrKG4ucytuLmMpK1wiKVwiLG4uZGF0YT10LG4ucGx1Z2luPWEsbi5zZXRSYXRpbz1rZSksaCYmKG49bmV3IF9lKGwsXCJ2aXNpYmlsaXR5XCIsMCwwLG4sLTEsbnVsbCwhMSwwLDAhPT1vP1wiaW5oZXJpdFwiOlwiaGlkZGVuXCIsMD09PWU/XCJoaWRkZW5cIjpcImluaGVyaXRcIiksbi54czA9XCJpbmhlcml0XCIsci5fb3ZlcndyaXRlUHJvcHMucHVzaChuLm4pLHIuX292ZXJ3cml0ZVByb3BzLnB1c2goaSkpLG59fSk7dmFyIEFlPWZ1bmN0aW9uKHQsZSl7ZSYmKHQucmVtb3ZlUHJvcGVydHk/KFwibXNcIj09PWUuc3Vic3RyKDAsMikmJihlPVwiTVwiK2Uuc3Vic3RyKDEpKSx0LnJlbW92ZVByb3BlcnR5KGUucmVwbGFjZShQLFwiLSQxXCIpLnRvTG93ZXJDYXNlKCkpKTp0LnJlbW92ZUF0dHJpYnV0ZShlKSl9LE9lPWZ1bmN0aW9uKHQpe2lmKHRoaXMudC5fZ3NDbGFzc1BUPXRoaXMsMT09PXR8fDA9PT10KXt0aGlzLnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwwPT09dD90aGlzLmI6dGhpcy5lKTtmb3IodmFyIGU9dGhpcy5kYXRhLGk9dGhpcy50LnN0eWxlO2U7KWUudj9pW2UucF09ZS52OkFlKGksZS5wKSxlPWUuX25leHQ7MT09PXQmJnRoaXMudC5fZ3NDbGFzc1BUPT09dGhpcyYmKHRoaXMudC5fZ3NDbGFzc1BUPW51bGwpfWVsc2UgdGhpcy50LmdldEF0dHJpYnV0ZShcImNsYXNzXCIpIT09dGhpcy5lJiZ0aGlzLnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIix0aGlzLmUpfTttZShcImNsYXNzTmFtZVwiLHtwYXJzZXI6ZnVuY3Rpb24odCxlLHIsbixhLG8sbCl7dmFyIGgsdSxmLF8scCxjPXQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIil8fFwiXCIsZD10LnN0eWxlLmNzc1RleHQ7aWYoYT1uLl9jbGFzc05hbWVQVD1uZXcgX2UodCxyLDAsMCxhLDIpLGEuc2V0UmF0aW89T2UsYS5wcj0tMTEsaT0hMCxhLmI9Yyx1PSQodCxzKSxmPXQuX2dzQ2xhc3NQVCl7Zm9yKF89e30scD1mLmRhdGE7cDspX1twLnBdPTEscD1wLl9uZXh0O2Yuc2V0UmF0aW8oMSl9cmV0dXJuIHQuX2dzQ2xhc3NQVD1hLGEuZT1cIj1cIiE9PWUuY2hhckF0KDEpP2U6Yy5yZXBsYWNlKFJlZ0V4cChcIlxcXFxzKlxcXFxiXCIrZS5zdWJzdHIoMikrXCJcXFxcYlwiKSxcIlwiKSsoXCIrXCI9PT1lLmNoYXJBdCgwKT9cIiBcIitlLnN1YnN0cigyKTpcIlwiKSxuLl90d2Vlbi5fZHVyYXRpb24mJih0LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsYS5lKSxoPUcodCx1LCQodCksbCxfKSx0LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsYyksYS5kYXRhPWguZmlyc3RNUFQsdC5zdHlsZS5jc3NUZXh0PWQsYT1hLnhmaXJzdD1uLnBhcnNlKHQsaC5kaWZzLGEsbykpLGF9fSk7dmFyIERlPWZ1bmN0aW9uKHQpe2lmKCgxPT09dHx8MD09PXQpJiZ0aGlzLmRhdGEuX3RvdGFsVGltZT09PXRoaXMuZGF0YS5fdG90YWxEdXJhdGlvbiYmXCJpc0Zyb21TdGFydFwiIT09dGhpcy5kYXRhLmRhdGEpe3ZhciBlLGkscixzLG49dGhpcy50LnN0eWxlLGE9by50cmFuc2Zvcm0ucGFyc2U7aWYoXCJhbGxcIj09PXRoaXMuZSluLmNzc1RleHQ9XCJcIixzPSEwO2Vsc2UgZm9yKGU9dGhpcy5lLnNwbGl0KFwiLFwiKSxyPWUubGVuZ3RoOy0tcj4tMTspaT1lW3JdLG9baV0mJihvW2ldLnBhcnNlPT09YT9zPSEwOmk9XCJ0cmFuc2Zvcm1PcmlnaW5cIj09PWk/d2U6b1tpXS5wKSxBZShuLGkpO3MmJihBZShuLHllKSx0aGlzLnQuX2dzVHJhbnNmb3JtJiZkZWxldGUgdGhpcy50Ll9nc1RyYW5zZm9ybSl9fTtmb3IobWUoXCJjbGVhclByb3BzXCIse3BhcnNlcjpmdW5jdGlvbih0LGUscixzLG4pe3JldHVybiBuPW5ldyBfZSh0LHIsMCwwLG4sMiksbi5zZXRSYXRpbz1EZSxuLmU9ZSxuLnByPS0xMCxuLmRhdGE9cy5fdHdlZW4saT0hMCxufX0pLGw9XCJiZXppZXIsdGhyb3dQcm9wcyxwaHlzaWNzUHJvcHMscGh5c2ljczJEXCIuc3BsaXQoXCIsXCIpLGNlPWwubGVuZ3RoO2NlLS07KWdlKGxbY2VdKTtsPWEucHJvdG90eXBlLGwuX2ZpcnN0UFQ9bnVsbCxsLl9vbkluaXRUd2Vlbj1mdW5jdGlvbih0LGUsbyl7aWYoIXQubm9kZVR5cGUpcmV0dXJuITE7dGhpcy5fdGFyZ2V0PXQsdGhpcy5fdHdlZW49byx0aGlzLl92YXJzPWUsaD1lLmF1dG9Sb3VuZCxpPSExLHI9ZS5zdWZmaXhNYXB8fGEuc3VmZml4TWFwLHM9SCh0LFwiXCIpLG49dGhpcy5fb3ZlcndyaXRlUHJvcHM7dmFyIGwsXyxjLGQsbSxnLHYseSxULHg9dC5zdHlsZTtpZih1JiZcIlwiPT09eC56SW5kZXgmJihsPXEodCxcInpJbmRleFwiLHMpLChcImF1dG9cIj09PWx8fFwiXCI9PT1sKSYmdGhpcy5fYWRkTGF6eVNldCh4LFwiekluZGV4XCIsMCkpLFwic3RyaW5nXCI9PXR5cGVvZiBlJiYoZD14LmNzc1RleHQsbD0kKHQscykseC5jc3NUZXh0PWQrXCI7XCIrZSxsPUcodCxsLCQodCkpLmRpZnMsIVkmJncudGVzdChlKSYmKGwub3BhY2l0eT1wYXJzZUZsb2F0KFJlZ0V4cC4kMSkpLGU9bCx4LmNzc1RleHQ9ZCksdGhpcy5fZmlyc3RQVD1fPXRoaXMucGFyc2UodCxlLG51bGwpLHRoaXMuX3RyYW5zZm9ybVR5cGUpe2ZvcihUPTM9PT10aGlzLl90cmFuc2Zvcm1UeXBlLHllP2YmJih1PSEwLFwiXCI9PT14LnpJbmRleCYmKHY9cSh0LFwiekluZGV4XCIscyksKFwiYXV0b1wiPT09dnx8XCJcIj09PXYpJiZ0aGlzLl9hZGRMYXp5U2V0KHgsXCJ6SW5kZXhcIiwwKSkscCYmdGhpcy5fYWRkTGF6eVNldCh4LFwiV2Via2l0QmFja2ZhY2VWaXNpYmlsaXR5XCIsdGhpcy5fdmFycy5XZWJraXRCYWNrZmFjZVZpc2liaWxpdHl8fChUP1widmlzaWJsZVwiOlwiaGlkZGVuXCIpKSk6eC56b29tPTEsYz1fO2MmJmMuX25leHQ7KWM9Yy5fbmV4dDt5PW5ldyBfZSh0LFwidHJhbnNmb3JtXCIsMCwwLG51bGwsMiksdGhpcy5fbGlua0NTU1AoeSxudWxsLGMpLHkuc2V0UmF0aW89VCYmeGU/Q2U6eWU/UmU6U2UseS5kYXRhPXRoaXMuX3RyYW5zZm9ybXx8UGUodCxzLCEwKSxuLnBvcCgpfWlmKGkpe2Zvcig7Xzspe2ZvcihnPV8uX25leHQsYz1kO2MmJmMucHI+Xy5wcjspYz1jLl9uZXh0OyhfLl9wcmV2PWM/Yy5fcHJldjptKT9fLl9wcmV2Ll9uZXh0PV86ZD1fLChfLl9uZXh0PWMpP2MuX3ByZXY9XzptPV8sXz1nfXRoaXMuX2ZpcnN0UFQ9ZH1yZXR1cm4hMH0sbC5wYXJzZT1mdW5jdGlvbih0LGUsaSxuKXt2YXIgYSxsLHUsZixfLHAsYyxkLG0sZyx2PXQuc3R5bGU7Zm9yKGEgaW4gZSlwPWVbYV0sbD1vW2FdLGw/aT1sLnBhcnNlKHQscCxhLHRoaXMsaSxuLGUpOihfPXEodCxhLHMpK1wiXCIsbT1cInN0cmluZ1wiPT10eXBlb2YgcCxcImNvbG9yXCI9PT1hfHxcImZpbGxcIj09PWF8fFwic3Ryb2tlXCI9PT1hfHwtMSE9PWEuaW5kZXhPZihcIkNvbG9yXCIpfHxtJiZiLnRlc3QocCk/KG18fChwPW9lKHApLHA9KHAubGVuZ3RoPjM/XCJyZ2JhKFwiOlwicmdiKFwiKStwLmpvaW4oXCIsXCIpK1wiKVwiKSxpPXBlKHYsYSxfLHAsITAsXCJ0cmFuc3BhcmVudFwiLGksMCxuKSk6IW18fC0xPT09cC5pbmRleE9mKFwiIFwiKSYmLTE9PT1wLmluZGV4T2YoXCIsXCIpPyh1PXBhcnNlRmxvYXQoXyksYz11fHwwPT09dT9fLnN1YnN0cigodStcIlwiKS5sZW5ndGgpOlwiXCIsKFwiXCI9PT1ffHxcImF1dG9cIj09PV8pJiYoXCJ3aWR0aFwiPT09YXx8XCJoZWlnaHRcIj09PWE/KHU9dGUodCxhLHMpLGM9XCJweFwiKTpcImxlZnRcIj09PWF8fFwidG9wXCI9PT1hPyh1PVoodCxhLHMpLGM9XCJweFwiKToodT1cIm9wYWNpdHlcIiE9PWE/MDoxLGM9XCJcIikpLGc9bSYmXCI9XCI9PT1wLmNoYXJBdCgxKSxnPyhmPXBhcnNlSW50KHAuY2hhckF0KDApK1wiMVwiLDEwKSxwPXAuc3Vic3RyKDIpLGYqPXBhcnNlRmxvYXQocCksZD1wLnJlcGxhY2UoeSxcIlwiKSk6KGY9cGFyc2VGbG9hdChwKSxkPW0/cC5zdWJzdHIoKGYrXCJcIikubGVuZ3RoKXx8XCJcIjpcIlwiKSxcIlwiPT09ZCYmKGQ9YSBpbiByP3JbYV06YykscD1mfHwwPT09Zj8oZz9mK3U6ZikrZDplW2FdLGMhPT1kJiZcIlwiIT09ZCYmKGZ8fDA9PT1mKSYmdSYmKHU9USh0LGEsdSxjKSxcIiVcIj09PWQ/KHUvPVEodCxhLDEwMCxcIiVcIikvMTAwLGUuc3RyaWN0VW5pdHMhPT0hMCYmKF89dStcIiVcIikpOlwiZW1cIj09PWQ/dS89USh0LGEsMSxcImVtXCIpOlwicHhcIiE9PWQmJihmPVEodCxhLGYsZCksZD1cInB4XCIpLGcmJihmfHwwPT09ZikmJihwPWYrdStkKSksZyYmKGYrPXUpLCF1JiYwIT09dXx8IWYmJjAhPT1mP3ZvaWQgMCE9PXZbYV0mJihwfHxcIk5hTlwiIT1wK1wiXCImJm51bGwhPXApPyhpPW5ldyBfZSh2LGEsZnx8dXx8MCwwLGksLTEsYSwhMSwwLF8scCksaS54czA9XCJub25lXCIhPT1wfHxcImRpc3BsYXlcIiE9PWEmJi0xPT09YS5pbmRleE9mKFwiU3R5bGVcIik/cDpfKTpVKFwiaW52YWxpZCBcIithK1wiIHR3ZWVuIHZhbHVlOiBcIitlW2FdKTooaT1uZXcgX2UodixhLHUsZi11LGksMCxhLGghPT0hMSYmKFwicHhcIj09PWR8fFwiekluZGV4XCI9PT1hKSwwLF8scCksaS54czA9ZCkpOmk9cGUodixhLF8scCwhMCxudWxsLGksMCxuKSksbiYmaSYmIWkucGx1Z2luJiYoaS5wbHVnaW49bik7cmV0dXJuIGl9LGwuc2V0UmF0aW89ZnVuY3Rpb24odCl7dmFyIGUsaSxyLHM9dGhpcy5fZmlyc3RQVCxuPTFlLTY7aWYoMSE9PXR8fHRoaXMuX3R3ZWVuLl90aW1lIT09dGhpcy5fdHdlZW4uX2R1cmF0aW9uJiYwIT09dGhpcy5fdHdlZW4uX3RpbWUpaWYodHx8dGhpcy5fdHdlZW4uX3RpbWUhPT10aGlzLl90d2Vlbi5fZHVyYXRpb24mJjAhPT10aGlzLl90d2Vlbi5fdGltZXx8dGhpcy5fdHdlZW4uX3Jhd1ByZXZUaW1lPT09LTFlLTYpZm9yKDtzOyl7aWYoZT1zLmMqdCtzLnMscy5yP2U9TWF0aC5yb3VuZChlKTpuPmUmJmU+LW4mJihlPTApLHMudHlwZSlpZigxPT09cy50eXBlKWlmKHI9cy5sLDI9PT1yKXMudFtzLnBdPXMueHMwK2Urcy54czErcy54bjErcy54czI7ZWxzZSBpZigzPT09cilzLnRbcy5wXT1zLnhzMCtlK3MueHMxK3MueG4xK3MueHMyK3MueG4yK3MueHMzO2Vsc2UgaWYoND09PXIpcy50W3MucF09cy54czArZStzLnhzMStzLnhuMStzLnhzMitzLnhuMitzLnhzMytzLnhuMytzLnhzNDtlbHNlIGlmKDU9PT1yKXMudFtzLnBdPXMueHMwK2Urcy54czErcy54bjErcy54czIrcy54bjIrcy54czMrcy54bjMrcy54czQrcy54bjQrcy54czU7ZWxzZXtmb3IoaT1zLnhzMCtlK3MueHMxLHI9MTtzLmw+cjtyKyspaSs9c1tcInhuXCIrcl0rc1tcInhzXCIrKHIrMSldO3MudFtzLnBdPWl9ZWxzZS0xPT09cy50eXBlP3MudFtzLnBdPXMueHMwOnMuc2V0UmF0aW8mJnMuc2V0UmF0aW8odCk7ZWxzZSBzLnRbcy5wXT1lK3MueHMwO3M9cy5fbmV4dH1lbHNlIGZvcig7czspMiE9PXMudHlwZT9zLnRbcy5wXT1zLmI6cy5zZXRSYXRpbyh0KSxzPXMuX25leHQ7ZWxzZSBmb3IoO3M7KTIhPT1zLnR5cGU/cy50W3MucF09cy5lOnMuc2V0UmF0aW8odCkscz1zLl9uZXh0fSxsLl9lbmFibGVUcmFuc2Zvcm1zPWZ1bmN0aW9uKHQpe3RoaXMuX3RyYW5zZm9ybVR5cGU9dHx8Mz09PXRoaXMuX3RyYW5zZm9ybVR5cGU/MzoyLHRoaXMuX3RyYW5zZm9ybT10aGlzLl90cmFuc2Zvcm18fFBlKHRoaXMuX3RhcmdldCxzLCEwKX07dmFyIE1lPWZ1bmN0aW9uKCl7dGhpcy50W3RoaXMucF09dGhpcy5lLHRoaXMuZGF0YS5fbGlua0NTU1AodGhpcyx0aGlzLl9uZXh0LG51bGwsITApfTtsLl9hZGRMYXp5U2V0PWZ1bmN0aW9uKHQsZSxpKXt2YXIgcj10aGlzLl9maXJzdFBUPW5ldyBfZSh0LGUsMCwwLHRoaXMuX2ZpcnN0UFQsMik7ci5lPWksci5zZXRSYXRpbz1NZSxyLmRhdGE9dGhpc30sbC5fbGlua0NTU1A9ZnVuY3Rpb24odCxlLGkscil7cmV0dXJuIHQmJihlJiYoZS5fcHJldj10KSx0Ll9uZXh0JiYodC5fbmV4dC5fcHJldj10Ll9wcmV2KSx0Ll9wcmV2P3QuX3ByZXYuX25leHQ9dC5fbmV4dDp0aGlzLl9maXJzdFBUPT09dCYmKHRoaXMuX2ZpcnN0UFQ9dC5fbmV4dCxyPSEwKSxpP2kuX25leHQ9dDpyfHxudWxsIT09dGhpcy5fZmlyc3RQVHx8KHRoaXMuX2ZpcnN0UFQ9dCksdC5fbmV4dD1lLHQuX3ByZXY9aSksdH0sbC5fa2lsbD1mdW5jdGlvbihlKXt2YXIgaSxyLHMsbj1lO2lmKGUuYXV0b0FscGhhfHxlLmFscGhhKXtuPXt9O2ZvcihyIGluIGUpbltyXT1lW3JdO24ub3BhY2l0eT0xLG4uYXV0b0FscGhhJiYobi52aXNpYmlsaXR5PTEpfXJldHVybiBlLmNsYXNzTmFtZSYmKGk9dGhpcy5fY2xhc3NOYW1lUFQpJiYocz1pLnhmaXJzdCxzJiZzLl9wcmV2P3RoaXMuX2xpbmtDU1NQKHMuX3ByZXYsaS5fbmV4dCxzLl9wcmV2Ll9wcmV2KTpzPT09dGhpcy5fZmlyc3RQVCYmKHRoaXMuX2ZpcnN0UFQ9aS5fbmV4dCksaS5fbmV4dCYmdGhpcy5fbGlua0NTU1AoaS5fbmV4dCxpLl9uZXh0Ll9uZXh0LHMuX3ByZXYpLHRoaXMuX2NsYXNzTmFtZVBUPW51bGwpLHQucHJvdG90eXBlLl9raWxsLmNhbGwodGhpcyxuKX07dmFyIExlPWZ1bmN0aW9uKHQsZSxpKXt2YXIgcixzLG4sYTtpZih0LnNsaWNlKWZvcihzPXQubGVuZ3RoOy0tcz4tMTspTGUodFtzXSxlLGkpO2Vsc2UgZm9yKHI9dC5jaGlsZE5vZGVzLHM9ci5sZW5ndGg7LS1zPi0xOyluPXJbc10sYT1uLnR5cGUsbi5zdHlsZSYmKGUucHVzaCgkKG4pKSxpJiZpLnB1c2gobikpLDEhPT1hJiY5IT09YSYmMTEhPT1hfHwhbi5jaGlsZE5vZGVzLmxlbmd0aHx8TGUobixlLGkpfTtyZXR1cm4gYS5jYXNjYWRlVG89ZnVuY3Rpb24odCxpLHIpe3ZhciBzLG4sYSxvPWUudG8odCxpLHIpLGw9W29dLGg9W10sdT1bXSxmPVtdLF89ZS5faW50ZXJuYWxzLnJlc2VydmVkUHJvcHM7Zm9yKHQ9by5fdGFyZ2V0c3x8by50YXJnZXQsTGUodCxoLGYpLG8ucmVuZGVyKGksITApLExlKHQsdSksby5yZW5kZXIoMCwhMCksby5fZW5hYmxlZCghMCkscz1mLmxlbmd0aDstLXM+LTE7KWlmKG49RyhmW3NdLGhbc10sdVtzXSksbi5maXJzdE1QVCl7bj1uLmRpZnM7XHJcbmZvcihhIGluIHIpX1thXSYmKG5bYV09clthXSk7bC5wdXNoKGUudG8oZltzXSxpLG4pKX1yZXR1cm4gbH0sdC5hY3RpdmF0ZShbYV0pLGF9LCEwKX0pLHdpbmRvdy5fZ3NEZWZpbmUmJndpbmRvdy5fZ3NRdWV1ZS5wb3AoKSgpOyIsIi8qIVxyXG4gKiBWRVJTSU9OOiAxLjcuM1xyXG4gKiBEQVRFOiAyMDE0LTAxLTE0XHJcbiAqIFVQREFURVMgQU5EIERPQ1MgQVQ6IGh0dHA6Ly93d3cuZ3JlZW5zb2NrLmNvbVxyXG4gKlxyXG4gKiBAbGljZW5zZSBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxNCwgR3JlZW5Tb2NrLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG4gKiBUaGlzIHdvcmsgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYXQgaHR0cDovL3d3dy5ncmVlbnNvY2suY29tL3Rlcm1zX29mX3VzZS5odG1sIG9yIGZvclxyXG4gKiBDbHViIEdyZWVuU29jayBtZW1iZXJzLCB0aGUgc29mdHdhcmUgYWdyZWVtZW50IHRoYXQgd2FzIGlzc3VlZCB3aXRoIHlvdXIgbWVtYmVyc2hpcC5cclxuICogXHJcbiAqIEBhdXRob3I6IEphY2sgRG95bGUsIGphY2tAZ3JlZW5zb2NrLmNvbVxyXG4gKiovXHJcbih3aW5kb3cuX2dzUXVldWV8fCh3aW5kb3cuX2dzUXVldWU9W10pKS5wdXNoKGZ1bmN0aW9uKCl7XCJ1c2Ugc3RyaWN0XCI7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGU9d2luZG93LGk9ZnVuY3Rpb24oaSxzKXt2YXIgcj1cInhcIj09PXM/XCJXaWR0aFwiOlwiSGVpZ2h0XCIsbj1cInNjcm9sbFwiK3IsYT1cImNsaWVudFwiK3Isbz1kb2N1bWVudC5ib2R5O3JldHVybiBpPT09ZXx8aT09PXR8fGk9PT1vP01hdGgubWF4KHRbbl0sb1tuXSktKGVbXCJpbm5lclwiK3JdfHxNYXRoLm1heCh0W2FdLG9bYV0pKTppW25dLWlbXCJvZmZzZXRcIityXX0scz13aW5kb3cuX2dzRGVmaW5lLnBsdWdpbih7cHJvcE5hbWU6XCJzY3JvbGxUb1wiLEFQSToyLHZlcnNpb246XCIxLjcuM1wiLGluaXQ6ZnVuY3Rpb24odCxzLHIpe3JldHVybiB0aGlzLl93ZHc9dD09PWUsdGhpcy5fdGFyZ2V0PXQsdGhpcy5fdHdlZW49cixcIm9iamVjdFwiIT10eXBlb2YgcyYmKHM9e3k6c30pLHRoaXMuX2F1dG9LaWxsPXMuYXV0b0tpbGwhPT0hMSx0aGlzLng9dGhpcy54UHJldj10aGlzLmdldFgoKSx0aGlzLnk9dGhpcy55UHJldj10aGlzLmdldFkoKSxudWxsIT1zLng/KHRoaXMuX2FkZFR3ZWVuKHRoaXMsXCJ4XCIsdGhpcy54LFwibWF4XCI9PT1zLng/aSh0LFwieFwiKTpzLngsXCJzY3JvbGxUb194XCIsITApLHRoaXMuX292ZXJ3cml0ZVByb3BzLnB1c2goXCJzY3JvbGxUb194XCIpKTp0aGlzLnNraXBYPSEwLG51bGwhPXMueT8odGhpcy5fYWRkVHdlZW4odGhpcyxcInlcIix0aGlzLnksXCJtYXhcIj09PXMueT9pKHQsXCJ5XCIpOnMueSxcInNjcm9sbFRvX3lcIiwhMCksdGhpcy5fb3ZlcndyaXRlUHJvcHMucHVzaChcInNjcm9sbFRvX3lcIikpOnRoaXMuc2tpcFk9ITAsITB9LHNldDpmdW5jdGlvbih0KXt0aGlzLl9zdXBlci5zZXRSYXRpby5jYWxsKHRoaXMsdCk7dmFyIHM9dGhpcy5fd2R3fHwhdGhpcy5za2lwWD90aGlzLmdldFgoKTp0aGlzLnhQcmV2LHI9dGhpcy5fd2R3fHwhdGhpcy5za2lwWT90aGlzLmdldFkoKTp0aGlzLnlQcmV2LG49ci10aGlzLnlQcmV2LGE9cy10aGlzLnhQcmV2O3RoaXMuX2F1dG9LaWxsJiYoIXRoaXMuc2tpcFgmJihhPjd8fC03PmEpJiZpKHRoaXMuX3RhcmdldCxcInhcIik+cyYmKHRoaXMuc2tpcFg9ITApLCF0aGlzLnNraXBZJiYobj43fHwtNz5uKSYmaSh0aGlzLl90YXJnZXQsXCJ5XCIpPnImJih0aGlzLnNraXBZPSEwKSx0aGlzLnNraXBYJiZ0aGlzLnNraXBZJiZ0aGlzLl90d2Vlbi5raWxsKCkpLHRoaXMuX3dkdz9lLnNjcm9sbFRvKHRoaXMuc2tpcFg/czp0aGlzLngsdGhpcy5za2lwWT9yOnRoaXMueSk6KHRoaXMuc2tpcFl8fCh0aGlzLl90YXJnZXQuc2Nyb2xsVG9wPXRoaXMueSksdGhpcy5za2lwWHx8KHRoaXMuX3RhcmdldC5zY3JvbGxMZWZ0PXRoaXMueCkpLHRoaXMueFByZXY9dGhpcy54LHRoaXMueVByZXY9dGhpcy55fX0pLHI9cy5wcm90b3R5cGU7cy5tYXg9aSxyLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd2R3P251bGwhPWUucGFnZVhPZmZzZXQ/ZS5wYWdlWE9mZnNldDpudWxsIT10LnNjcm9sbExlZnQ/dC5zY3JvbGxMZWZ0OmRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDp0aGlzLl90YXJnZXQuc2Nyb2xsTGVmdH0sci5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dkdz9udWxsIT1lLnBhZ2VZT2Zmc2V0P2UucGFnZVlPZmZzZXQ6bnVsbCE9dC5zY3JvbGxUb3A/dC5zY3JvbGxUb3A6ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6dGhpcy5fdGFyZ2V0LnNjcm9sbFRvcH0sci5fa2lsbD1mdW5jdGlvbih0KXtyZXR1cm4gdC5zY3JvbGxUb194JiYodGhpcy5za2lwWD0hMCksdC5zY3JvbGxUb195JiYodGhpcy5za2lwWT0hMCksdGhpcy5fc3VwZXIuX2tpbGwuY2FsbCh0aGlzLHQpfX0pLHdpbmRvdy5fZ3NEZWZpbmUmJndpbmRvdy5fZ3NRdWV1ZS5wb3AoKSgpOyJdfQ== + //# sourceMappingURL=wpr-admin.js.map diff --git a/assets/js/wpr-admin.js.map b/assets/js/wpr-admin.js.min.map similarity index 100% rename from assets/js/wpr-admin.js.map rename to assets/js/wpr-admin.js.min.map diff --git a/assets/js/wpr-admin.min.js b/assets/js/wpr-admin.min.js new file mode 100644 index 0000000000..181df03553 --- /dev/null +++ b/assets/js/wpr-admin.min.js @@ -0,0 +1,2 @@ +!function s(n,r,a){function o(e,t){if(!r[e]){if(!n[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(l)return l(e,!0);throw(i=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",i}i=r[e]={exports:{}},n[e][0].call(i.exports,function(t){return o(n[e][1][t]||t)},i,i.exports,s,n,r,a)}return r[e].exports}for(var l="function"==typeof require&&require,t=0;t form > #wpr-options-submit"),this.$pages=document.querySelectorAll(".wpr-Page"),this.$sidebar=document.querySelector(".wpr-Sidebar"),this.$content=document.querySelector(".wpr-Content"),this.$tips=document.querySelector(".wpr-Content-tips"),this.$links=document.querySelectorAll(".wpr-body a"),this.$menuItem=null,this.$page=null,this.pageId=null,this.bodyTop=0,this.buttonText=this.$submitButton.value,i.getBodyTop(),window.onhashchange=function(){i.detectID()},window.location.hash?(this.bodyTop=0,this.detectID()):(e=localStorage.getItem("wpr-hash"),this.bodyTop=0,e?(window.location.hash=e,this.detectID()):(this.$menuItems[0].classList.add("isActive"),localStorage.setItem("wpr-hash","dashboard"),window.location.hash="#dashboard"));for(var s=0;s{a.querySelectorAll(".wpr-rocketcdn-open").forEach(t=>{t.addEventListener("click",t=>{t.preventDefault()})}),function(){var t="";t+="action=rocketcdn_process_status";const e=r(t+="&nonce="+rocket_ajax_data.nonce);e.onreadystatechange=()=>{e.readyState===XMLHttpRequest.DONE&&200===e.status&&!0===JSON.parse(e.responseText).success&&MicroModal.show("wpr-rocketcdn-modal")}}(),MicroModal.init({disableScroll:!0})}),s.addEventListener("load",()=>{let t=a.querySelector("#wpr-rocketcdn-open-cta"),e=a.querySelector("#wpr-rocketcdn-close-cta"),i=a.querySelector("#wpr-rocketcdn-cta-small"),s=a.querySelector("#wpr-rocketcdn-cta");function n(t){var e="";return e+="action=toggle_rocketcdn_cta",e+="&status="+t,e+="&nonce="+rocket_ajax_data.nonce}null!==t&&null!==i&&null!==s&&t.addEventListener("click",t=>{t.preventDefault(),i.classList.add("wpr-isHidden"),s.classList.remove("wpr-isHidden"),r(n("big"))}),null!==e&&null!==i&&null!==s&&e.addEventListener("click",t=>{t.preventDefault(),i.classList.remove("wpr-isHidden"),s.classList.add("wpr-isHidden"),r(n("small"))})}),s.onmessage=t=>{var e,i,s=rocket_ajax_data.origin_url;t.origin===s&&((e=t.data).hasOwnProperty("cdnFrameHeight")&&(a.getElementById("rocketcdn-iframe").style.height="".concat(e.cdnFrameHeight,"px")),(i=t.data).hasOwnProperty("cdnFrameClose")&&(MicroModal.close("wpr-rocketcdn-modal"),i.hasOwnProperty("cdn_page_message")&&-1!==["iframe-payment-success","iframe-unsubscribe-success"].indexOf(i.cdn_page_message)&&a.location.reload()),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_token")){var s="";s+="action=save_rocketcdn_token",s+="&value="+t.rocketcdn_token;const n=r(s+="&nonce="+rocket_ajax_data.nonce);n.onreadystatechange=()=>{var t;n.readyState===XMLHttpRequest.DONE&&200===n.status&&(t=JSON.parse(n.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}else{s={process:"subscribe",message:"token_not_received"};i.postMessage({success:!1,data:s,rocketcdn:!0},e)}}(t.data,s),(e=t.data).hasOwnProperty("rocketcdn_process")&&(i="",i+="action=rocketcdn_process_set",i+="&status="+e.rocketcdn_process,r(i+="&nonce="+rocket_ajax_data.nonce)),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_url")){var s="";s+="action=rocketcdn_enable",s+="&cdn_url="+t.rocketcdn_url;const n=r(s+="&nonce="+rocket_ajax_data.nonce);n.onreadystatechange=()=>{var t;n.readyState===XMLHttpRequest.DONE&&200===n.status&&(t=JSON.parse(n.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}}(t.data,s),function(t,e){let i=a.querySelector("#rocketcdn-iframe").contentWindow;if(t.hasOwnProperty("rocketcdn_disable")){t="";t+="action=rocketcdn_disable";const s=r(t+="&nonce="+rocket_ajax_data.nonce);s.onreadystatechange=()=>{var t;s.readyState===XMLHttpRequest.DONE&&200===s.status&&(t=JSON.parse(s.responseText),i.postMessage({success:t.success,data:t.data,rocketcdn:!0},e))}}}(t.data,s),(s=t.data).hasOwnProperty("rocketcdn_validate_token")&&s.hasOwnProperty("rocketcdn_validate_cname")&&(t="",t+="action=rocketcdn_validate_token_cname",t+="&cdn_url="+s.rocketcdn_validate_cname,t+="&cdn_token="+s.rocketcdn_validate_token,r(t+="&nonce="+rocket_ajax_data.nonce)))}},{}],9:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("TimelineLite",["core.Animation","core.SimpleTimeline","TweenLite"],function(h,u,p){function d(t){u.call(this,t),this._labels={},this.autoRemoveChildren=!0===this.vars.autoRemoveChildren,this.smoothChildTiming=!0===this.vars.smoothChildTiming,this._sortChildren=!0,this._onUpdate=this.vars.onUpdate;var e,i,s=this.vars;for(i in s)e=s[i],g(e)&&-1!==e.join("").indexOf("{self}")&&(s[i]=this._swapSelfInParams(e));g(s.tweens)&&this.add(s.tweens,0,s.align,s.stagger)}function _(t){var e,i={};for(e in t)i[e]=t[e];return i}function n(t,e,i,s){t._timeline.pause(t._startTime),e&&e.apply(s||t._timeline,i||v)}var f=1e-10,m=p._internals.isSelector,g=p._internals.isArray,v=[],a=window._gsDefine.globals,w=v.slice,t=d.prototype=new u;return d.version="1.12.1",t.constructor=d,t.kill()._gc=!1,t.to=function(t,e,i,s){var n=i.repeat&&a.TweenMax||p;return e?this.add(new n(t,e,i),s):this.set(t,i,s)},t.from=function(t,e,i,s){return this.add((i.repeat&&a.TweenMax||p).from(t,e,i),s)},t.fromTo=function(t,e,i,s,n){var r=s.repeat&&a.TweenMax||p;return e?this.add(r.fromTo(t,e,i,s),n):this.set(t,s,n)},t.staggerTo=function(t,e,i,s,n,r,a,o){var l,c=new d({onComplete:r,onCompleteParams:a,onCompleteScope:o,smoothChildTiming:this.smoothChildTiming});for("string"==typeof t&&(t=p.selector(t)||t),m(t)&&(t=w.call(t,0)),s=s||0,l=0;t.length>l;l++)i.startAt&&(i.startAt=_(i.startAt)),c.to(t[l],e,_(i),l*s);return this.add(c,n)},t.staggerFrom=function(t,e,i,s,n,r,a,o){return i.immediateRender=0!=i.immediateRender,i.runBackwards=!0,this.staggerTo(t,e,i,s,n,r,a,o)},t.staggerFromTo=function(t,e,i,s,n,r,a,o,l){return s.startAt=i,s.immediateRender=0!=s.immediateRender&&0!=i.immediateRender,this.staggerTo(t,e,s,n,r,a,o,l)},t.call=function(t,e,i,s){return this.add(p.delayedCall(0,t,e,i),s)},t.set=function(t,e,i){return i=this._parseTimeOrLabel(i,0,!0),null==e.immediateRender&&(e.immediateRender=i===this._time&&!this._paused),this.add(new p(t,0,e),i)},d.exportRoot=function(t,e){null==(t=t||{}).smoothChildTiming&&(t.smoothChildTiming=!0);var i,s,n=new d(t),t=n._timeline;for(null==e&&(e=!0),t._remove(n,!0),n._startTime=0,n._rawPrevTime=n._time=n._totalTime=t._time,i=t._first;i;)s=i._next,e&&i instanceof p&&i.target===i.vars.onComplete||n.add(i,i._startTime-i._delay),i=s;return t.add(n,0),n},t.add=function(t,e,i,s){var n,r,a,o,l,c;if("number"!=typeof e&&(e=this._parseTimeOrLabel(e,0,!0,t)),!(t instanceof h)){if(t instanceof Array||t&&t.push&&g(t)){for(i=i||"normal",s=s||0,n=e,r=t.length,a=0;at._startTime;l._timeline;)c&&l._timeline.smoothChildTiming?l.totalTime(l._totalTime,!0):l._gc&&l._enabled(!0,!1),l=l._timeline;return this},t.remove=function(t){if(t instanceof h)return this._remove(t,!1);if(t instanceof Array||t&&t.push&&g(t)){for(var e=t.length;-1<--e;)this.remove(t[e]);return this}return"string"==typeof t?this.removeLabel(t):this.kill(null,t)},t._remove=function(t,e){u.prototype._remove.call(this,t,e);e=this._last;return e?this._time>e._startTime+e._totalDuration/e._timeScale&&(this._time=this.duration(),this._totalTime=this._totalDuration):this._time=this._totalTime=this._duration=this._totalDuration=0,this},t.append=function(t,e){return this.add(t,this._parseTimeOrLabel(null,e,!0,t))},t.insert=t.insertMultiple=function(t,e,i,s){return this.add(t,e||0,i,s)},t.appendMultiple=function(t,e,i,s){return this.add(t,this._parseTimeOrLabel(null,e,!0,t),i,s)},t.addLabel=function(t,e){return this._labels[t]=this._parseTimeOrLabel(e),this},t.addPause=function(t,e,i,s){return this.call(n,["{self}",e,i,s],this,t)},t.removeLabel=function(t){return delete this._labels[t],this},t.getLabelTime=function(t){return null!=this._labels[t]?this._labels[t]:-1},t._parseTimeOrLabel=function(t,e,i,s){var n;if(s instanceof h&&s.timeline===this)this.remove(s);else if(s&&(s instanceof Array||s.push&&g(s)))for(n=s.length;-1<--n;)s[n]instanceof h&&s[n].timeline===this&&this.remove(s[n]);if("string"==typeof e)return this._parseTimeOrLabel(e,i&&"number"==typeof t&&null==this._labels[e]?t-this.duration():0,i);if(e=e||0,"string"!=typeof t||!isNaN(t)&&null==this._labels[t])null==t&&(t=this.duration());else{if(-1===(n=t.indexOf("=")))return null==this._labels[t]?i?this._labels[t]=this.duration()+e:e:this._labels[t]+e;e=parseInt(t.charAt(n-1)+"1",10)*Number(t.substr(n+1)),t=1f&&(a="onReverseComplete"))),this._rawPrevTime=this._duration||!e||t||this._rawPrevTime===t?t:f,t=l+1e-4):t<1e-7?(((this._totalTime=this._time=0)!==c||0===this._duration&&this._rawPrevTime!==f&&(0=c)for(s=this._first;s&&(r=s._next,!this._paused||p);)(s._active||s._startTime<=this._time&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=r;else for(s=this._last;s&&(r=s._prev,!this._paused||p);)(s._active||c>=s._startTime&&!s._paused&&!s._gc)&&(s._reversed?s.render((s._dirty?s.totalDuration():s._totalDuration)-(t-s._startTime)*s._timeScale,e,i):s.render((t-s._startTime)*s._timeScale,e,i)),s=r;this._onUpdate&&(e||this._onUpdate.apply(this.vars.onUpdateScope||this,this.vars.onUpdateParams||v)),a&&(this._gc||h!==this._startTime&&u===this._timeScale||!(0===this._time||l>=this.totalDuration())||(n&&(this._timeline.autoRemoveChildren&&this._enabled(!1,!1),this._active=!1),!e&&this.vars[a]&&this.vars[a].apply(this.vars[a+"Scope"]||this,this.vars[a+"Params"]||v)))}},t._hasPausedChild=function(){for(var t=this._first;t;){if(t._paused||t instanceof d&&t._hasPausedChild())return!0;t=t._next}return!1},t.getChildren=function(t,e,i,s){s=s||-9999999999;for(var n=[],r=this._first,a=0;r;)s>r._startTime||(r instanceof p?!1!==e&&(n[a++]=r):(!1!==i&&(n[a++]=r),!1!==t&&(a=(n=n.concat(r.getChildren(!0,e,i))).length))),r=r._next;return n},t.getTweensOf=function(t,e){var i,s,n=this._gc,r=[],a=0;for(n&&this._enabled(!0,!0),s=(i=p.getTweensOf(t)).length;-1<--s;)(i[s].timeline===this||e&&this._contains(i[s]))&&(r[a++]=i[s]);return n&&this._enabled(!1,!0),r},t._contains=function(t){for(var e=t.timeline;e;){if(e===this)return!0;e=e.timeline}return!1},t.shiftChildren=function(t,e,i){i=i||0;for(var s,n=this._first,r=this._labels;n;)n._startTime>=i&&(n._startTime+=t),n=n._next;if(e)for(s in r)r[s]>=i&&(r[s]+=t);return this._uncache(!0)},t._kill=function(t,e){if(!t&&!e)return this._enabled(!1,!1);for(var i=e?this.getTweensOf(e):this.getChildren(!0,!0,!1),s=i.length,n=!1;-1<--s;)i[s]._kill(t,e)&&(n=!0);return n},t.clear=function(t){var e=this.getChildren(!1,!0,!0),i=e.length;for(this._time=this._totalTime=0;-1<--i;)e[i]._enabled(!1,!1);return!1!==t&&(this._labels={}),this._uncache(!0)},t.invalidate=function(){for(var t=this._first;t;)t.invalidate(),t=t._next;return this},t._enabled=function(t,e){if(t===this._gc)for(var i=this._first;i;)i._enabled(t,!0),i=i._next;return u.prototype._enabled.call(this,t,e)},t.duration=function(t){return arguments.length?(0!==this.duration()&&0!==t&&this.timeScale(this._duration/t),this):(this._dirty&&this.totalDuration(),this._duration)},t.totalDuration=function(t){if(arguments.length)return 0!==this.totalDuration()&&0!==t&&this.timeScale(this._totalDuration/t),this;if(this._dirty){for(var e,i,s=0,n=this._last,r=999999999999;n;)e=n._prev,n._dirty&&n.totalDuration(),n._startTime>r&&this._sortChildren&&!n._paused?this.add(n,n._startTime-n._delay):r=n._startTime,n._startTime<0&&!n._paused&&(s-=n._startTime,this._timeline.smoothChildTiming&&(this._startTime+=n._startTime/this._timeScale),this.shiftChildren(-n._startTime,!1,-9999999999),r=0),s<(i=n._startTime+n._totalDuration/n._timeScale)&&(s=i),n=e;this._duration=this._totalDuration=s,this._dirty=!1}return this._totalDuration},t.usesFrames=function(){for(var t=this._timeline;t._timeline;)t=t._timeline;return t===h._rootFramesTimeline},t.rawTime=function(){return this._paused?this._totalTime:(this._timeline.rawTime()-this._startTime)*this._timeScale},d},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],10:[function(t,Q,e){"use strict";!function(p){var e,i,d=p.GreenSockGlobals||p;if(!d.TweenLite){var _,f=function(t){for(var e=t.split("."),i=d,s=0;e.length>s;s++)i[e[s]]=i=i[e[s]]||{};return i},u=f("com.greensock"),m=1e-10,o=[].slice,g=function(){},h=(e=Object.prototype.toString,i=e.call([]),function(t){return null!=t&&(t instanceof Array||"object"==typeof t&&!!t.push&&e.call(t)===i)}),v={},w=function(o,l,c,h){this.sc=v[o]?v[o].sc:[],(v[o]=this).gsClass=null,this.func=c;var u=[];this.check=function(t){for(var e,i,s,n,r=l.length,a=r;-1<--r;)(e=v[l[r]]||new w(l[r],[])).gsClass?(u[r]=e.gsClass,a--):t&&e.sc.push(this);if(0===a&&c)for(s=(i=("com.greensock."+o).split(".")).pop(),n=f(i.join("."))[s]=this.gsClass=c.apply(c,u),h&&(d[s]=n,"function"==typeof define&&define.amd?define((p.GreenSockAMDPath?p.GreenSockAMDPath+"/":"")+o.split(".").join("/"),[],function(){return n}):void 0!==Q&&Q.exports&&(Q.exports=n)),r=0;this.sc.length>r;r++)this.sc[r].check()},this.check(!0)},s=p._gsDefine=function(t,e,i,s){return new w(t,e,i,s)},y=u._class=function(t,e,i){return e=e||function(){},s(t,[],function(){return e},i),e};s.globals=d;var t,n=[0,0,1,1],x=[],b=y("easing.Ease",function(t,e,i,s){this._func=t,this._type=i||0,this._power=s||0,this._params=e?n.concat(e):n},!0),T=b.map={},r=b.register=function(t,e,i,s){for(var n,r,a,o,l=e.split(","),c=l.length,h=(i||"easeIn,easeOut,easeInOut").split(",");-1<--c;)for(r=l[c],n=s?y("easing."+r,null,!0):u.easing[r]||{},a=h.length;-1<--a;)o=h[a],T[r+"."+o]=T[o+r]=n[o]=t.getRatio?t:t[o]||new t};for((t=b.prototype)._calcEnd=!1,t.getRatio=function(t){if(this._func)return this._params[0]=t,this._func.apply(null,this._params);var e=this._type,i=this._power,s=1===e?1-t:2===e?t:t<.5?2*t:2*(1-t);return 1===i?s*=s:2===i?s*=s*s:3===i?s*=s*s*s:4===i&&(s*=s*s*s*s),1===e?1-s:2===e?s:t<.5?s/2:1-s/2},l=(a=["Linear","Quad","Cubic","Quart","Quint,Strong"]).length;-1<--l;)t=a[l]+",Power"+l,r(new b(null,null,1,l),t,"easeOut",!0),r(new b(null,null,2,l),t,"easeIn"+(0===l?",easeNone":"")),r(new b(null,null,3,l),t,"easeInOut");T.linear=u.easing.Linear.easeIn,T.swing=u.easing.Quad.easeInOut;var k=y("events.EventDispatcher",function(t){this._listeners={},this._eventTarget=t||this});(t=k.prototype).addEventListener=function(t,e,i,s,n){n=n||0;var r,a,o=this._listeners[t],l=0;for(null==o&&(this._listeners[t]=o=[]),a=o.length;-1<--a;)(r=o[a]).c===e&&r.s===i?o.splice(a,1):0===l&&n>r.pr&&(l=a+1);o.splice(l,0,{c:e,s:i,up:s,pr:n}),this!==A||_||A.wake()},t.removeEventListener=function(t,e){var i,s=this._listeners[t];if(s)for(i=s.length;-1<--i;)if(s[i].c===e)return void s.splice(i,1)},t.dispatchEvent=function(t){var e,i,s,n=this._listeners[t];if(n)for(e=n.length,i=this._eventTarget;-1<--e;)(s=n[e]).up?s.c.call(s.s||i,{type:t,target:i}):s.c.call(s.s||i)};for(var a,P=p.requestAnimationFrame,S=p.cancelAnimationFrame,O=Date.now||function(){return(new Date).getTime()},C=O(),l=(a=["ms","moz","webkit","o"]).length;-1<--l&&!P;)P=p[a[l]+"RequestAnimationFrame"],S=p[a[l]+"CancelAnimationFrame"]||p[a[l]+"CancelRequestAnimationFrame"];y("Ticker",function(t,e){var s,n,r,a,o,l=this,c=O(),i=!1!==e&&P,h=500,u=33,p=function(t){var e,i=O()-C;h=i&&i+this.totalDuration()/this._timeScale>t},t._enabled=function(t,e){return _||A.wake(),this._gc=!t,this._active=this.isActive(),!0!==e&&(t&&!this.timeline?this._timeline.add(this,this._startTime-this._delay):!t&&this.timeline&&this._timeline._remove(this,!0)),!1},t._kill=function(){return this._enabled(!1,!1)},t.kill=function(t,e){return this._kill(t,e),this},t._uncache=function(t){for(var e=t?this:this.timeline;e;)e._dirty=!0,e=e.timeline;return this},t._swapSelfInParams=function(t){for(var e=t.length,i=t.concat();-1<--e;)"{self}"===t[e]&&(i[e]=this);return i},t.eventCallback=function(t,e,i,s){if("on"===(t||"").substr(0,2)){var n=this.vars;if(1===arguments.length)return n[t];null==e?delete n[t]:(n[t]=e,n[t+"Params"]=h(i)&&-1!==i.join("").indexOf("{self}")?this._swapSelfInParams(i):i,n[t+"Scope"]=s),"onUpdate"===t&&(this._onUpdate=e)}return this},t.delay=function(t){return arguments.length?(this._timeline.smoothChildTiming&&this.startTime(this._startTime+t-this._delay),this._delay=t,this):this._delay},t.duration=function(t){return arguments.length?(this._duration=this._totalDuration=t,this._uncache(!0),this._timeline.smoothChildTiming&&0this._duration?this._duration:t,e)):this._time},t.totalTime=function(t,e,i){if(_||A.wake(),!arguments.length)return this._totalTime;if(this._timeline){if(t<0&&!i&&(t+=this.totalDuration()),this._timeline.smoothChildTiming){this._dirty&&this.totalDuration();var s=this._totalDuration,n=this._timeline;if(ss;)i=i._prev;return i?(t._next=i._next,i._next=t):(t._next=this._first,this._first=t),t._next?t._next._prev=t:this._last=t,t._prev=i,this._timeline&&this._uncache(!0),this},t._remove=function(t,e){return t.timeline===this&&(e||t._enabled(!1,!0),t.timeline=null,t._prev?t._prev._next=t._next:this._first===t&&(this._first=t._next),t._next?t._next._prev=t._prev:this._last===t&&(this._last=t._prev),this._timeline&&this._uncache(!0)),this},t.render=function(t,e,i){var s,n=this._first;for(this._totalTime=this._time=this._rawPrevTime=t;n;)s=n._next,(n._active||t>=n._startTime&&!n._paused)&&(n._reversed?n.render((n._dirty?n.totalDuration():n._totalDuration)-(t-n._startTime)*n._timeScale,e,i):n.render((t-n._startTime)*n._timeScale,e,i)),n=s},t.rawTime=function(){return _||A.wake(),this._totalTime};var I=y("TweenLite",function(t,e,i){if(c.call(this,e,i),this.render=I.prototype.render,null==t)throw"Cannot tween a null target.";this.target=t="string"==typeof t&&I.selector(t)||t;var s,n,r,i=t.jquery||t.length&&t!==p&&t[0]&&(t[0]===p||t[0].nodeType&&t[0].style&&!t.nodeType),a=this.vars.overwrite;if(this._overwrite=a=null==a?F[I.defaultOverwrite]:"number"==typeof a?a>>0:F[a],(i||t instanceof Array||t.push&&h(t))&&"number"!=typeof t[0])for(this._targets=r=o.call(t,0),this._propLookup=[],this._siblings=[],s=0;r.length>s;s++)(n=r[s])?"string"!=typeof n?n.length&&n!==p&&n[0]&&(n[0]===p||n[0].nodeType&&n[0].style&&!n.nodeType)?(r.splice(s--,1),this._targets=r=r.concat(o.call(n,0))):(this._siblings[s]=H(n,this,!1),1===a&&1=a._startTime&&a._startTime+a.totalDuration()/a._timeScale>c&&((p||!a._initted)&&c-a._startTime<=2e-10||(h[u++]=a)));for(d=u;-1<--d;)a=h[d],2===s&&a._kill(i,t)&&(r=!0),(2!==s||!a._firstPT&&a._initted)&&a._enabled(!1,!1)&&(r=!0);return r},V=function(t,e,i){for(var s=t._timeline,n=s._timeScale,r=t._startTime;s._timeline;){if(r+=s._startTime,n*=s._timeScale,s._paused)return-100;s=s._timeline}return e<(r/=n)?r-e:i&&r===e||!t._initted&&r-e<2*m?m:(r+=t.totalDuration()/t._timeScale/n)>e+m?0:r-e-m};t._init=function(){var t,e,i,s,n,r=this.vars,a=this._overwrittenProps,o=this._duration,l=!!r.immediateRender,c=r.ease;if(r.startAt){for(s in this._startAt&&(this._startAt.render(-1,!0),this._startAt.kill()),n={},r.startAt)n[s]=r.startAt[s];if(n.overwrite=!1,n.immediateRender=!0,n.lazy=l&&!1!==r.lazy,n.startAt=n.delay=null,this._startAt=I.to(this.target,0,n),l)if(0o.pr;)s=s._next;(o._prev=s?s._prev:r)?o._prev._next=o:n=o,(o._next=s)?s._prev=o:r=o,o=a}o=e._firstPT=n}for(;o;)o.pg&&"function"==typeof o.t[t]&&o.t[t]()&&(i=!0),o=o._next;return i},W.activate=function(t){for(var e=t.length;-1<--e;)t[e].API===W.API&&(E[(new t[e])._propName]=t[e]);return!0},s.plugin=function(t){if(!(t&&t.propName&&t.init&&t.API))throw"illegal plugin definition.";var e,i=t.propName,s=t.priority||0,n=t.overwriteProps,r={init:"_onInitTween",set:"setRatio",kill:"_kill",round:"_roundProps",initAll:"_onInitAllProps"},a=y("plugins."+i.charAt(0).toUpperCase()+i.substr(1)+"Plugin",function(){W.call(this,i,s),this._overwriteProps=n||[]},!0===t.global),o=a.prototype=new W(i);for(e in(o.constructor=a).API=t.API,r)"function"==typeof t[e]&&(o[r[e]]=t[e]);return a.version=t.version,W.activate([a]),a},a=p._gsQueue){for(l=0;a.length>l;l++)a[l]();for(t in v)v[t].func||p.console.log("GSAP encountered missing dependency: com.greensock."+t)}_=!1}}(window)},{}],11:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("easing.Back",["easing.Ease"],function(m){function t(t,e){var i=c("easing."+t,function(){},!0);return(t=i.prototype=new m).constructor=i,t.getRatio=e,i}function e(t,e,i,s){return s=c("easing."+t,{easeOut:new e,easeIn:new i,easeInOut:new s},!0),h(s,t),s}function g(t,e,i){this.t=t,this.v=e,i&&(((this.next=i).prev=this).c=i.v-e,this.gap=i.t-t)}function i(t,e){var i=c("easing."+t,function(t){this._p1=t||0===t?t:1.70158,this._p2=1.525*this._p1},!0);return(t=i.prototype=new m).constructor=i,t.getRatio=e,t.config=function(t){return new i(t)},i}var s,n,r=window.GreenSockGlobals||window,a=r.com.greensock,o=2*Math.PI,l=Math.PI/2,c=a._class,h=m.register||function(){},u=e("Back",i("BackOut",function(t){return--t*t*((this._p1+1)*t+this._p1)+1}),i("BackIn",function(t){return t*t*((this._p1+1)*t-this._p1)}),i("BackInOut",function(t){return(t*=2)<1?.5*t*t*((this._p2+1)*t-this._p2):.5*((t-=2)*t*((this._p2+1)*t+this._p2)+2)})),p=c("easing.SlowMo",function(t,e,i){e=e||0===e?e:.7,null==t?t=.7:1t?this._calcEnd?1-(t=1-t/this._p1)*t:e-(t=1-t/this._p1)*t*t*t*e:t>this._p3?this._calcEnd?1-(t=(t-this._p3)/this._p1)*t:e+(t-e)*(t=(t-this._p3)/this._p1)*t*t*t:this._calcEnd?1:e},p.ease=new p(.7,.7),a.config=p.config=function(t,e,i){return new p(t,e,i)},(a=(s=c("easing.SteppedEase",function(t){this._p1=1/(t=t||1),this._p2=t+1},!0)).prototype=new m).constructor=s,a.getRatio=function(t){return t<0?t=0:1<=t&&(t=.999999999),(this._p2*t>>0)*this._p1},a.config=s.config=function(t){return new s(t)},(a=(n=c("easing.RoughEase",function(t){for(var e,i,s,n,r,a,o=(t=t||{}).taper||"none",l=[],c=0,h=0|(t.points||20),u=h,p=!1!==t.randomize,d=!0===t.clamp,_=t.template instanceof m?t.template:null,f="number"==typeof t.strength?.4*t.strength:.4;-1<--u;)e=p?Math.random():1/h*u,i=_?_.getRatio(e):e,s="none"===o?f:"out"===o?(n=1-e)*n*f:"in"===o?e*e*f:.5*(n=e<.5?2*e:2*(1-e))*n*f,p?i+=Math.random()*s-.5*s:u%2?i+=.5*s:i-=.5*s,d&&(1e.t){for(;e.next&&t>=e.t;)e=e.next;e=e.prev}else for(;e.prev&&e.t>=t;)e=e.prev;return(this._prev=e).v+(t-e.t)/e.gap*e.c},a.config=function(t){return new n(t)},n.ease=new n,e("Bounce",t("BounceOut",function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}),t("BounceIn",function(t){return 1/2.75>(t=1-t)?1-7.5625*t*t:t<2/2.75?1-(7.5625*(t-=1.5/2.75)*t+.75):t<2.5/2.75?1-(7.5625*(t-=2.25/2.75)*t+.9375):1-(7.5625*(t-=2.625/2.75)*t+.984375)}),t("BounceInOut",function(t){var e=t<.5;return t=(t=e?1-2*t:2*t-1)<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375,e?.5*(1-t):.5*t+.5})),e("Circ",t("CircOut",function(t){return Math.sqrt(1- --t*t)}),t("CircIn",function(t){return-(Math.sqrt(1-t*t)-1)}),t("CircInOut",function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)})),e("Elastic",(a=function(t,e,i){var s=c("easing."+t,function(t,e){this._p1=t||1,this._p2=e||i,this._p3=this._p2/o*(Math.asin(1/this._p1)||0)},!0),t=s.prototype=new m;return t.constructor=s,t.getRatio=e,t.config=function(t,e){return new s(t,e)},s})("ElasticOut",function(t){return this._p1*Math.pow(2,-10*t)*Math.sin((t-this._p3)*o/this._p2)+1},.3),a("ElasticIn",function(t){return-(this._p1*Math.pow(2,10*--t)*Math.sin((t-this._p3)*o/this._p2))},.3),a("ElasticInOut",function(t){return(t*=2)<1?-.5*this._p1*Math.pow(2,10*--t)*Math.sin((t-this._p3)*o/this._p2):.5*this._p1*Math.pow(2,-10*--t)*Math.sin((t-this._p3)*o/this._p2)+1},.45)),e("Expo",t("ExpoOut",function(t){return 1-Math.pow(2,-10*t)}),t("ExpoIn",function(t){return Math.pow(2,10*(t-1))-.001}),t("ExpoInOut",function(t){return(t*=2)<1?.5*Math.pow(2,10*(t-1)):.5*(2-Math.pow(2,-10*(t-1)))})),e("Sine",t("SineOut",function(t){return Math.sin(t*l)}),t("SineIn",function(t){return 1-Math.cos(t*l)}),t("SineInOut",function(t){return-.5*(Math.cos(Math.PI*t)-1)})),c("easing.EaseLookup",{find:function(t){return m.map[t]}},!0),h(r.SlowMo,"SlowMo","ease,"),h(n,"RoughEase","ease,"),h(s,"SteppedEase","ease,"),u},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],12:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){window._gsDefine("plugins.CSSPlugin",["plugins.TweenPlugin","TweenLite"],function(r,p){function N(){r.call(this,"css"),this._overwriteProps.length=0,this.setRatio=N.prototype.setRatio}var d,x,b,u,_={},t=N.prototype=new r("css");(t.constructor=N).version="1.12.1",N.API=2,N.defaultTransformPerspective=0,N.defaultSkewType="compensated",N.suffixMap={top:t="px",right:t,bottom:t,left:t,width:t,height:t,fontSize:t,padding:t,margin:t,perspective:t,lineHeight:""};function n(t,e){return e.toUpperCase()}function a(t){return j.test("string"==typeof t?t:(t.currentStyle||t.style).filter||"")?parseFloat(RegExp.$1)/100:1}function f(t){window.console&&console.log(t)}function T(t,e){var i,s,n=(e=e||Z).style;if(void 0!==n[t])return t;for(t=t.charAt(0).toUpperCase()+t.substr(1),i=["O","Moz","ms","Ms","Webkit"],s=5;-1<--s&&void 0===n[i[s]+t];);return 0<=s?(tt="-"+(et=3===s?"ms":i[s]).toLowerCase()+"-",et+t):null}function m(t,e){var i,s={};if(e=e||it(t,null))if(i=e.length)for(;-1<--i;)s[e[i].replace(Y,n)]=e.getPropertyValue(e[i]);else for(i in e)s[i]=e[i];else if(e=t.currentStyle||t.style)for(i in e)"string"==typeof i&&void 0===s[i]&&(s[i.replace(Y,n)]=e[i]);return J||(s.opacity=a(t)),t=Pt(t,e,!1),s.rotation=t.rotation,s.skewX=t.skewX,s.scaleX=t.scaleX,s.scaleY=t.scaleY,s.x=t.x,s.y=t.y,Tt&&(s.z=t.z,s.rotationX=t.rotationX,s.rotationY=t.rotationY,s.scaleZ=t.scaleZ),s.filters&&delete s.filters,s}function g(t,e,i,s,n){var r,a,o,l={},c=t.style;for(a in i)"cssText"!==a&&"length"!==a&&isNaN(a)&&(e[a]!==(r=i[a])||n&&n[a])&&-1===a.indexOf("Origin")&&("number"==typeof r||"string"==typeof r)&&(l[a]="auto"!==r||"left"!==a&&"top"!==a?""!==r&&"auto"!==r&&"none"!==r||"string"!=typeof e[a]||""===e[a].replace(D,"")?r:0:rt(t,a),void 0!==c[a]&&(o=new pt(c,a,c[a],o)));if(s)for(a in s)"className"!==a&&(l[a]=s[a]);return{difs:l,firstMPT:o}}function v(t,e){var i=(t=null==t||""===t||"auto"===t||"auto auto"===t?"0 0":t).split(" "),s=-1!==t.indexOf("left")?"0%":-1!==t.indexOf("right")?"100%":i[0];return null==(t=-1!==t.indexOf("top")?"0%":-1!==t.indexOf("bottom")?"100%":i[1])?t="0":"center"===t&&(t="50%"),("center"===s||isNaN(parseFloat(s))&&-1===(s+"").indexOf("="))&&(s="50%"),e&&(e.oxp=-1!==s.indexOf("%"),e.oyp=-1!==t.indexOf("%"),e.oxr="="===s.charAt(1),e.oyr="="===t.charAt(1),e.ox=parseFloat(s.replace(D,"")),e.oy=parseFloat(t.replace(D,""))),s+" "+t+(2>16,255&t>>8,255&t]:(","===t.charAt(t.length-1)&&(t=t.substr(0,t.length-1)),lt[t]||("#"===t.charAt(0)?(4===t.length&&(t="#"+(e=t.charAt(1))+e+(i=t.charAt(2))+i+(r=t.charAt(3))+r),[(t=parseInt(t.substr(1),16))>>16,255&t>>8,255&t]):("hsl"===t.substr(0,3)?(t=t.match(A),s=Number(t[0])%360/360,n=Number(t[1])/100,e=2*(r=Number(t[2])/100)-(i=r<=.5?r*(1+n):r+n-r*n),3a",!!(i=i.getElementsByTagName("a")[0])&&/^0.55/.test(i.style.opacity)),tt="",et="",it=Q.defaultView?Q.defaultView.getComputedStyle:function(){},st=N.getStyle=function(t,e,i,s,n){var r;return J||"opacity"!==e?(!s&&t.style[e]?r=t.style[e]:(i=i||it(t))?r=i[e]||i.getPropertyValue(e)||i.getPropertyValue(e.replace(z,"-$1").toLowerCase()):t.currentStyle&&(r=t.currentStyle[e]),null==n||r&&"none"!==r&&"auto"!==r&&"auto auto"!==r?r:n):a(t)},nt=s.convertToPixels=function(t,e,i,s,n){if("px"===s||!s)return i;if("auto"===s||!i)return 0;var r,a,o,l=$.test(e),c=t,h=Z.style,u=i<0;if(u&&(i=-i),"%"===s&&-1!==e.indexOf("border"))r=i/100*(l?t.clientWidth:t.clientHeight);else{if(h.cssText="border:0 solid red;position:"+st(t,"position")+";line-height:0;","%"!==s&&c.appendChild)h[l?"borderLeftWidth":"borderTopWidth"]=i+s;else{if(a=(c=t.parentNode||Q.body)._gsCache,o=p.ticker.frame,a&&l&&a.time===o)return a.width*i/100;h[l?"width":"height"]=i+s}c.appendChild(Z),r=parseFloat(Z[l?"offsetWidth":"offsetHeight"]),c.removeChild(Z),l&&"%"===s&&!1!==N.cacheWidths&&((a=c._gsCache=c._gsCache||{}).time=o,a.width=r/i*100),0!==r||n||(r=nt(t,e,i,s,!0))}return u?-r:r},rt=s.calculateOffset=function(t,e,i){if("absolute"!==st(t,"position",i))return 0;var s="left"===e?"Left":"Top",i=st(t,"margin"+s,i);return t["offset"+s]-(nt(t,e,parseFloat(i),i.replace(L,""))||0)},at={width:["Left","Right"],height:["Top","Bottom"]},ot=["marginLeft","marginRight","marginTop","marginBottom"],lt={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},ct="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#.+?\\b";for(t in lt)ct+="|"+t+"\\b";function ht(t,e,r,a){if(null==t)return function(t){return t};var o,l=e?(t.match(ct)||[""])[0]:"",c=t.split(l).join("").match(I)||[],h=t.substr(0,t.indexOf(c[0])),u=")"===t.charAt(t.length-1)?")":"",p=-1!==t.indexOf(" ")?" ":",",d=c.length,_=0s;s++)n[s]=o(n[s]);return n.join(",")}if(e=(t.match(ct)||[l])[0],s=(i=t.split(e).join("").match(I)||[]).length,d>s--)for(;d>++s;)i[s]=r?i[0|(s-1)/2]:c[s];return h+i.join(p)+p+e+u+(-1!==t.indexOf("inset")?" inset":"")}:function(t){var e,i,s;if("number"==typeof t)t+=_;else if(a&&H.test(t)){for(i=t.replace(H,"|").split("|"),s=0;i.length>s;s++)i[s]=o(i[s]);return i.join(",")}if(s=(e=t.match(I)||[]).length,d>s--)for(;d>++s;)e[s]=r?e[0|(s-1)/2]:c[s];return h+e.join(p)+u}:function(t){return t}}function ut(c){return c=c.split(","),function(t,e,i,s,n,r,a){var o,l=(e+"").split(" ");for(a={},o=0;o<4;o++)a[c[o]]=l[o]=l[o]||l[(o-1)/2>>0];return s.parse(t,a,n,r)}}var ct=RegExp(ct+")","gi"),pt=(s._setPluginRatio=function(t){this.plugin.setRatio(t);for(var e,i,s,n,r=this.data,a=r.proxy,o=r.firstMPT;o;)e=a[o.v],o.r?e=Math.round(e):e<1e-6&&-1e-6s;s++)n+=i["xn"+s]+i["xs"+(s+1)];i.e=n}}else i.e=i.s+i.xs0;o=o._next}},function(t,e,i,s,n){this.t=t,this.p=e,this.v=i,this.r=n,s&&((s._prev=this)._next=s)}),dt=(s._parseToProxy=function(t,e,i,s,n,r){var a,o,l,c,h=s,u={},p={},d=i._transform,_=W;for(i._transform=null,W=e,s=n=i.parse(t,e,s,n),W=_,r&&(i._transform=d,h&&(h._prev=null,h._prev&&(h._prev._next=null)));s&&s!==h;){if(s.type<=1&&(p[o=s.p]=s.s+s.c,u[o]=s.s,r||(c=new pt(s,"s",o,c,s.r),s.c=0),1===s.type))for(a=s.l;0<--a;)p[o=s.p+"_"+(l="xn"+a)]=s.data[l],u[o]=s[l],r||(c=new pt(s,l,o,c,s.rxp[l]));s=s._next}return{proxy:u,end:p,firstMPT:c,pt:n}},s.CSSPropTween=function(t,e,i,s,n,r,a,o,l,c,h){this.t=t,this.p=e,this.s=i,this.c=s,this.n=a||e,t instanceof dt||u.push(this.n),this.r=o,this.type=r||0,l&&(this.pr=l,d=!0),this.b=void 0===c?i:c,this.e=void 0===h?i+s:h,n&&((this._next=n)._prev=this)}),_t=N.parseComplex=function(t,e,i,s,n,r,a,o,l,c){a=new dt(t,e,0,0,a,c?2:1,null,!1,o,i=i||r||"",s),s+="";var h,u,p,d,_,f,m,g,v,w,y,x=i.split(", ").join(",").split(" "),b=s.split(", ").join(",").split(" "),T=x.length,k=!1!==O;for(-1===s.indexOf(",")&&-1===i.indexOf(",")||(x=x.join(" ").replace(H,", ").split(" "),b=b.join(" ").replace(H,", ").split(" "),T=x.length),T!==b.length&&(T=(x=(r||"").split(" ")).length),a.plugin=l,a.setRatio=c,h=0;hu;u++)w=f[u],v=d.indexOf(w,p),a.appendXtra(d.substr(p,v-p),Number(w),P(m[u],w),"",k&&"px"===d.substr(v+w.length,2),0===u),p=v+w.length;a["xs"+a.l]+=d.substr(p)}else a["xs"+a.l]+=a.l?" "+d:d;if(-1!==s.indexOf("=")&&a.data){for(y=a.xs0+a.data.s,h=1;a.l>h;h++)y+=a["xs"+h]+a.data["xn"+h];a.e=y+a["xs"+h]}return a.l||(a.type=-1,a.xs0=a.e),a.xfirst||a},ft=9;for((t=dt.prototype).l=t.pr=0;0<--ft;)t["xn"+ft]=0,t["xs"+ft]="";t.xs0="",t._next=t._prev=t.xfirst=t.data=t.plugin=t.setRatio=t.rxp=null,t.appendXtra=function(t,e,i,s,n,r){var a=this,o=a.l;return a["xs"+o]+=r&&o?" "+t:t||"",i||0===o||a.plugin?(a.l++,a.type=a.setRatio?2:1,a["xs"+a.l]=s||"",0s;s++)e.prefix=0===s&&e.prefix,e.defaultValue=i[s]||r,new mt(n[s],e)};(t=mt.prototype).parseComplex=function(t,e,i,s,n,r){var a,o,l,c,h,u=this.keyword;if(this.multi&&(H.test(i)||H.test(e)?(o=e.replace(H,"|").split("|"),l=i.replace(H,"|").split("|")):u&&(o=[e],l=[i])),l){for(c=(l.length>o.length?l:o).length,a=0;aI[r]&&I[r]>-L&&(I[r]=0);return i&&(t._gsTransform=I),I},St=s.set3DTransformRatio=function(t){var e,i,s,n,r,a,o,l,c,h,u,p,d,_,f,m,g,v,w,y,x,b,T=this.data,k=this.t.style,P=T.rotation*U,S=T.scaleX,O=T.scaleY,C=T.scaleZ,A=T.perspective;if(1!==t&&0!==t||"auto"!==T.force3D||T.rotationY||T.rotationX||1!==C||A||T.z){if(M&&(S<1e-4&&-1e-4y;y++)this.p.indexOf("border")&&(f[y]=T(f[y])),-1!==(o=a=st(t,f[y],b,!1,"0px")).indexOf(" ")&&(o=(a=o.split(" "))[0],a=a[1]),l=r=w[y],d=parseFloat(o),_=o.substr((d+"").length),(h=""===(h=(u="="===l.charAt(1))?(c=parseInt(l.charAt(0)+"1",10),l=l.substr(2),c*=parseFloat(l),l.substr((c+"").length-(c<0?1:0))||""):(c=parseFloat(l),l.substr((c+"").length)))?x[i]||_:h)!==_&&(p=nt(t,"borderLeft",d,_),d=nt(t,"borderTop",d,_),a="%"===h?(o=p/g*100+"%",d/v*100+"%"):"em"===h?(o=p/(_=nt(t,"borderLeft",1,"em"))+"em",d/_+"em"):(o=p+"px",d+"px"),u&&(l=parseFloat(o)+c+h,r=parseFloat(a)+c+h)),n=_t(m,f[y],o+" "+a,l+" "+r,!1,"0px",n);return n},prefix:!0,formatter:ht("0px 0px 0px 0px",!1,!0)}),gt("backgroundPosition",{defaultValue:"0 0",parser:function(t,e,i,s,n,r){var a,o,l,c,h,u,p="background-position",d=b||it(t,null),_=this.format((d?C?d.getPropertyValue(p+"-x")+" "+d.getPropertyValue(p+"-y"):d.getPropertyValue(p):t.currentStyle.backgroundPositionX+" "+t.currentStyle.backgroundPositionY)||"0 0"),e=this.format(e);if(-1!==_.indexOf("%")!=(-1!==e.indexOf("%"))&&((u=st(t,"backgroundImage").replace(F,""))&&"none"!==u)){for(a=_.split(" "),o=e.split(" "),G.setAttribute("src",u),l=2;-1<--l;)(c=-1!==(_=a[l]).indexOf("%"))!=(-1!==o[l].indexOf("%"))&&(h=0===l?t.offsetWidth-G.width:t.offsetHeight-G.height,a[l]=c?parseFloat(_)/100*h+"px":parseFloat(_)/h*100+"%");_=a.join(" ")}return this.parseComplex(t.style,_,e,n,r)},formatter:v}),gt("backgroundSize",{defaultValue:"0 0",formatter:v}),gt("perspective",{defaultValue:"0px",prefix:!0}),gt("perspectiveOrigin",{defaultValue:"50% 50%",prefix:!0}),gt("transformStyle",{prefix:!0}),gt("backfaceVisibility",{prefix:!0}),gt("userSelect",{prefix:!0}),gt("margin",{parser:ut("marginTop,marginRight,marginBottom,marginLeft")}),gt("padding",{parser:ut("paddingTop,paddingRight,paddingBottom,paddingLeft")}),gt("clip",{defaultValue:"rect(0px,0px,0px,0px)",parser:function(t,e,i,s,n,r){var a,o;return e=C<9?(a=t.currentStyle,o=C<8?" ":",",a="rect("+a.clipTop+o+a.clipRight+o+a.clipBottom+o+a.clipLeft+")",this.format(e).split(",").join(o)):(a=this.format(st(t,this.p,b,!1,this.dflt)),this.format(e)),this.parseComplex(t.style,a,e,n,r)}}),gt("textShadow",{defaultValue:"0px 0px 0px #999",color:!0,multi:!0}),gt("autoRound,strictUnits",{parser:function(t,e,i,s,n){return n}}),gt("border",{defaultValue:"0px solid #000",parser:function(t,e,i,s,n,r){return this.parseComplex(t.style,this.format(st(t,"borderTopWidth",b,!1,"0px")+" "+st(t,"borderTopStyle",b,!1,"solid")+" "+st(t,"borderTopColor",b,!1,"#000")),this.format(e),n,r)},color:!0,formatter:function(t){var e=t.split(" ");return e[0]+" "+(e[1]||"solid")+" "+(t.match(ct)||["#000"])[0]}}),gt("borderWidth",{parser:ut("borderTopWidth,borderRightWidth,borderBottomWidth,borderLeftWidth")}),gt("float,cssFloat,styleFloat",{parser:function(t,e,i,s,n){var r=t.style,t="cssFloat"in r?"cssFloat":"styleFloat";return new dt(r,t,0,0,n,-1,i,!1,0,r[t],e)}});function Ct(t){var e,i=this.t,s=i.filter||st(this.data,"filter"),t=0|this.s+this.c*t;(e=100==t?-1===s.indexOf("atrix(")&&-1===s.indexOf("radient(")&&-1===s.indexOf("oader(")?(i.removeAttribute("filter"),!st(this.data,"filter")):(i.filter=s.replace(l,""),!0):e)||(this.xn1&&(i.filter=s=s||"alpha(opacity="+t+")"),-1===s.indexOf("pacity")?0==t&&this.xn1||(i.filter=s+" alpha(opacity="+t+")"):i.filter=s.replace(j,"opacity="+t))}gt("opacity,alpha,autoAlpha",{defaultValue:"1",parser:function(t,e,i,s,n,r){var a=parseFloat(st(t,"opacity",b,!1,"1")),o=t.style,l="autoAlpha"===i;return"string"==typeof e&&"="===e.charAt(1)&&(e=("-"===e.charAt(0)?-1:1)*parseFloat(e.substr(2))+a),l&&1===a&&"hidden"===st(t,"visibility",b)&&0!==e&&(a=0),J?n=new dt(o,"opacity",a,e-a,n):((n=new dt(o,"opacity",100*a,100*(e-a),n)).xn1=l?1:0,o.zoom=1,n.type=2,n.b="alpha(opacity="+n.s+")",n.e="alpha(opacity="+(n.s+n.c)+")",n.data=t,n.plugin=r,n.setRatio=Ct),l&&((n=new dt(o,"visibility",0,0,n,-1,null,!1,0,0!==a?"inherit":"hidden",0===e?"hidden":"inherit")).xs0="inherit",s._overwriteProps.push(n.n),s._overwriteProps.push(i)),n}});function At(t,e){e&&(t.removeProperty?("ms"===e.substr(0,2)&&(e="M"+e.substr(1)),t.removeProperty(e.replace(z,"-$1").toLowerCase())):t.removeAttribute(e))}function Mt(t){if(this.t._gsClassPT=this,1===t||0===t){this.t.setAttribute("class",0===t?this.b:this.e);for(var e=this.data,i=this.t.style;e;)e.v?i[e.p]=e.v:At(i,e.p),e=e._next;1===t&&this.t._gsClassPT===this&&(this.t._gsClassPT=null)}else this.t.getAttribute("class")!==this.e&&this.t.setAttribute("class",this.e)}gt("className",{parser:function(t,e,i,s,n,r,a){var o,l,c,h=t.getAttribute("class")||"",u=t.style.cssText;if((n=s._classNamePT=new dt(t,i,0,0,n,2)).setRatio=Mt,n.pr=-11,d=!0,n.b=h,o=m(t,b),i=t._gsClassPT){for(l={},c=i.data;c;)l[c.p]=1,c=c._next;i.setRatio(1)}return(t._gsClassPT=n).e="="!==e.charAt(1)?e:h.replace(RegExp("\\s*\\b"+e.substr(2)+"\\b"),"")+("+"===e.charAt(0)?" "+e.substr(2):""),s._tween._duration&&(t.setAttribute("class",n.e),a=g(t,o,m(t),a,l),t.setAttribute("class",h),n.data=a.firstMPT,t.style.cssText=u,n=n.xfirst=s.parse(t,a.difs,n,r)),n}});function Rt(t){if((1===t||0===t)&&this.data._totalTime===this.data._totalDuration&&"isFromStart"!==this.data.data){var e,i,s,n,r=this.t.style,a=_.transform.parse;if("all"===this.e)n=!(r.cssText="");else for(s=(e=this.e.split(",")).length;-1<--s;)i=e[s],_[i]&&(_[i].parse===a?n=!0:i="transformOrigin"===i?bt:_[i].p),At(r,i);n&&(At(r,yt),this.t._gsTransform&&delete this.t._gsTransform)}}for(gt("clearProps",{parser:function(t,e,i,s,n){return(n=new dt(t,i,0,0,n,2)).setRatio=Rt,n.e=e,n.pr=-10,n.data=s._tween,d=!0,n}}),t="bezier,throwProps,physicsProps,physics2D".split(","),ft=t.length;ft--;)!function(t){var l;_[t]||(l=t.charAt(0).toUpperCase()+t.substr(1)+"Plugin",gt(t,{parser:function(t,e,i,s,n,r,a){var o=(window.GreenSockGlobals||window).com.greensock.plugins[l];return o?(o._cssRegister(),_[i].parse(t,e,i,s,n,r,a)):(f("Error: "+l+" js file not loaded."),n)}}))}(t[ft]);(t=N.prototype)._firstPT=null,t._onInitTween=function(t,e,i){if(!t.nodeType)return!1;this._target=t,this._tween=i,this._vars=e,O=e.autoRound,d=!1,x=e.suffixMap||N.suffixMap,b=it(t,""),u=this._overwriteProps;var s,n,r,a,o,l,i=t.style;if(c&&""===i.zIndex&&("auto"!==(l=st(t,"zIndex",b))&&""!==l||this._addLazySet(i,"zIndex",0)),"string"==typeof e&&(r=i.cssText,l=m(t,b),i.cssText=r+";"+e,l=g(t,l,m(t)).difs,!J&&X.test(e)&&(l.opacity=parseFloat(RegExp.$1)),e=l,i.cssText=r),this._firstPT=s=this.parse(t,e,null),this._transformType){for(l=3===this._transformType,yt?h&&(c=!0,""===i.zIndex&&("auto"!==(e=st(t,"zIndex",b))&&""!==e||this._addLazySet(i,"zIndex",0)),k&&this._addLazySet(i,"WebkitBackfaceVisibility",this._vars.WebkitBackfaceVisibility||(l?"visible":"hidden"))):i.zoom=1,n=s;n&&n._next;)n=n._next;i=new dt(t,"transform",0,0,null,2),this._linkCSSP(i,null,n),i.setRatio=l&&Tt?St:yt?Ot:vt,i.data=this._transform||Pt(t,b,!0),u.pop()}if(d){for(;s;){for(o=s._next,n=r;n&&n.pr>s.pr;)n=n._next;(s._prev=n?n._prev:a)?s._prev._next=s:r=s,(s._next=n)?n._prev=s:a=s,s=o}this._firstPT=r}return!0},t.parse=function(t,e,i,s){var n,r,a,o,l,c,h,u,p=t.style;for(n in e)l=e[n],u=_[n],u?i=u.parse(t,l,n,this,i,s,e):(o=st(t,n,b)+"",h="string"==typeof l,"color"===n||"fill"===n||"stroke"===n||-1!==n.indexOf("Color")||h&&E.test(l)?(h||(l=S(l),l=(3s;s++)i+=n["xn"+s]+n["xs"+(s+1)];n.t[n.p]=i}else-1===n.type?n.t[n.p]=n.xs0:n.setRatio&&n.setRatio(t);else n.t[n.p]=e+n.xs0;n=n._next}else for(;n;)2!==n.type?n.t[n.p]=n.b:n.setRatio(t),n=n._next;else for(;n;)2!==n.type?n.t[n.p]=n.e:n.setRatio(t),n=n._next},t._enableTransforms=function(t){this._transformType=t||3===this._transformType?3:2,this._transform=this._transform||Pt(this._target,b,!0)};function It(){this.t[this.p]=this.e,this.data._linkCSSP(this,this._next,null,!0)}t._addLazySet=function(t,e,i){e=this._firstPT=new dt(t,e,0,0,this._firstPT,2);e.e=i,e.setRatio=It,e.data=this},t._linkCSSP=function(t,e,i,s){return t&&(e&&(e._prev=t),t._next&&(t._next._prev=t._prev),t._prev?t._prev._next=t._next:this._firstPT===t&&(this._firstPT=t._next,s=!0),i?i._next=t:s||null!==this._firstPT||(this._firstPT=t),t._next=e,t._prev=i),t},t._kill=function(t){var e,i,s,n=t;if(t.autoAlpha||t.alpha){for(i in n={},t)n[i]=t[i];n.opacity=1,n.autoAlpha&&(n.visibility=1)}return t.className&&(e=this._classNamePT)&&((s=e.xfirst)&&s._prev?this._linkCSSP(s._prev,e._next,s._prev._prev):s===this._firstPT&&(this._firstPT=e._next),e._next&&this._linkCSSP(e._next,e._next._next,s._prev),this._classNamePT=null),r.prototype._kill.call(this,n)};function Dt(t,e,i){var s,n,r,a;if(t.slice)for(n=t.length;-1<--n;)Dt(t[n],e,i);else for(n=(s=t.childNodes).length;-1<--n;)a=(r=s[n]).type,r.style&&(e.push(m(r)),i&&i.push(r)),1!==a&&9!==a&&11!==a||!r.childNodes.length||Dt(r,e,i)}return N.cascadeTo=function(t,e,i){var s,n,r,a=p.to(t,e,i),o=[a],l=[],c=[],h=[],u=p._internals.reservedProps;for(t=a._targets||a.target,Dt(t,l,h),a.render(e,!0),Dt(t,c),a.render(0,!0),a._enabled(!0),s=h.length;-1<--s;)if((n=g(h[s],l[s],c[s])).firstMPT){for(r in n=n.difs,i)u[r]&&(n[r]=i[r]);o.push(p.to(h[s],e,n))}return o},r.activate([N]),N},!0)}),window._gsDefine&&window._gsQueue.pop()()},{}],13:[function(t,e,i){"use strict";(window._gsQueue||(window._gsQueue=[])).push(function(){function n(t,e){var i="x"===e?"Width":"Height",s="scroll"+i,n="client"+i,e=document.body;return t===a||t===r||t===e?Math.max(r[s],e[s])-(a["inner"+i]||Math.max(r[n],e[n])):t[s]-t["offset"+i]}var r=document.documentElement,a=window,t=window._gsDefine.plugin({propName:"scrollTo",API:2,version:"1.7.3",init:function(t,e,i){return this._wdw=t===a,this._target=t,this._tween=i,this._autoKill=!1!==(e="object"!=typeof e?{y:e}:e).autoKill,this.x=this.xPrev=this.getX(),this.y=this.yPrev=this.getY(),null!=e.x?(this._addTween(this,"x",this.x,"max"===e.x?n(t,"x"):e.x,"scrollTo_x",!0),this._overwriteProps.push("scrollTo_x")):this.skipX=!0,null!=e.y?(this._addTween(this,"y",this.y,"max"===e.y?n(t,"y"):e.y,"scrollTo_y",!0),this._overwriteProps.push("scrollTo_y")):this.skipY=!0,!0},set:function(t){this._super.setRatio.call(this,t);var e=this._wdw||!this.skipX?this.getX():this.xPrev,i=this._wdw||!this.skipY?this.getY():this.yPrev,s=i-this.yPrev,t=e-this.xPrev;this._autoKill&&(!this.skipX&&(7e&&(this.skipX=!0),!this.skipY&&(7i&&(this.skipY=!0),this.skipX&&this.skipY&&this._tween.kill()),this._wdw?a.scrollTo(this.skipX?e:this.x,this.skipY?i:this.y):(this.skipY||(this._target.scrollTop=this.y),this.skipX||(this._target.scrollLeft=this.x)),this.xPrev=this.x,this.yPrev=this.y}}),e=t.prototype;t.max=n,e.getX=function(){return this._wdw?null!=a.pageXOffset?a.pageXOffset:(null!=r.scrollLeft?r:document.body).scrollLeft:this._target.scrollLeft},e.getY=function(){return this._wdw?null!=a.pageYOffset?a.pageYOffset:(null!=r.scrollTop?r:document.body).scrollTop:this._target.scrollTop},e._kill=function(t){return t.scrollTo_x&&(this.skipX=!0),t.scrollTo_y&&(this.skipY=!0),this._super._kill.call(this,t)}}),window._gsDefine&&window._gsQueue.pop()()},{}]},{},[2]); +//# sourceMappingURL=wpr-admin.js.map diff --git a/composer.json b/composer.json index dc03ffe64e..e746585351 100644 --- a/composer.json +++ b/composer.json @@ -40,9 +40,9 @@ } ], "require": { - "php": ">=7.0", + "php": ">=7.2", "composer/installers": "^1.0 || ^2.0", - "monolog/monolog": "^1.0" + "monolog/monolog": "^1.0 || ^2.0" }, "require-dev": { "php": "^7 || ^8", @@ -68,6 +68,7 @@ "wp-media/wp-imagify-partner": "^1.0", "wpackagist-plugin/amp": "^1.1.4", "wpackagist-plugin/hummingbird-performance": "2.0.1", + "wpackagist-plugin/jetpack": "9.3.2", "wpackagist-plugin/pdf-embedder": "^4.6", "wpackagist-plugin/simple-custom-css": "^4.0.3", "wpackagist-plugin/spinupwp": "^1.1", @@ -116,7 +117,7 @@ }, "scripts": { "test-unit": "\"vendor/bin/phpunit\" --testsuite unit --colors=always --configuration tests/Unit/phpunit.xml.dist", - "test-integration": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --exclude-group AdminOnly,BeaverBuilder,Elementor,Hummingbird,WithSmush,WithWoo,WithAmp,WithAmpAndCloudflare,WithSCCSS,Cloudways,Dreampress,DoCloudflare,Multisite,WPEngine,SpinUpWP,WordPressCom,O2Switch,PDFEmbedder,PDFEmbedderPremium,PDFEmbedderSecure,Godaddy,LiteSpeed,RevolutionSlider,WordFence,ConvertPlug,Kinsta", + "test-integration": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --exclude-group AdminOnly,BeaverBuilder,Elementor,Hummingbird,WithSmush,WithWoo,WithAmp,WithAmpAndCloudflare,WithSCCSS,Cloudways,Dreampress,DoCloudflare,Multisite,WPEngine,SpinUpWP,WordPressCom,O2Switch,PDFEmbedder,PDFEmbedderPremium,PDFEmbedderSecure,Godaddy,LiteSpeed,RevolutionSlider,WordFence,ConvertPlug,Kinsta,Jetpack,RankMathSEO,AllInOneSeoPack,SEOPress,TheSEOFramework", "test-integration-adminonly": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group AdminOnly", "test-integration-bb": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group BeaverBuilder", "test-integration-cloudflare": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group DoCloudflare", @@ -143,6 +144,11 @@ "test-integration-wordfence": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group WordFence", "test-integration-kinsta": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group Kinsta", "test-integration-convertplug": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group ConvertPlug", + "test-integration-jetpack": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group Jetpack", + "test-integration-rank-math-seo": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group RankMathSEO", + "test-integration-all-in-seo-pack": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group AllInOneSeoPack", + "test-integration-seopress": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group SEOPress", + "test-integration-the-seo-framework": "\"vendor/bin/phpunit\" --testsuite integration --colors=always --configuration tests/Integration/phpunit.xml.dist --group TheSEOFramework", "run-tests": [ "@test-unit", "@test-integration", @@ -168,10 +174,14 @@ "@test-integration-dreampress", "@test-integration-godaddy", "@test-integration-revolutionslider", - "@test-integration-litespeed", - "@test-integration-wordfence", - "@test-integration-kinsta", - "@test-integration-convertplug" + "@test-integration-litespeed", + "@test-integration-wordfence", + "@test-integration-kinsta", + "@test-integration-convertplug", + "@test-integration-jetpack", + "@test-integration-rank-math-seo", + "@test-integration-all-in-seo-pack", + "@test-integration-seopress" ], "run-stan": "vendor/bin/phpstan analyze --memory-limit=2G --no-progress", "install-codestandards": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin::run", diff --git a/dynamic-lists.json b/dynamic-lists.json new file mode 100644 index 0000000000..3a24aaea62 --- /dev/null +++ b/dynamic-lists.json @@ -0,0 +1 @@ +{"inline_atts_exclusions":["rocket-lazyload-inline-css","divi-style-parent-inline-inline-css","gsf-custom-css","extra-style-inline-inline-css","woodmart-inline-css-inline-css","woodmart_shortcodes-custom-css","rs-plugin-settings-inline-css","divi-style-inline-inline-css"],"inline_content_exclusions":[".wp-container-",".wp-elements-","#wpv-expandable-",".custom-content-"]} diff --git a/gulpfile.js b/gulpfile.js index e6e604a5e8..18a5caaf86 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -10,30 +10,98 @@ var sass = require('gulp-sass')(require('sass')); var rename = require("gulp-rename"); var iife = require('gulp-iife'); -/* Task to compile sass admin */ -gulp.task('sass_admin', function () { +// Compile sass admin +const compile_sass_admin = (name, minify = false) => { return gulp.src('./src/scss/main.scss') - .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) - .pipe(rename('wpr-admin.css')) + .pipe(sass({outputStyle: minify ? 'compressed': 'expanded'}).on('error', sass.logError)) + .pipe(rename(name)) .pipe(gulp.dest('assets/css')); - }); +} -/* Task to compile sass admin RTL */ -gulp.task('sass_rtl', function () { - return gulp.src('./src/scss/rtl.scss') - .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) - .pipe(rename('wpr-admin-rtl.css')) +// Compile sass_rtl +const compile_sass_rtl = (name, minify = false) => { + return gulp.src('./src/scss/rtl.scss') + .pipe(sass({outputStyle: minify ? 'compressed': 'expanded'}).on('error', sass.logError)) + .pipe(rename(name)) .pipe(gulp.dest('assets/css')); - }); +} + + +const build_sass_admin_unmin = () => { + return compile_sass_admin('wpr-admin.css'); +} +const build_sass_rtl_unmin = () => { + return compile_sass_rtl('wpr-admin-rtl.css'); +} + +gulp.task('sass_all_unmin', gulp.parallel(build_sass_admin_unmin, build_sass_rtl_unmin)); + +const sassWatchUnmin = () => { + // Init compilation before gulp starts watching... + compile_sass_admin('wpr-admin.css'); + compile_sass_rtl('wpr-admin-rtl.css'); + + // Start watching for changes... + gulp.watch('./src/scss/**/*.scss', gulp.series('sass_all_unmin')); +} + +// Compile without minification. +const compileWithoutMinify = () => { + var bundler = watchify(browserify('./src/js/global/app.js', {debug: true}).transform(babel)); + + // Admin JS + var rebundle = () => { + var isSuccess = true; + bundler.bundle() + .on('error', function (err) { + console.error(err); + isSuccess = false; + this.emit('end'); + }) + .pipe(source('wpr-admin.js')) + .pipe(buffer()) + .pipe(sourcemaps.init({loadMaps: false})) + .pipe(sourcemaps.write('./')) + .pipe(gulp.dest('assets/js')) + .on('end', function() { + if( isSuccess )console.log('Bundled without minification!'); + }) + } + + bundler.on('update', function () { + console.log('-> bundling...'); + rebundle(); + }); + + rebundle(); +} + +// Run `bundle:unminify` to bundle unminified assets. +gulp.task('bundle:unminify', gulp.parallel(compileWithoutMinify, sassWatchUnmin)); -gulp.task('sass_all', gulp.parallel('sass_admin', 'sass_rtl')); + +/* Task to compile sass admin */ +const sass_admin = () => { + return compile_sass_admin('wpr-admin.min.css', true); +} + +const sass_rtl = () => { + return compile_sass_rtl('wpr-admin-rtl.min.css', true); +} + +gulp.task('sass_all', gulp.parallel(sass_admin, sass_rtl)); function sassWatch() { + // Init compilation before gulp starts watching... + compile_sass_admin('wpr-admin.min.css', true); + compile_sass_rtl('wpr-admin-rtl.min.css', true); + gulp.watch('./src/scss/**/*.scss', gulp.series('sass_all')); } /* Task to watch sass changes */ -gulp.task('sass:watch', sassWatch); + gulp.task('sass:watch', sassWatch); + /* Task to compile JS */ function compile(watch) { @@ -53,6 +121,7 @@ function compile(watch) { .pipe(uglify()) .pipe(sourcemaps.init({loadMaps: false})) .pipe(sourcemaps.write('./')) + .pipe( rename( { suffix: '.min' } ) ) .pipe(gulp.dest('assets/js')) .on('end', function() { if( isSuccess )console.log('Yay success!'); @@ -80,7 +149,42 @@ gulp.task('watch', function () { return watch(); }); -gulp.task('default', gulp.parallel('watch', 'sass:watch')); +gulp.task('default', gulp.parallel('watch', 'sass:watch', 'bundle:unminify')); + + + +/** Tasks for deployment */ +const build_sass_admin = () => { + return compile_sass_admin('wpr-admin.min.css', true); + +} +const build_sass_rtl = () => { + return compile_sass_rtl('wpr-admin-rtl.min.css', true); +} + +gulp.task('run:build:sass', gulp.parallel(build_sass_admin, build_sass_rtl)); + +// Bundle script without watching. +const bundleJsWithoutWatch = () => { + var bundle = browserify({ + entries: './src/js/global/app.js', + debug: true + }).transform(babel); + + return bundle.bundle() + .pipe(source('wpr-admin.js')) + .pipe(buffer()) + .pipe(uglify()) + .pipe(sourcemaps.init({loadMaps: false})) + .pipe(sourcemaps.write('./')) + .pipe( rename( { suffix: '.min' } ) ) + .pipe(gulp.dest('assets/js')) +} + +exports.bundleJsWithoutWatch = bundleJsWithoutWatch; + +// Run build without watching: watching keeps git actions stuck on 'build' +gulp.task('run:build', gulp.parallel(bundleJsWithoutWatch, 'run:build:sass')); /** * Compiles a standalone script file. diff --git a/inc/3rd-party/3rd-party.php b/inc/3rd-party/3rd-party.php index 3f61f6faab..706fef9552 100644 --- a/inc/3rd-party/3rd-party.php +++ b/inc/3rd-party/3rd-party.php @@ -51,10 +51,6 @@ require WP_ROCKET_3RD_PARTY_PATH . 'plugins/disqus.php'; require WP_ROCKET_3RD_PARTY_PATH . 'plugins/custom-login.php'; require WP_ROCKET_3RD_PARTY_PATH . 'plugins/mobile/wp-appkit.php'; -require WP_ROCKET_3RD_PARTY_PATH . 'plugins/seo/seopress.php'; -require WP_ROCKET_3RD_PARTY_PATH . 'plugins/seo/rank-math-seo.php'; -require WP_ROCKET_3RD_PARTY_PATH . 'plugins/seo/the-seo-framework.php'; -require WP_ROCKET_3RD_PARTY_PATH . 'plugins/seo/all-in-one-seo-pack.php'; require WP_ROCKET_3RD_PARTY_PATH . 'plugins/seo/premium-seo-pack.php'; require WP_ROCKET_3RD_PARTY_PATH . 'plugins/wp-rest-api.php'; require WP_ROCKET_3RD_PARTY_PATH . 'plugins/page-builder/thrive-visual-editor.php'; diff --git a/inc/3rd-party/plugins/jetpack.php b/inc/3rd-party/plugins/jetpack.php deleted file mode 100644 index 6c19c417e1..0000000000 --- a/inc/3rd-party/plugins/jetpack.php +++ /dev/null @@ -1,187 +0,0 @@ - 'sitemap_preload', - 'type' => 'checkbox', - 'label' => __( 'Jetpack XML Sitemaps', 'rocket' ), - 'label_for' => 'jetpack_xml_sitemap', - 'label_screen' => sprintf( __( 'Preload the sitemap from the Jetpack plugin', 'rocket' ), 'Jetpack' ), - 'default' => 0, - ]; - $options[] = [ - 'parent' => 'sitemap_preload', - 'type' => 'helper_description', - 'name' => 'jetpack_xml_sitemap_desc', - // translators: %s = plugin name, e.g. Yoast SEO. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'Jetpack' ), - ]; - - return $options; - } - add_filter( 'rocket_sitemap_preload_options', 'rocket_sitemap_preload_jetpack_option' ); - } // End if(). - - /** - * Support Jetpack's EU Cookie Law Widget. - * - * @see https://jetpack.com/support/extra-sidebar-widgets/eu-cookie-law-widget/ - * - * @since 2.10.1 - * @author Jeremy Herve - */ - if ( Jetpack::is_module_active( 'widgets' ) ) : - - /** - * Add the EU Cookie Law to the list of mandatory cookies before generating caching files. - * - * @since 2.10.1 - * @author Jeremy Herve - * - * @param array $cookies List of mandatory cookies. - */ - function rocket_add_jetpack_cookie_law_mandatory_cookie( $cookies ) { - $cookies['jetpack-eu-cookie-law'] = 'eucookielaw'; - - return $cookies; - } - add_filter( 'rocket_cache_mandatory_cookies', 'rocket_add_jetpack_cookie_law_mandatory_cookie' ); - - // Don't add the WP Rocket rewrite rules to avoid issues. - add_filter( 'rocket_htaccess_mod_rewrite', '__return_false', 76 ); - - /** - * Add Jetpack cookie when: - * - Jetpack is active. - * - Jetpack's Extra Sidebar Widgets module is active. - * - The widget is active. - * - the rocket_jetpack_eu_cookie_widget option is empty or not set. - * - * @since 2.10.1 - * @author Jeremy Herve - */ - function rocket_activate_jetpack_cookie_law() { - $rocket_jp_eu_cookie_widget = get_option( 'rocket_jetpack_eu_cookie_widget' ); - - if ( - is_active_widget( false, false, 'eu_cookie_law_widget' ) - && empty( $rocket_jp_eu_cookie_widget ) - ) { - add_filter( 'rocket_htaccess_mod_rewrite', '__return_false', 76 ); - add_filter( 'rocket_cache_mandatory_cookies', 'rocket_add_jetpack_cookie_law_mandatory_cookie' ); - - // Update the WP Rocket rules on the .htaccess file. - flush_rocket_htaccess(); - - // Regenerate the config file. - rocket_generate_config_file(); - - // Set the option, so this is not triggered again. - update_option( 'rocket_jetpack_eu_cookie_widget', 1, true ); - } - } - add_action( 'admin_init', 'rocket_activate_jetpack_cookie_law' ); - - endif; // End if Widgets module is active check. - -endif; // End if Jetpack is active check. - -/** - * Remove cookies if Jetpack gets deactivated. - * - * @since 2.10.1 - * @author Jeremy Herve - */ -function rocket_remove_jetpack_cookie_law_mandatory_cookie() { - remove_filter( 'rocket_htaccess_mod_rewrite', '__return_false', 76 ); - remove_filter( 'rocket_cache_mandatory_cookies', '_rocket_add_eu_cookie_law_mandatory_cookie' ); - - // Update the WP Rocket rules on the .htaccess file. - flush_rocket_htaccess(); - - // Regenerate the config file. - rocket_generate_config_file(); - - // Delete our option. - delete_option( 'rocket_jetpack_eu_cookie_widget' ); -} -add_action( 'deactivate_jetpack/jetpack.php', 'rocket_remove_jetpack_cookie_law_mandatory_cookie', 11 ); diff --git a/inc/3rd-party/plugins/seo/all-in-one-seo-pack.php b/inc/3rd-party/plugins/seo/all-in-one-seo-pack.php deleted file mode 100644 index df624b66cb..0000000000 --- a/inc/3rd-party/plugins/seo/all-in-one-seo-pack.php +++ /dev/null @@ -1,130 +0,0 @@ -options->sitemap->general->enable ) - ) { - /** - * Add All in One SEO Sitemap option to WP Rocket options - * - * @since 2.8 - * @author Remy Perona - * - * @param Array $options Array of WP Rocket options. - * @return Array Updated array of WP Rocket options - */ - function rocket_add_all_in_one_seo_sitemap_option( $options ) { - $options['all_in_one_seo_xml_sitemap'] = 0; - - return $options; - } - add_filter( 'rocket_first_install_options', 'rocket_add_all_in_one_seo_sitemap_option' ); - - /** - * Sanitize the AIO SEO option value - * - * @since 2.8 - * @author Remy Perona - * - * @param Array $inputs Array of inputs values. - * @return Array Updated array of inputs $values - */ - function rocket_all_in_one_seo_sitemap_option_sanitize( $inputs ) { - $inputs['all_in_one_seo_xml_sitemap'] = ! empty( $inputs['all_in_one_seo_xml_sitemap'] ) ? 1 : 0; - - return $inputs; - } - add_filter( 'rocket_inputs_sanitize', 'rocket_all_in_one_seo_sitemap_option_sanitize' ); - - /** - * Add All in One SEO Sitemap to the preload list - * - * @since 2.8 - * @author Remy Perona - * - * @param Array $sitemaps Array of sitemaps to preload. - * @return Array Updated array of sitemaps to preload - */ - function rocket_add_all_in_one_seo_sitemap( $sitemaps ) { - if ( ! get_rocket_option( 'all_in_one_seo_xml_sitemap', false ) ) { - return $sitemaps; - } - - $aioseo_v3 = defined( 'AIOSEOP_VERSION' ); - $aioseo_v4 = defined( 'AIOSEO_VERSION' ) && function_exists( 'aioseo' ); - - if ( ! $aioseo_v3 && ! $aioseo_v4 ) { - return $sitemaps; - } - - $sitemap_enabled = false; - if ( $aioseo_v3 ) { - $aioseop_options = get_option( 'aioseop_options' ); - $sitemap_enabled = ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) && 'on' === $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) || ( ! isset( $aioseop_options['modules']['aiosp_feature_manager_options'] ) && isset( $aioseop_options['modules']['aiosp_sitemap_options'] ) ); - } - - if ( - ( $aioseo_v3 && ! $sitemap_enabled ) || - ( $aioseo_v4 && ! aioseo()->options->sitemap->general->enable ) - ) { - return $sitemaps; - } - - if ( $aioseo_v3 ) { - $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aiosp_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - } elseif ( $aioseo_v4 ) { - $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aioseo_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - } - - return $sitemaps; - } - add_filter( 'rocket_sitemap_preload_list', 'rocket_add_all_in_one_seo_sitemap' ); - - /** - * Add All in One SEO Sitemap sub-option on WP Rocket settings page - * - * @since 2.8 - * @author Remy Perona - * - * @param Array $options Array of WP Rocket options. - * @return Array Updated array of WP Rocket options - */ - function rocket_sitemap_preload_all_in_one_seo_option( $options ) { - $options['all_in_one_seo_xml_sitemap'] = [ - 'type' => 'checkbox', - 'container_class' => [ - 'wpr-field--children', - ], - 'label' => __( 'All in One SEO XML sitemap', 'rocket' ), - // translators: %s = Name of the plugin. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'All in One SEO' ), - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ]; - - return $options; - } - add_filter( 'rocket_sitemap_preload_options', 'rocket_sitemap_preload_all_in_one_seo_option' ); - } -endif; diff --git a/inc/3rd-party/plugins/seo/rank-math-seo.php b/inc/3rd-party/plugins/seo/rank-math-seo.php deleted file mode 100644 index a45c706a1e..0000000000 --- a/inc/3rd-party/plugins/seo/rank-math-seo.php +++ /dev/null @@ -1,91 +0,0 @@ - - */ - -defined( 'ABSPATH' ) || exit; - -// Ealry Bail!! -if ( ! defined( 'RANK_MATH_FILE' ) || ! \RankMath\Helper::is_module_active( 'sitemap' ) ) { - return; -} - -/** - * Add sitemap option to WP Rocket settings - * - * @since 3.2.3 - * - * @param array $options WP Rocket settings array. - * @return array Updated WP Rocket settings array - */ -function rank_math_rocket_sitemap_preload_option( $options ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - $options['rank_math_xml_sitemap'] = [ - 'type' => 'checkbox', - 'container_class' => [ - 'wpr-field--children', - ], - 'label' => __( 'Rank Math XML sitemap', 'rocket' ), - // translators: %s = Name of the plugin. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'Rank Math SEO' ), - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ]; - - return $options; -} -add_filter( 'rocket_sitemap_preload_options', 'rank_math_rocket_sitemap_preload_option' ); - -/** - * Add sitemap option to WP Rocket default options - * - * @since 3.2.3 - * - * @param array $options WP Rocket options array. - * @return array Updated WP Rocket options array - */ -function rank_math_rocket_add_sitemap_option( $options ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - $options['rank_math_xml_sitemap'] = 0; - - return $options; -} -add_filter( 'rocket_first_install_options', 'rank_math_rocket_add_sitemap_option' ); - -/** - * Sanitize SEO sitemap option value - * - * @since 3.2.3 - * - * @param array $inputs WP Rocket inputs array. - * @return array Sanitized WP Rocket inputs array - */ -function rank_math_rocket_sitemap_option_sanitize( $inputs ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - $inputs['rank_math_xml_sitemap'] = ! empty( $inputs['rank_math_xml_sitemap'] ) ? 1 : 0; - - return $inputs; -} -add_filter( 'rocket_inputs_sanitize', 'rank_math_rocket_sitemap_option_sanitize' ); - -/** - * Add SEO sitemap URL to the sitemaps to preload - * - * @since 3.2.3 - * - * @param array $sitemaps Sitemaps to preload. - * @return array Updated Sitemaps to preload - */ -function rank_math_rocket_sitemap( $sitemaps ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - if ( get_rocket_option( 'rank_math_xml_sitemap', false ) ) { - $sitemaps[] = \RankMath\Sitemap\Router::get_base_url( 'sitemap_index.xml' ); - } - - return $sitemaps; -} -add_filter( 'rocket_sitemap_preload_list', 'rank_math_rocket_sitemap' ); diff --git a/inc/3rd-party/plugins/seo/seopress.php b/inc/3rd-party/plugins/seo/seopress.php deleted file mode 100644 index 5e4fcf6879..0000000000 --- a/inc/3rd-party/plugins/seo/seopress.php +++ /dev/null @@ -1,98 +0,0 @@ - 'checkbox', - 'container_class' => [ - 'wpr-field--children', - ], - 'label' => __( 'SEOPress XML sitemap', 'rocket' ), - // translators: %s = Name of the plugin. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'SEOPress' ), - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ]; - - return $options; - } - add_filter( 'rocket_sitemap_preload_options', 'rocket_sitemap_preload_seopress_option' ); - } -endif; diff --git a/inc/3rd-party/plugins/seo/the-seo-framework.php b/inc/3rd-party/plugins/seo/the-seo-framework.php deleted file mode 100644 index d158cdfa13..0000000000 --- a/inc/3rd-party/plugins/seo/the-seo-framework.php +++ /dev/null @@ -1,153 +0,0 @@ -loaded ) ) { - return; - } - - /** - * 1. Performs option & other checks. - * 2. Checks for conflicting sitemap plugins that might prevent loading. - * - * These methods cache their output at runtime. - * - * @link https://github.com/wp-media/wp-rocket/issues/899 - */ - if ( $tsf->can_run_sitemap() ) { - rocket_add_tsf_sitemap_compat(); - } -} - -/** - * Adds compatibility for the sitemap functionality in The SEO Framework plugin. - * - * @since 3.2.1 - * @author Sybre Waaijer - */ -function rocket_add_tsf_sitemap_compat() { - add_filter( 'rocket_first_install_options', 'rocket_add_tsf_seo_sitemap_option' ); - add_filter( 'rocket_inputs_sanitize', 'rocket_tsf_seo_sitemap_option_sanitize' ); - add_filter( 'rocket_sitemap_preload_list', 'rocket_add_tsf_sitemap_to_preload' ); - add_filter( 'rocket_sitemap_preload_options', 'rocket_sitemap_add_tsf_sitemap_to_preload_option' ); -} - -/** - * Adds a sitemap option in WP Rocket for The SEO Framework. - * - * @since 3.2.1 - * @author Sybre Waaijer - * @source ./yoast-seo.php (Remy Perona) - * - * @param array $options WP Rocket options array. - * @return array Updated WP Rocket options array - */ -function rocket_add_tsf_seo_sitemap_option( $options ) { - $options['tsf_xml_sitemap'] = 0; - - return $options; -} - -/** - * Sanitizes the added sitemap option for The SEO Framework. - * - * @since 3.2.1 - * @author Sybre Waaijer - * @source ./yoast-seo.php (Remy Perona) - * - * @param array $inputs WP Rocket inputs array. - * @return array Sanitized WP Rocket inputs array - */ -function rocket_tsf_seo_sitemap_option_sanitize( $inputs ) { - $inputs['tsf_xml_sitemap'] = ! empty( $inputs['tsf_xml_sitemap'] ) ? 1 : 0; - - return $inputs; -} - -/** - * Adds TSF sitemap URLs to preload. - * - * @since 3.2.1 - * @since TODO Added compatibility support for The SEO Framework v4.0+ - * @author Sybre Waaijer - * @source ./yoast-seo.php (Remy Perona) - * - * @param array $sitemaps Sitemaps to preload. - * @return array Updated Sitemaps to preload - */ -function rocket_add_tsf_sitemap_to_preload( $sitemaps ) { - - if ( get_rocket_option( 'tsf_xml_sitemap', false ) ) { - // The autoloader in TSF doesn't check for file_exists(). So, use version compare instead to prevent fatal errors. - if ( version_compare( THE_SEO_FRAMEWORK_VERSION, '4.0', '>=' ) ) { - // TSF 4.0+. Expect the class to exist indefinitely. - - $sitemap_bridge = The_SEO_Framework\Bridges\Sitemap::get_instance(); - - foreach ( $sitemap_bridge->get_sitemap_endpoint_list() as $id => $data ) { - // When the sitemap is good enough for a robots display, we determine it as valid for precaching. - // Non-robots display types are among the stylesheet endpoint, or the Yoast SEO-compatible endpoint. - // In other words, this enables support for ALL current and future public sitemap endpoints. - if ( ! empty( $data['robots'] ) ) { - $sitemaps[] = $sitemap_bridge->get_expected_sitemap_endpoint_url( $id ); - } - } - } else { - // Deprecated. TSF <4.0. - $sitemaps[] = the_seo_framework()->get_sitemap_xml_url(); - } - } - - return $sitemaps; -} - -/** - * Add The SEO Framework SEO option to WP Rocket settings - * - * @since 3.2.1 - * @author Sybre Waaijer - * @source ./yoast-seo.php (Remy Perona) - * - * @param array $options WP Rocket settings array. - * @return array Updated WP Rocket settings array - */ -function rocket_sitemap_add_tsf_sitemap_to_preload_option( $options ) { - $options['tsf_xml_sitemap'] = [ - 'type' => 'checkbox', - 'container_class' => [ - 'wpr-field--children', - ], - 'label' => __( 'The SEO Framework XML sitemap', 'rocket' ), - // translators: %s = Name of the plugin. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'The SEO Framework' ), - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ]; - - return $options; -} diff --git a/inc/API/preload.php b/inc/API/preload.php deleted file mode 100644 index d0e611c54e..0000000000 --- a/inc/API/preload.php +++ /dev/null @@ -1,115 +0,0 @@ -preload( $urls ); - - return true; -} - -/** - * Launches the sitemap preload (helper function for backward compatibility) - * - * @since 2.8 - * @author Remy Perona - * - * @return void - */ -function run_rocket_sitemap_preload() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - if ( ! get_rocket_option( 'sitemap_preload' ) || ! get_rocket_option( 'manual_preload' ) ) { - return; - } - - /** - * Filters the sitemaps list to preload - * - * @since 2.8 - * - * @param array Array of sitemaps URL - */ - $sitemaps = apply_filters( 'rocket_sitemap_preload_list', get_rocket_option( 'sitemaps', false ) ); - $sitemaps = array_flip( array_flip( $sitemaps ) ); - - if ( ! $sitemaps ) { - return; - } - - $sitemap_preload = new Sitemap( new FullProcess() ); - - $sitemap_preload->run_preload( $sitemaps ); -} - -/** - * Launches the preload cache from the admin bar or the dashboard button - * - * @since 1.3.0 Compatibility with WPML - * @since 1.0 (delete in 1.1.6 and re-add in 1.1.9) - * @deprecated 3.2 - */ -function do_admin_post_rocket_preload_cache() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals - if ( empty( $_GET['_wpnonce'] ) ) { - wp_safe_redirect( wp_get_referer() ); - die(); - } - - if ( ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'preload' ) ) { - wp_nonce_ays( '' ); - } - - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - wp_safe_redirect( wp_get_referer() ); - die(); - } - - $preload_process = new FullProcess(); - - if ( $preload_process->is_process_running() ) { - wp_safe_redirect( wp_get_referer() ); - die(); - } - - delete_transient( 'rocket_preload_errors' ); - - $lang = isset( $_GET['lang'] ) && 'all' !== $_GET['lang'] ? sanitize_key( $_GET['lang'] ) : ''; - run_rocket_bot( 'cache-preload', $lang ); - run_rocket_sitemap_preload(); - - if ( ! strpos( wp_get_referer(), 'wprocket' ) ) { - set_transient( 'rocket_preload_triggered', 1 ); - } - - wp_safe_redirect( wp_get_referer() ); - die(); -} -add_action( 'admin_post_nopriv_preload', 'do_admin_post_rocket_preload_cache' ); -add_action( 'admin_post_preload', 'do_admin_post_rocket_preload_cache' ); diff --git a/inc/Dependencies/Database/Query.php b/inc/Dependencies/Database/Query.php index dbd33de2b6..dddb5f5228 100644 --- a/inc/Dependencies/Database/Query.php +++ b/inc/Dependencies/Database/Query.php @@ -344,10 +344,10 @@ public function __construct( $query = array() ) { * @param string|array $query Array or URL query string of parameters. * @return array|int List of items, or number of items when 'count' is passed as a query var. */ - public function query( $query = array() ) { + public function query( $query = array(), bool $use_cache = true ) { $this->parse_query( $query ); - return $this->get_items(); + return $this->get_items( $use_cache ); } /** Private Setters *******************************************************/ @@ -842,7 +842,7 @@ private function get_item_raw( $column_name = '', $column_value = '' ) { * * @return array|int List of items, or number of items when 'count' is passed as a query var. */ - private function get_items() { + private function get_items( bool $use_cache = true ) { /** * Fires before object items are retrieved. @@ -863,7 +863,7 @@ private function get_items() { // Check the cache $cache_key = $this->get_cache_key(); - $cache_value = $this->cache_get( $cache_key, $this->cache_group ); + $cache_value = $use_cache ? $this->cache_get( $cache_key, $this->cache_group ) : false; // No cache value if ( false === $cache_value ) { @@ -872,14 +872,16 @@ private function get_items() { // Set the number of found items $this->set_found_items( $item_ids ); - // Format the cached value - $cache_value = array( - 'item_ids' => $item_ids, - 'found_items' => intval( $this->found_items ), - ); + if ( $use_cache ) { + // Format the cached value + $cache_value = array( + 'item_ids' => $item_ids, + 'found_items' => intval( $this->found_items ), + ); - // Add value to the cache - $this->cache_add( $cache_key, $cache_value, $this->cache_group ); + // Add value to the cache + $this->cache_add( $cache_key, $cache_value, $this->cache_group ); + } // Value exists in cache } else { diff --git a/inc/Engine/Activation/Activation.php b/inc/Engine/Activation/Activation.php index 43c1bde5a1..e5768544e9 100644 --- a/inc/Engine/Activation/Activation.php +++ b/inc/Engine/Activation/Activation.php @@ -2,7 +2,9 @@ namespace WP_Rocket\Engine\Activation; +use WP_Rocket\Admin\Options; use WP_Rocket\Dependencies\League\Container\Container; +use WP_Rocket\Event_Management\Event_Manager; use WP_Rocket\ThirdParty\Hostings\HostResolver; /** @@ -31,11 +33,19 @@ public static function activate_plugin() { $container = new Container(); $container->add( 'template_path', WP_ROCKET_PATH . 'views' ); + $options_api = new Options( 'wp_rocket_' ); + $container->add( 'options_api', $options_api ); + $container->addServiceProvider( \WP_Rocket\ServiceProvider\Options::class ); + $container->addServiceProvider( \WP_Rocket\Engine\Preload\Activation\ServiceProvider::class ); $container->addServiceProvider( 'WP_Rocket\Engine\Activation\ServiceProvider' ); $container->addServiceProvider( 'WP_Rocket\ThirdParty\Hostings\ServiceProvider' ); $host_type = HostResolver::get_host_service(); + $event_manager = new Event_Manager(); + + $event_manager->add_subscriber( $container->get( 'preload_activation_subscriber' ) ); + if ( ! empty( $host_type ) ) { array_unshift( self::$activators, $host_type ); } diff --git a/inc/Engine/Admin/Settings/Page.php b/inc/Engine/Admin/Settings/Page.php index 099a75515c..1ac24a5601 100644 --- a/inc/Engine/Admin/Settings/Page.php +++ b/inc/Engine/Admin/Settings/Page.php @@ -720,13 +720,13 @@ private function assets_section() { 'sanitize_callback' => 'sanitize_checkbox', 'options' => [ 'remove_unused_css' => [ - 'label' => __( 'Remove Unused CSS (Beta)', 'rocket' ), + 'label' => __( 'Remove Unused CSS', 'rocket' ), 'disabled' => $invalid_license ? 'disabled' : false, // translators: %1$s = opening tag, %2$s = closing tag. 'description' => sprintf( __( 'Removes unused CSS per page and helps to reduce page size and HTTP requests. Recommended for best performance. Test thoroughly! %1$sMore info%2$s', 'rocket' ), '', '' ), 'warning' => $invalid_license ? [] : [ - 'title' => __( 'We’re still working on it!', 'rocket' ), - 'description' => __( 'This is a beta feature. We’re providing you early access but some changes might be added later on. If you notice any errors on your website, simply deactivate the feature.', 'rocket' ), + 'title' => __( 'This could break things!', 'rocket' ), + 'description' => __( 'If you notice any errors on your website after having activated this setting, just deactivate it again, and your site will be back to normal.', 'rocket' ), 'button_label' => __( 'Activate Remove Unused CSS', 'rocket' ), ], 'sub_fields' => $invalid_license ? [] : [ @@ -1120,7 +1120,7 @@ private function preload_section() { 'title' => __( 'Preload Cache', 'rocket' ), 'type' => 'fields_container', // translators: %1$s = opening tag, %2$s = closing tag. - 'description' => sprintf( __( 'When you enable preloading WP Rocket will generate the cache starting with the links on your homepage followed by the sitemaps you specify. Preloading is automatically triggered when you add or update content and can also be manually triggered from the admin bar or from the %1$sWP Rocket Dashboard%2$s.', 'rocket' ), '', '' ), + 'description' => __( 'When you enable preloading WP Rocket will automatically detect your sitemaps and save all URLs to the database. The plugin will make sure that your cache is always preloaded.', 'rocket' ), 'help' => [ 'id' => $this->beacon->get_suggest( 'sitemap_preload' ), 'url' => $bot_beacon['url'], @@ -1167,53 +1167,9 @@ private function preload_section() { 'section' => 'preload_section', 'page' => 'preload', 'default' => 1, - 'container_class' => [ - 'wpr-isParent', - ], 'sanitize_callback' => 'sanitize_checkbox', ], - ] - ); - - // Add this separately to be able to filter it easily. - $this->settings->add_settings_fields( - apply_filters( - 'rocket_sitemap_preload_options', - [ - 'sitemap_preload' => [ - 'type' => 'checkbox', - 'label' => __( 'Activate sitemap-based cache preloading', 'rocket' ), - 'container_class' => [ - 'wpr-isParent', - 'wpr-field--children', - ], - 'parent' => 'manual_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ], - ] - ) - ); - - $this->settings->add_settings_fields( - [ - 'sitemaps' => [ - 'type' => 'textarea', - 'label' => __( 'Sitemaps for preloading', 'rocket' ), - 'container_class' => [ - 'wpr-field--children', - ], - 'description' => __( 'Specify XML sitemap(s) to be used for preloading', 'rocket' ), - 'placeholder' => 'http://example.com/sitemap.xml', - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => [], - 'sanitize_callback' => 'sanitize_textarea', - ], - 'dns_prefetch' => [ + 'dns_prefetch' => [ 'type' => 'textarea', 'label' => __( 'URLs to prefetch', 'rocket' ), 'description' => __( 'Specify external hosts to be prefetched (no http:, one per line)', 'rocket' ), @@ -1223,7 +1179,7 @@ private function preload_section() { 'default' => [], 'sanitize_callback' => 'sanitize_textarea', ], - 'preload_fonts' => [ + 'preload_fonts' => [ 'type' => 'textarea', 'label' => __( 'Fonts to preload', 'rocket' ), 'description' => __( 'Specify urls of the font files to be preloaded (one per line). Fonts must be hosted on your own domain, or the domain you have specified on the CDN tab.', 'rocket' ), @@ -1234,7 +1190,7 @@ private function preload_section() { 'default' => [], 'sanitize_callback' => 'sanitize_textarea', ], - 'preload_links' => [ + 'preload_links' => [ 'type' => 'checkbox', 'label' => __( 'Enable link preloading', 'rocket' ), 'section' => 'preload_links_section', @@ -2115,7 +2071,6 @@ private function hidden_fields() { 'minify_js_key', 'version', 'cloudflare_old_settings', - 'sitemap_preload_url_crawl', 'cache_ssl', 'minify_google_fonts', 'emoji', diff --git a/inc/Engine/Admin/Settings/Settings.php b/inc/Engine/Admin/Settings/Settings.php index 1ae6c7a858..fbadc2ad8b 100644 --- a/inc/Engine/Admin/Settings/Settings.php +++ b/inc/Engine/Admin/Settings/Settings.php @@ -341,22 +341,6 @@ public function sanitize_callback( $input ) { // Options: Activate bot preload. $input['manual_preload'] = ! empty( $input['manual_preload'] ) ? 1 : 0; - // Option: activate sitemap preload. - $input['sitemap_preload'] = ! empty( $input['sitemap_preload'] ) ? 1 : 0; - - // Option : XML sitemaps URLs. - if ( ! empty( $input['sitemaps'] ) ) { - if ( ! is_array( $input['sitemaps'] ) ) { - $input['sitemaps'] = explode( "\n", $input['sitemaps'] ); - } - $input['sitemaps'] = array_map( 'trim', $input['sitemaps'] ); - $input['sitemaps'] = array_map( 'rocket_sanitize_xml', $input['sitemaps'] ); - $input['sitemaps'] = array_filter( $input['sitemaps'] ); - $input['sitemaps'] = array_unique( $input['sitemaps'] ); - } else { - $input['sitemaps'] = []; - } - // Option : fonts to preload. $input['preload_fonts'] = ! empty( $input['preload_fonts'] ) ? $this->sanitize_fonts( $input['preload_fonts'] ) : []; diff --git a/inc/Engine/Cache/Purge.php b/inc/Engine/Cache/Purge.php index fe6b67e7be..46c07d2b44 100644 --- a/inc/Engine/Cache/Purge.php +++ b/inc/Engine/Cache/Purge.php @@ -164,10 +164,16 @@ private function maybe_remove_dir( $dir ) { * @param WP_Post $post Post object. */ public function purge_post_terms_urls( WP_Post $post ) { - foreach ( $this->get_post_terms_urls( $post ) as $url ) { + $urls = $this->get_post_terms_urls( $post ); + foreach ( $urls as $url ) { $this->purge_url( $url ); } - + /** + * Action to preload urls after cleaning cache. + * + * @param array urls to preload. + */ + do_action( 'rocket_after_clean_terms', $urls ); } /** diff --git a/inc/Engine/Common/Queue/Cleaner.php b/inc/Engine/Common/Queue/Cleaner.php index 2b4e6a65c7..63157ecdf3 100644 --- a/inc/Engine/Common/Queue/Cleaner.php +++ b/inc/Engine/Common/Queue/Cleaner.php @@ -63,7 +63,6 @@ public function delete_old_actions() { \ActionScheduler_Store::STATUS_COMPLETE, \ActionScheduler_Store::STATUS_CANCELED, ]; - foreach ( $statuses_to_purge as $status ) { $actions_to_delete = $this->store->query_actions( [ diff --git a/inc/Engine/Common/Queue/PreloadQueueRunner.php b/inc/Engine/Common/Queue/PreloadQueueRunner.php new file mode 100644 index 0000000000..59333337c3 --- /dev/null +++ b/inc/Engine/Common/Queue/PreloadQueueRunner.php @@ -0,0 +1,237 @@ +async_request = $async_request; + $this->compatibility = $compatibility; + $this->logger = $logger; + $this->locker = $locker; + } + + /** + * Run the queue. + * + * @param string $context context from the queue. + * @return int + */ + public function run( $context = 'WP Cron' ) { + do_action( 'action_scheduler_before_process_queue' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + $this->compatibility->raise_memory_limit(); + $this->compatibility->raise_time_limit( $this->get_time_limit() ); + $this->run_cleanup(); + $total = 0; + + if ( false === $this->has_maximum_concurrent_batches() ) { + $batch_size = apply_filters( 'action_scheduler_queue_runner_batch_size', 25 );// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + do { + $processed_actions_in_batch = $this->do_batch( $batch_size, $context ); + $total += $processed_actions_in_batch; + } while ( $processed_actions_in_batch > 0 && ! $this->batch_limits_exceeded( $total ) ); // keep going until we run out of actions, time, or memory. + } + + do_action( 'action_scheduler_after_process_queue' ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + return $total; + } + + /** + * Return the instance from the queue. + * + * @return PreloadQueueRunner|null + */ + public static function instance() { + if ( empty( self::$runner ) ) { + self::$runner = new self(); + } + return self::$runner; + } + + /** + * Initialize the queue. + * + * @return void + */ + public function init() { + // phpcs:ignore WordPress.WP.CronInterval.CronSchedulesInterval + add_filter( 'cron_schedules', [ $this, 'add_wp_cron_schedule' ] ); + + // Check for and remove any WP Cron hook scheduled by Action Scheduler < 3.0.0, which didn't include the $context param. + $next_timestamp = wp_next_scheduled( self::WP_CRON_HOOK ); + if ( $next_timestamp ) { + wp_unschedule_event( $next_timestamp, self::WP_CRON_HOOK ); + } + + $cron_context = [ 'WP Cron' ]; + + if ( ! wp_next_scheduled( self::WP_CRON_HOOK, $cron_context ) ) { + $schedule = apply_filters( 'rocket_action_scheduler_run_schedule', self::WP_CRON_SCHEDULE ); + wp_schedule_event( time(), $schedule, self::WP_CRON_HOOK, $cron_context ); + } + + add_action( self::WP_CRON_HOOK, [ $this, 'run' ] ); + add_action( 'shutdown', [ $this, 'maybe_dispatch_async_request' ] ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + } + + /** + * Hook check for dispatching an async request. + * + * @return void + */ + public function maybe_dispatch_async_request() { + if ( is_admin() && ! $this->locker->is_locked( 'async-request-runner' ) ) { + // Only start an async queue at most once every 60 seconds. + $this->locker->set( 'async-request-runner' ); + if ( ! $this->async_request ) { + return; + } + $this->async_request->maybe_dispatch(); + } + } + + /** + * Process a batch of actions pending in the queue. + * + * Actions are processed by claiming a set of pending actions then processing each one until either the batch + * size is completed, or memory or time limits are reached, defined by @see $this->batch_limits_exceeded(). + * + * @param int $size The maximum number of actions to process in the batch. + * @param string $context Optional identifer for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' + * Generally, this should be capitalised and not localised as it's a proper noun. + * @return int The number of actions processed. + */ + public function do_batch( $size = 100, $context = '' ) { + try { + $claim = $this->store->stake_claim( $size, null, [], $this->group ); + $this->monitor->attach( $claim ); + $processed_actions = 0; + + foreach ( $claim->get_actions() as $action_id ) { + // bail if we lost the claim. + if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $claim->get_id() ), true ) ) { + break; + } + $this->process_action( $action_id, $context ); + $processed_actions++; + + if ( $this->batch_limits_exceeded( $processed_actions ) ) { + break; + } + } + $this->store->release_claim( $claim ); + $this->monitor->detach(); + $this->clear_caches(); + + return $processed_actions; + } catch ( \Exception $exception ) { + $this->logger->debug( $exception->getMessage() ); + + return 0; + } + } + + /** + * Running large batches can eat up memory, as WP adds data to its object cache. + * + * If using a persistent object store, this has the side effect of flushing that + * as well, so this is disabled by default. To enable: + * + * add_filter( 'action_scheduler_queue_runner_flush_cache', '__return_true' ); + */ + protected function clear_caches() { + if ( ! wp_using_ext_object_cache() || apply_filters( 'action_scheduler_queue_runner_flush_cache', false ) ) {// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + wp_cache_flush(); + } + } + + /** + * Add the cron schedule. + * + * @param array $schedules Array of current schedules. + * + * @return array + */ + public function add_wp_cron_schedule( $schedules ) { + if ( isset( $schedules['every_minute'] ) ) { + return $schedules; + } + + $schedules['every_minute'] = [ + 'interval' => 60, // in seconds. + 'display' => __( 'Every minute', 'rocket' ), + ]; + + return $schedules; + } +} diff --git a/inc/classes/Buffer/class-optimization.php b/inc/Engine/Optimization/Buffer/Optimization.php old mode 100644 new mode 100755 similarity index 76% rename from inc/classes/Buffer/class-optimization.php rename to inc/Engine/Optimization/Buffer/Optimization.php index 35dba2391f..4eb9bf9144 --- a/inc/classes/Buffer/class-optimization.php +++ b/inc/Engine/Optimization/Buffer/Optimization.php @@ -1,11 +1,15 @@ tests->can_init_process() ) { @@ -65,8 +63,6 @@ public function maybe_init_process() { * Maybe optimize the page content. * * @since 3.3 - * @access public - * @author Grégory Viguier * * @param string $buffer The buffer content. * @return string The buffered content. @@ -82,7 +78,7 @@ public function maybe_process_buffer( $buffer ) { */ do_action( 'rocket_before_maybe_process_buffer', $buffer ); - if ( ! $this->is_html( $buffer ) ) { + if ( ! $this->is_feed_uri() && ! $this->is_html( $buffer ) ) { return $buffer; } @@ -105,6 +101,24 @@ public function maybe_process_buffer( $buffer ) { $this->log( 'Page optimized.', [], 'info' ); + /** + * Fires after processing the buffer + * + * @since 3.12 + */ + do_action( 'rocket_after_process_buffer' ); + return $buffer; } + + /** + * Tell if the current url is a feed. + * + * @return bool + */ + public function is_feed_uri() { + global $wp_rewrite, $wp; + $feed_uri = '/(?:.+/)?' . $wp_rewrite->feed_base . '(?:/(?:.+/?)?)?$'; + return (bool) preg_match( '#^(' . $feed_uri . ')$#i', '/' . $wp->request ); + } } diff --git a/inc/classes/subscriber/Optimization/class-buffer-subscriber.php b/inc/Engine/Optimization/Buffer/Subscriber.php similarity index 75% rename from inc/classes/subscriber/Optimization/class-buffer-subscriber.php rename to inc/Engine/Optimization/Buffer/Subscriber.php index 2dbddcf7ac..ae32bb989a 100644 --- a/inc/classes/subscriber/Optimization/class-buffer-subscriber.php +++ b/inc/Engine/Optimization/Buffer/Subscriber.php @@ -1,16 +1,16 @@ optimizer->maybe_init_process(); diff --git a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php old mode 100644 new mode 100755 index eab9e52dd5..70b8b821da --- a/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php +++ b/inc/Engine/Optimization/Minify/CSS/AdminSubscriber.php @@ -119,7 +119,8 @@ protected function did_setting_change( $setting, array $new, array $old ) { && array_key_exists( $setting, $new ) && - $old[ $setting ] !== $new[ $setting ] + // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison + $old[ $setting ] != $new[ $setting ] ); } } diff --git a/inc/Engine/Optimization/RUCSS/Admin/Database.php b/inc/Engine/Optimization/RUCSS/Admin/Database.php index c7933a53d7..d8242b2a66 100644 --- a/inc/Engine/Optimization/RUCSS/Admin/Database.php +++ b/inc/Engine/Optimization/RUCSS/Admin/Database.php @@ -3,17 +3,9 @@ namespace WP_Rocket\Engine\Optimization\RUCSS\Admin; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources; use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS; class Database { - /** - * Instance of RUCSS resources table. - * - * @var Resources - */ - private $rucss_resources_table; - /** * Instance of RUCSS used_css table. * @@ -24,12 +16,10 @@ class Database { /** * Creates an instance of the class. * - * @param Resources $rucss_resources_table RUCSS Resources Database Table. - * @param UsedCSS $rucss_usedcss_table RUCSS UsedCSS Database Table. + * @param UsedCSS $rucss_usedcss_table RUCSS UsedCSS Database Table. */ - public function __construct( Resources $rucss_resources_table, UsedCSS $rucss_usedcss_table ) { - $this->rucss_resources_table = $rucss_resources_table; - $this->rucss_usedcss_table = $rucss_usedcss_table; + public function __construct( UsedCSS $rucss_usedcss_table ) { + $this->rucss_usedcss_table = $rucss_usedcss_table; } /** @@ -39,9 +29,6 @@ public function __construct( Resources $rucss_resources_table, UsedCSS $rucss_us */ public function drop_rucss_database_tables() { // If the table exist, then drop the table. - if ( $this->rucss_resources_table->exists() ) { - $this->rucss_resources_table->uninstall(); - } if ( $this->rucss_usedcss_table->exists() ) { $this->rucss_usedcss_table->uninstall(); } @@ -70,17 +57,6 @@ public function delete_old_used_css() { } } - /** - * Delete old used css based on last accessed date. - * - * @return void - */ - public function delete_old_resources() { - if ( $this->rucss_resources_table->exists() ) { - $this->rucss_resources_table->delete_old_items(); - } - } - /** * Get old used css based on last accessed date. * @@ -105,4 +81,23 @@ public function remove_all_completed_rows() { return $this->rucss_usedcss_table->remove_all_completed_rows(); } + + /** + * Remove the resources table & version stored in options table + * + * @since 3.12 + * + * @return bool + */ + public function drop_resources_table(): bool { + global $wpdb; + + $result = $wpdb->query( "DROP TABLE {$wpdb->prefix}wpr_rucss_resources" ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.SchemaChange + + if ( false === $result ) { + return false; + } + + return delete_option( 'wpr_rucss_resources_version' ); + } } diff --git a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php index d5e74dbc7d..d36195e4e1 100644 --- a/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php +++ b/inc/Engine/Optimization/RUCSS/Admin/Subscriber.php @@ -102,6 +102,7 @@ public static function get_subscribed_events() : array { [ 'update_safelist_items', 15, 2 ], [ 'delete_used_css', 16, 2 ], [ 'cancel_pending_jobs_as', 16, 2 ], + [ 'drop_resources_table', 18, 2 ], ], 'wp_ajax_rocket_spawn_cron' => 'spawn_cron', 'rocket_deactivation' => 'cancel_queues', @@ -709,6 +710,24 @@ public function disable_russ_on_wrong_license() { return null; } + /** + * Remove the resources table & version stored in options table on update to 3.12 + * + * @since 3.12 + * + * @param string $new_version New plugin version. + * @param string $old_version Previous plugin version. + * + * @return void + */ + public function drop_resources_table( $new_version, $old_version ) { + if ( version_compare( $old_version, '3.12', '>=' ) ) { + return; + } + + $this->database->drop_resources_table(); + } + /** * Displays a notice if the used CSS folder is not writable * diff --git a/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php b/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php index 3026dfb76a..7c8609df0d 100644 --- a/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php +++ b/inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php @@ -7,7 +7,6 @@ use WP_Rocket\Engine\Common\Queue\QueueInterface; use WP_Rocket\Engine\Optimization\CSSTrait; use WP_Rocket\Engine\Optimization\RegexTrait; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\ResourcesQuery; use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\UsedCSS as UsedCSS_Query; use WP_Rocket\Engine\Optimization\RUCSS\Frontend\APIClient; use WP_Rocket\Logger\Logger; @@ -23,13 +22,6 @@ class UsedCSS { */ private $used_css_query; - /** - * Resources Query instance. - * - * @var ResourcesQuery - */ - private $resources_query; - /** * Plugin options instance. * @@ -98,6 +90,7 @@ class UsedCSS { '.wprm-advanced-list-', '.adsslot_', // For Advanced Ads plugin ads. '.jnews_', // For JNews theme. + '.cp-info-bar.content-', // For Convert Plus plugin. ]; /** @@ -105,7 +98,6 @@ class UsedCSS { * * @param Options_Data $options Options instance. * @param UsedCSS_Query $used_css_query Usedcss Query instance. - * @param ResourcesQuery $resources_query Resources Query instance. * @param APIClient $api APIClient instance. * @param QueueInterface $queue Queue instance. * @param Filesystem $filesystem Filesystem instance. @@ -113,17 +105,15 @@ class UsedCSS { public function __construct( Options_Data $options, UsedCSS_Query $used_css_query, - ResourcesQuery $resources_query, APIClient $api, QueueInterface $queue, Filesystem $filesystem ) { - $this->options = $options; - $this->used_css_query = $used_css_query; - $this->resources_query = $resources_query; - $this->api = $api; - $this->queue = $queue; - $this->filesystem = $filesystem; + $this->options = $options; + $this->used_css_query = $used_css_query; + $this->api = $api; + $this->queue = $queue; + $this->filesystem = $filesystem; } /** @@ -383,7 +373,6 @@ private function remove_external_styles_from_html( string $clean_html, string $h foreach ( $link_styles as $style ) { if ( - ! (bool) preg_match( '/rel=[\'"]?stylesheet[\'"]?/is', $style[0] ) && ! ( (bool) preg_match( '/rel=[\'"]?preload[\'"]?/is', $style[0] ) && (bool) preg_match( '/as=[\'"]?style[\'"]?/is', $style[0] ) ) @@ -470,7 +459,6 @@ private function remove_internal_styles_from_html( string $clean_html, string $h } $html = str_replace( $style[0], '', $html ); - } return $html; diff --git a/inc/Engine/Optimization/RUCSS/Cron/Subscriber.php b/inc/Engine/Optimization/RUCSS/Cron/Subscriber.php index 00f3f3b949..aa8d5d8ab7 100644 --- a/inc/Engine/Optimization/RUCSS/Cron/Subscriber.php +++ b/inc/Engine/Optimization/RUCSS/Cron/Subscriber.php @@ -103,7 +103,6 @@ public function process_pending_jobs() { */ public function cron_clean_rows() { $this->database->delete_old_used_css(); - $this->database->delete_old_resources(); } /** diff --git a/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery.php b/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery.php deleted file mode 100644 index 4bc4d0dd55..0000000000 --- a/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery.php +++ /dev/null @@ -1,172 +0,0 @@ -get_item_by( 'url', $resource['url'] ); - - if ( empty( $db_row ) ) { - // Create this new row in DB. - $resource_id = $this->add_item( - [ - 'url' => $resource['url'], - 'type' => $resource['type'], - 'content' => $resource['content'], - 'media' => $resource['media'] ?? '', - 'hash' => md5( $resource['content'] ), - 'prewarmup' => $resource['prewarmup'] ?? 0, - 'last_accessed' => current_time( 'mysql', true ), - ] - ); - - if ( $resource_id ) { - return $resource_id; - } - - return false; - } - - // In all cases update last_accessed column with current date/time. - $this->update_item( - $db_row->id, - [ - 'last_accessed' => current_time( 'mysql', true ), - ] - ); - - // Check the content hash and bailout if the content is the same and we are not in prewarmup. - if ( md5( $resource['content'] ) === $db_row->hash && ! $resource['prewarmup'] ) { - // Do nothing. - return false; - } - - // Update this row with the new content. - $this->update_item( - $db_row->id, - [ - 'prewarmup' => $resource['prewarmup'] ?? 0, - 'content' => $resource['content'], - 'hash' => md5( $resource['content'] ), - 'modified' => current_time( 'mysql', true ), - ] - ); - - return $db_row->id; - } - - /** - * Remove a resource from the table (if it is there). - * - * @since 3.9 - * - * @param string $url URL of the item to remove_by_url. - * - * @return void - */ - public function remove_by_url( $url ) { - $db_row = $this->get_item_by( 'url', $url ); - if ( ! is_object( $db_row ) ) { - return; - } - $this->delete_item( $db_row->id ); - } - - /** - * Updates the resource row when the warmup status is ok - * - * @since 3.9 - * - * @param string $url URL of the resource. - * - * @return bool - */ - public function update_warmup_status( string $url ) { - $db_row = $this->get_item_by( 'url', $url ); - - if ( empty( $db_row ) ) { - return false; - } - - return $this->update_item( - $db_row->id, - [ - 'warmup_status' => 1, - ] - ); - } -} diff --git a/inc/Engine/Optimization/RUCSS/Database/Schemas/Resources.php b/inc/Engine/Optimization/RUCSS/Database/Schemas/Resources.php deleted file mode 100644 index 5c899e6e32..0000000000 --- a/inc/Engine/Optimization/RUCSS/Database/Schemas/Resources.php +++ /dev/null @@ -1,124 +0,0 @@ - 'id', - 'type' => 'bigint', - 'length' => '20', - 'unsigned' => true, - 'extra' => 'auto_increment', - 'primary' => true, - 'sortable' => true, - ], - - // URL column. - [ - 'name' => 'url', - 'type' => 'varchar', - 'length' => '2000', - 'default' => '', - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // TYPE column - values css / js. - [ - 'name' => 'type', - 'type' => 'varchar', - 'length' => '5', - 'default' => '', - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // CONTENT column. - [ - 'name' => 'content', - 'type' => 'longtext', - 'default' => null, - 'cache_key' => false, - 'searchable' => true, - 'sortable' => true, - ], - - // HASH column. - [ - 'name' => 'hash', - 'type' => 'varchar', - 'length' => '100', - 'default' => '', - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // prewarmup column. - [ - 'name' => 'prewarmup', - 'type' => 'tinyint', - 'length' => '1', - 'default' => 0, - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // warmup_status column. - [ - 'name' => 'warmup_status', - 'type' => 'tinyint', - 'length' => '1', - 'default' => '0', - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // MEDIA column. - [ - 'name' => 'media', - 'type' => 'varchar', - 'length' => '255', - 'default' => 'all', - 'cache_key' => true, - 'searchable' => true, - 'sortable' => true, - ], - - // MODIFIED column. - [ - 'name' => 'modified', - 'type' => 'datetime', - 'default' => '0000-00-00 00:00:00', - 'date_query' => true, - 'sortable' => true, - ], - - // LAST_ACCESSED column. - [ - 'name' => 'last_accessed', - 'type' => 'timestamp', - 'default' => '0000-00-00 00:00:00', - 'date_query' => true, - 'sortable' => true, - ], - ]; -} diff --git a/inc/Engine/Optimization/RUCSS/Database/Tables/Resources.php b/inc/Engine/Optimization/RUCSS/Database/Tables/Resources.php deleted file mode 100644 index 0046652465..0000000000 --- a/inc/Engine/Optimization/RUCSS/Database/Tables/Resources.php +++ /dev/null @@ -1,85 +0,0 @@ - value array of versions => methods. - * - * @var array - */ - protected $upgrades = []; - - /** - * Setup the database schema - * - * @return void - */ - protected function set_schema() { - $this->schema = " - id bigint(20) unsigned NOT NULL AUTO_INCREMENT, - url varchar(2000) NOT NULL default '', - type varchar(5) NOT NULL default '', - media varchar(255) NULL default 'all', - content longtext default NULL, - hash varchar(100) NOT NULL default '', - prewarmup tinyint(1) unsigned NULL default 0, - warmup_status tinyint(1) unsigned NULL default 0, - modified DATETIME NULL default '0000-00-00 00:00:00', - last_accessed DATETIME NOT NULL default '0000-00-00 00:00:00', - PRIMARY KEY (id), - KEY hash (hash), - KEY url (url(150)), - KEY type (type), - KEY last_accessed (last_accessed)"; - } - - /** - * Delete all resources which were not accessed in the last month. - * - * @return bool|int - */ - public function delete_old_items() { - // Get the database interface. - $db = $this->get_db(); - - // Bail if no database interface is available. - if ( empty( $db ) ) { - return false; - } - - $prefixed_table_name = $this->apply_prefix( $this->table_name ); - $query = "DELETE FROM `$prefixed_table_name` WHERE `last_accessed` <= date_sub(now(), interval 1 month)"; - - return $db->query( $query ); - } - -} diff --git a/inc/Engine/Optimization/RUCSS/ServiceProvider.php b/inc/Engine/Optimization/RUCSS/ServiceProvider.php index 708dacacb0..1e167ef3cc 100644 --- a/inc/Engine/Optimization/RUCSS/ServiceProvider.php +++ b/inc/Engine/Optimization/RUCSS/ServiceProvider.php @@ -9,9 +9,7 @@ use WP_Rocket\Engine\Optimization\RUCSS\Controller\Queue; use WP_Rocket\Engine\Optimization\RUCSS\Controller\UsedCSS as UsedCSSController; use WP_Rocket\Engine\Optimization\RUCSS\Cron\Subscriber as CronSubscriber; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\ResourcesQuery; use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\UsedCSS as UsedCSSQuery; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources as ResourcesTable; use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS as UsedCSSTable; use WP_Rocket\Engine\Optimization\RUCSS\Frontend\APIClient; use WP_Rocket\Engine\Optimization\RUCSS\Frontend\Subscriber as FrontendSubscriber; @@ -34,14 +32,12 @@ class ServiceProvider extends AbstractServiceProvider { */ protected $provides = [ 'rucss_settings', - 'rucss_resources_table', 'rucss_database', 'rucss_admin_subscriber', 'rucss_frontend_api_client', 'rucss_used_css', 'rucss_used_css_query', 'rucss_frontend_subscriber', - 'rucss_resources_query', 'rucss_queue', 'rucss_filesystem', 'rucss_cron_subscriber', @@ -56,12 +52,9 @@ public function register() { $this->getContainer()->add( 'rucss_settings', Settings::class ) ->addArgument( $this->getContainer()->get( 'options' ) ) ->addArgument( $this->getContainer()->get( 'beacon' ) ); - // Instantiate the RUCSS Resources Table class. - $this->getContainer()->add( 'rucss_resources_table', ResourcesTable::class ); + $this->getContainer()->add( 'rucss_usedcss_table', UsedCSSTable::class ); - $this->getContainer()->add( 'rucss_resources_query', ResourcesQuery::class ); $this->getContainer()->add( 'rucss_database', Database::class ) - ->addArgument( $this->getContainer()->get( 'rucss_resources_table' ) ) ->addArgument( $this->getContainer()->get( 'rucss_usedcss_table' ) ); $this->getContainer()->add( 'rucss_used_css_query', UsedCSSQuery::class ); @@ -74,7 +67,6 @@ public function register() { $this->getContainer()->add( 'rucss_used_css_controller', UsedCSSController::class ) ->addArgument( $this->getContainer()->get( 'options' ) ) ->addArgument( $this->getContainer()->get( 'rucss_used_css_query' ) ) - ->addArgument( $this->getContainer()->get( 'rucss_resources_query' ) ) ->addArgument( $this->getContainer()->get( 'rucss_frontend_api_client' ) ) ->addArgument( $this->getContainer()->get( 'rucss_queue' ) ) ->addArgument( $this->getContainer()->get( 'rucss_filesystem' ) ); diff --git a/inc/Engine/Optimization/ServiceProvider.php b/inc/Engine/Optimization/ServiceProvider.php index 10dc45913e..f9a2ea4310 100644 --- a/inc/Engine/Optimization/ServiceProvider.php +++ b/inc/Engine/Optimization/ServiceProvider.php @@ -2,13 +2,13 @@ namespace WP_Rocket\Engine\Optimization; use WP_Rocket\Buffer\Config; -use WP_Rocket\Buffer\Optimization; +use WP_Rocket\Engine\Optimization\Buffer\Optimization; use WP_Rocket\Buffer\Tests; use WP_Rocket\Dependencies\League\Container\ServiceProvider\AbstractServiceProvider; use WP_Rocket\Engine\Optimization\GoogleFonts\Combine; use WP_Rocket\Engine\Optimization\GoogleFonts\CombineV2; use WP_Rocket\Engine\Optimization\GoogleFonts\Subscriber; -use WP_Rocket\Subscriber\Optimization\Buffer_Subscriber; +use WP_Rocket\Engine\Optimization\Buffer\Subscriber as BufferSubscriber; /** * Service provider for the WP Rocket optimizations @@ -56,7 +56,7 @@ public function register() { ->addArgument( $this->getContainer()->get( 'config' ) ); $this->getContainer()->add( 'buffer_optimization', Optimization::class ) ->addArgument( $this->getContainer()->get( 'tests' ) ); - $this->getContainer()->share( 'buffer_subscriber', Buffer_Subscriber::class ) + $this->getContainer()->share( 'buffer_subscriber', BufferSubscriber::class ) ->addArgument( $this->getContainer()->get( 'buffer_optimization' ) ) ->addTag( 'front_subscriber' ); $this->getContainer()->share( 'cache_dynamic_resource', CacheDynamicResource::class ) diff --git a/inc/Engine/Preload/AbstractPreload.php b/inc/Engine/Preload/AbstractPreload.php deleted file mode 100644 index c527eee68a..0000000000 --- a/inc/Engine/Preload/AbstractPreload.php +++ /dev/null @@ -1,166 +0,0 @@ -preload_process = $preload_process; - } - - /** - * Cancels any preload process running - * - * @since 3.2 - * @author Remy Perona - * - * @return void - */ - public function cancel_preload() { - delete_transient( $this->get_running_transient_name() ); - - $this->preload_process->cancel_process(); - } - - /** - * Checks if a process is already running - * - * @since 3.2.1.1 - * @author Remy Perona - * - * @return boolean - */ - public function is_process_running() { - return $this->preload_process->is_process_running(); - } - - /** - * Tell if mobile preload is enabled. - * - * @since 3.5 - * @author Grégory Viguier - * - * @return bool - */ - public function is_mobile_preload_enabled() { - return $this->preload_process->is_mobile_preload_enabled(); - } - - /** - * Get the prefix to prepend to the user agent used for preload to make a HTTP request detected as a mobile device. - * - * @since 3.5.0.2 - * @author Grégory Viguier - * - * @return string - */ - public function get_mobile_user_agent_prefix() { - return $this->preload_process->get_mobile_user_agent_prefix(); - } - - /** - * Get the number of preloaded URLs. - * - * @since 3.5 - * @author Grégory Viguier - * - * @return int|bool The number of preloaded URLs. False if the process is not running. - */ - public function get_number_of_preloaded_items() { - $nbr = get_transient( $this->get_running_transient_name() ); - - if ( false === $nbr ) { - return false; - } - - return absint( $nbr ); - } - - /** - * Create a unique identifier for a given URL. - * This is used for the "mobile items" - * - * @since 3.5 - * @author Grégory Viguier - * - * @param string $url A URL. - * @return string - */ - protected function get_url_identifier( $url ) { - if ( ! isset( $this->cache_query_strings ) ) { - $this->cache_query_strings = array_fill_keys( get_rocket_cache_query_string(), '' ); - - ksort( $this->cache_query_strings ); - } - - $path = (array) wp_parse_url( $url ); - $query = isset( $path['query'] ) ? $path['query'] : ''; - $path = isset( $path['path'] ) ? $path['path'] : ''; - $path = strtolower( trailingslashit( $path ) ); - - if ( ! $this->cache_query_strings ) { - return $path; - } - - parse_str( $query, $query_array ); - - $query_array = array_intersect_key( $query_array, $this->cache_query_strings ); - $query_array = array_merge( $this->cache_query_strings, $query_array ); - - return $path . '?' . http_build_query( $query_array ); - } - - /** - * Get the name of the transient that stores the number of preloaded URLs. - * - * @since 3.5 - * @author Grégory Viguier - * - * @return string - */ - protected function get_running_transient_name() { - return sprintf( 'rocket_%s_preload_running', static::PRELOAD_ID ); - } -} diff --git a/inc/Engine/Preload/AbstractProcess.php b/inc/Engine/Preload/AbstractProcess.php deleted file mode 100644 index 867b412d12..0000000000 --- a/inc/Engine/Preload/AbstractProcess.php +++ /dev/null @@ -1,258 +0,0 @@ - $item, - ]; - } elseif ( ! is_array( $item ) ) { - return []; - } - - if ( empty( $item['url'] ) ) { - return []; - } - - $item['mobile'] = ! empty( $item['mobile'] ); - if ( empty( $item['source'] ) ) { - $item['source'] = is_string( $source ) ? $source : ''; - } - - return $item; - } - - /** - * Tell if mobile preload is enabled. - * - * @since 3.5 - * @author Grégory Viguier - * - * @return bool - */ - public function is_mobile_preload_enabled() { - $enabled = get_rocket_option( 'manual_preload' ) && get_rocket_option( 'cache_mobile' ) && get_rocket_option( 'do_caching_mobile_files' ); - - /** - * Tell if mobile preload is enabled. - * - * @since 3.5 - * @author Grégory Viguier - * - * @param bool $enabled True when enabled. False otherwise. - * @param string $action Specific action identifier for the current preload type. - */ - return (bool) apply_filters( 'rocket_mobile_preload_enabled', $enabled, $this->action ); - } - - /** - * Get the user agent to use for the item. - * - * @since 3.5 - * @author Grégory Viguier - * - * @param array $item { - * The item to preload: an array containing the following values. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. Optional. - * } - * @return string - */ - public function get_item_user_agent( array $item ) { - if ( $item['mobile'] ) { - return $this->get_mobile_user_agent_prefix() . ' WP Rocket/Preload'; - } - - return 'WP Rocket/Preload'; - } - - /** - * Get the prefix to prepend to the user agent used for preload to make a HTTP request detected as a mobile device. - * - * @since 3.5.0.2 - * @author Grégory Viguier - * - * @return string - */ - public function get_mobile_user_agent_prefix() { - $prefix = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'; - - /** - * Filter the prefix to prepend to the user agent used for preload to make a HTTP request detected as a mobile device. - * - * @since 3.5.0.2 - * @author Grégory Viguier - * - * @param string $prefix The prefix. - */ - $new_prefix = apply_filters( 'rocket_mobile_preload_user_agent_prefix', $prefix ); - - if ( empty( $new_prefix ) || ! is_string( $new_prefix ) ) { - return $prefix; - } - - return $new_prefix; - } - - /** - * Preload the URL provided by $item. - * - * @since 3.5 - * @author Grégory Viguier - * - * @param array|string $item { - * The item to preload: an array containing the following values. - * A string is allowed for backward compatibility (for the URL). - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. - * @type string $source An identifier related to the source of the preload. - * } - * @return bool True when preload has been launched. False otherwise. - */ - protected function maybe_preload( $item ) { - $item = $this->format_item( $item ); - - if ( ! $item || $this->is_already_cached( $item ) ) { - return false; - } - - $result = $this->preload( $item ); - - usleep( absint( get_rocket_option( 'sitemap_preload_url_crawl', 500000 ) ) ); - - return ! is_wp_error( $result ); - } - - /** - * Preload the URL provided by $item. - * - * @since 3.5 - * @author Grégory Viguier - * - * @param array $item { - * The item to preload: an array containing the following values. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. - * @type string $source An identifier related to the source of the preload. - * } - * @return array|WP_Error An array on success. A WP_Error object on failure. - */ - private function preload( array $item ) { - /** - * Filters the arguments for the partial preload request. - * - * @since 2.10.8 'rocket_preload_url_request_args' - * @since 3.2 'rocket_partial_preload_url_request_args' - * @since 3.5 "rocket_{$this->action}_url_request_args" - * @author Remy Perona - * - * @param array $args Request arguments. - */ - $args = apply_filters( - "rocket_{$this->action}_url_request_args", - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => $this->get_item_user_agent( $item ), - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - ] - ); - - return wp_remote_get( esc_url_raw( $item['url'] ), $args ); - } - - /** - * Check if the cache file for $item already exists. - * - * @since 3.2 - * @since 3.5 $item is an array. - * @author Remy Perona - * - * @param array $item { - * The item to preload: an array containing the following values. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. - * @type string $source An identifier related to the source of the preload. - * } - * @return bool - */ - protected function is_already_cached( $item ) { - static $https; - - if ( ! isset( $https ) ) { - $https = is_ssl() && get_rocket_option( 'cache_ssl' ) ? '-https' : ''; - } - - $url = get_rocket_parse_url( $item['url'] ); - - /** This filter is documented in inc/functions/htaccess.php */ - if ( apply_filters( 'rocket_url_no_dots', false ) ) { - $url['host'] = str_replace( '.', '_', $url['host'] ); - } - - $url['path'] = trailingslashit( $url['path'] ); - - if ( '' !== $url['query'] ) { - $url['query'] = '#' . $url['query'] . '/'; - } - - $mobile = $item['mobile'] ? '-mobile' : ''; - $file_cache_path = rocket_get_constant( 'WP_ROCKET_CACHE_PATH' ) . $url['host'] . strtolower( $url['path'] . $url['query'] ) . 'index' . $mobile . $https . '.html'; - - return rocket_direct_filesystem()->exists( $file_cache_path ); - } - - /** - * Stop the process. - * - * @since 3.5 - * @author Grégory Viguier - */ - public function cancel_process() { - if ( method_exists( get_parent_class( $this ), 'cancel_process' ) ) { - parent::cancel_process(); - } - } -} diff --git a/inc/Engine/Preload/Activation/Activation.php b/inc/Engine/Preload/Activation/Activation.php new file mode 100644 index 0000000000..85350a3946 --- /dev/null +++ b/inc/Engine/Preload/Activation/Activation.php @@ -0,0 +1,93 @@ +queue = $queue; + $this->query = $query; + } + + /** + * Launch preload on activation. + */ + public function activate() { + /** + * Action that fires before the preload does. + */ + do_action( 'rocket_preload_activation' ); + $this->queue->add_job_preload_job_load_initial_sitemap_async(); + } + + /** + * Disable cron and jobs on update. + * + * @param string $new_version new version from the plugin. + * @param string $old_version old version from the plugin. + * @return void + */ + public function clean_on_update( $new_version, $old_version ) { + if ( version_compare( $old_version, '3.12.0', '>=' ) ) { + return; + } + + $this->query->remove_all(); + + $this->queue->cancel_pending_jobs(); + + if ( ! wp_next_scheduled( 'rocket_preload_process_pending' ) ) { + return; + } + + wp_clear_scheduled_hook( 'rocket_preload_process_pending' ); + } + + /** + * Reload sitemap on update. + * + * @param string $new_version new version from the plugin. + * @param string $old_version old version from the plugin. + * @return void + */ + public function refresh_on_update( $new_version, $old_version ) { + if ( version_compare( $new_version, '3.12.0', '>=' ) ) { + return; + } + $this->queue->add_job_preload_job_load_initial_sitemap_async(); + } + + /** + * Clear preload on deactivation. + */ + public function deactivation() { + wp_clear_scheduled_hook( 'rocket_preload_clean_rows_time_event' ); + wp_clear_scheduled_hook( 'rocket_preload_process_pending' ); + wp_clear_scheduled_hook( 'rocket_preload_revert_old_in_progress_rows' ); + } +} diff --git a/inc/Engine/Preload/Activation/ServiceProvider.php b/inc/Engine/Preload/Activation/ServiceProvider.php new file mode 100755 index 0000000000..361cad3a09 --- /dev/null +++ b/inc/Engine/Preload/Activation/ServiceProvider.php @@ -0,0 +1,60 @@ +getContainer()->get( 'options' ); + + $this->getContainer()->add( 'preload_caches_table', CacheTable::class ); + $this->getContainer()->get( 'preload_caches_table' ); + + $this->getContainer()->add( 'preload_caches_query', CacheQuery::class ) + ->addArgument( new Logger() ); + $cache_query = $this->getContainer()->get( 'preload_caches_query' ); + + $this->getContainer()->add( 'preload_queue', Queue::class ); + $queue = $this->getContainer()->get( 'preload_queue' ); + + $this->getContainer()->add( 'preload_activation', Activation::class ) + ->addArgument( $queue ) + ->addArgument( $cache_query ); + + $this->getContainer()->add( 'preload_activation_subscriber', Subscriber::class ) + ->addArgument( $this->getContainer()->get( 'preload_activation' ) ) + ->addArgument( $options ); + } +} diff --git a/inc/Engine/Preload/Activation/Subscriber.php b/inc/Engine/Preload/Activation/Subscriber.php new file mode 100644 index 0000000000..d7e1d30c20 --- /dev/null +++ b/inc/Engine/Preload/Activation/Subscriber.php @@ -0,0 +1,68 @@ +activation = $activation; + $this->options = $options; + } + + /** + * Return an array of events that this subscriber wants to listen to. + * + * @return array + */ + public static function get_subscribed_events() { + return [ + 'rocket_activation' => [ 'activate', 15 ], + 'wp_rocket_first_install' => 'first_install', + ]; + } + + /** + * Run actions on activation. + * + * @return void + */ + public function activate() { + if ( ! $this->options->get( 'manual_preload', false ) ) { + return; + } + $this->activation->activate(); + } + + /** + * Run actions on first install. + * + * @return void + */ + public function first_install() { + $this->activation->activate(); + } +} diff --git a/inc/Engine/Preload/Admin/Settings.php b/inc/Engine/Preload/Admin/Settings.php new file mode 100644 index 0000000000..8e2589003f --- /dev/null +++ b/inc/Engine/Preload/Admin/Settings.php @@ -0,0 +1,141 @@ +options = $options; + } + + /** + * Maybe display the preload notice. + * + * @return void + */ + public function maybe_display_preload_notice() { + if ( ! $this->can_display_notice() ) { + return; + } + + if ( false === get_transient( 'wpr_preload_running' ) ) { + return; + } + + $message = sprintf( + // translators: %1$s = plugin name. + __( '%1$s: Please wait. The preload service is processing your pages.', 'rocket' ), + 'WP Rocket' + ); + + rocket_notice_html( + [ + 'status' => 'info', + 'message' => $message, + 'id' => 'rocket-notice-preload-processing', + ] + ); + } + + /** + * Checks if we can display the Preload notices. + * + * @return bool + */ + private function can_display_notice(): bool { + $screen = get_current_screen(); + + if ( + isset( $screen->id ) + && + 'settings_page_wprocket' !== $screen->id + ) { + return false; + } + + if ( ! current_user_can( 'rocket_manage_options' ) ) { + return false; + } + + return $this->is_enabled(); + } + + /** + * Display missing as table notice if they are not present. + * + * @return void + */ + public function maybe_display_as_missed_tables_notice() { + + if ( function_exists( 'get_current_screen' ) && 'tools_page_action-scheduler' === get_current_screen()->id ) { + return; + } + + if ( $this->is_valid_as_tables() ) { + return; + } + + $message = sprintf( + // translators: %1$s = plugin name, %2$s = opening anchor tag, %3$s = closing anchor tag. + __( '%1$s: We detected missing database table related to Action Scheduler. Please visit the following %2$sURL%3$s to recreate it, as it is needed for WP Rocket to work correctly.', 'rocket' ), + 'WP Rocket', + '', + '' + ); + rocket_notice_html( + [ + 'status' => 'error', + 'message' => $message, + 'id' => 'rocket-notice-as-missed-tables', + ] + ); + } + + /** + * Determines if Preload option is enabled. + * + * @return boolean + */ + public function is_enabled() : bool { + return (bool) $this->options->get( 'manual_preload', 0 ); + } + + /** + * Checks if Action scheduler tables are there or not. + * + * @since 3.11.0.3 + * + * @return bool + */ + private function is_valid_as_tables() { + $cached_count = get_transient( 'rocket_preload_as_tables_count' ); + if ( false !== $cached_count && ! is_admin() ) { // Stop caching in admin UI. + return 4 === (int) $cached_count; + } + + global $wpdb; + + // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery,WordPress.DB.DirectDatabaseQuery.NoCaching + $found_as_tables = $wpdb->get_col( + $wpdb->prepare( 'SHOW TABLES LIKE %s', $wpdb->prefix . 'actionscheduler%' ) + ); + + set_transient( 'rocket_preload_as_tables_count', count( $found_as_tables ), rocket_get_constant( 'DAY_IN_SECONDS', 24 * 60 * 60 ) ); + + return 4 === count( $found_as_tables ); + } +} diff --git a/inc/Engine/Preload/Admin/Subscriber.php b/inc/Engine/Preload/Admin/Subscriber.php new file mode 100644 index 0000000000..8b1b7295b6 --- /dev/null +++ b/inc/Engine/Preload/Admin/Subscriber.php @@ -0,0 +1,70 @@ +options = $options; + $this->settings = $settings; + } + + /** + * Return an array of events that this subscriber wants to listen to. + * + * @return array + */ + public static function get_subscribed_events() { + return [ + 'admin_notices' => [ + 'maybe_display_preload_notice', + 'maybe_display_as_missed_tables_notice', + ], + ]; + } + + /** + * Maybe display the preload notice. + * + * @return void + */ + public function maybe_display_preload_notice() { + $this->settings->maybe_display_preload_notice(); + } + + /** + * Display a notice when Action Scheduler tables are missing. + * + * @return void + */ + public function maybe_display_as_missed_tables_notice() { + $this->settings->maybe_display_as_missed_tables_notice(); + } +} diff --git a/inc/Engine/Preload/Controller/CheckExcludedTrait.php b/inc/Engine/Preload/Controller/CheckExcludedTrait.php new file mode 100644 index 0000000000..7ca22a16c9 --- /dev/null +++ b/inc/Engine/Preload/Controller/CheckExcludedTrait.php @@ -0,0 +1,17 @@ +settings = $settings; + $this->query = $cache; + $this->queue = $queue; + } + + /** + * Check if the preload is finished. + * + * @return void + */ + public function check_finished() { + if ( ( ! $this->queue->has_remaining_tasks() && ! $this->query->has_pending_jobs() ) || ! $this->settings->is_enabled() ) { + delete_transient( 'wpr_preload_running' ); + return; + } + + $this->queue->add_job_preload_job_check_finished_async(); + } +} diff --git a/inc/Engine/Preload/Controller/ClearCache.php b/inc/Engine/Preload/Controller/ClearCache.php new file mode 100644 index 0000000000..9714512e72 --- /dev/null +++ b/inc/Engine/Preload/Controller/ClearCache.php @@ -0,0 +1,62 @@ +query = $query; + } + + /** + * Clear urls listed. + * + * @param array $urls urls to clean. + * @return void + */ + public function partial_clean( array $urls ) { + foreach ( $urls as $url ) { + if ( ! $this->is_excluded( $url ) ) { + $this->query->create_or_update( + [ + 'url' => $url, + 'status' => 'pending', + ] + ); + } + } + } + + /** + * Clear all urls. + * + * @return void + */ + public function full_clean() { + $this->query->set_all_to_pending(); + } + + /** + * Delete a URL from the preload. + * + * @param string $url URL to delete. + * @return void + */ + public function delete_url( string $url ) { + $this->query->delete_by_url( $url ); + } +} diff --git a/inc/Engine/Preload/Controller/CrawlHomepage.php b/inc/Engine/Preload/Controller/CrawlHomepage.php new file mode 100644 index 0000000000..2c9c26df22 --- /dev/null +++ b/inc/Engine/Preload/Controller/CrawlHomepage.php @@ -0,0 +1,66 @@ + 10, + 'user-agent' => $user_agent, + 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + ] + ); + + $response = wp_remote_get( esc_url_raw( home_url() ), $args ); + + if ( is_wp_error( $response ) ) { + return false; + } + + $response_code = wp_remote_retrieve_response_code( $response ); + + if ( 200 !== $response_code ) { + return false; + } + + $content = wp_remote_retrieve_body( $response ); + + preg_match_all( '/]+?[\s"\']|)href\s*=\s*(["\'])(?[^"\']+)\1/imU', $content, $urls ); + + $home_url = home_url(); + + $urls = array_map( + static function ( $url ) use ( $home_url ) { + if ( wp_parse_url( $url, PHP_URL_HOST ) || strpos( $url, '#' ) !== false ) { + return $url; + } + return trailingslashit( $home_url ) . ltrim( wp_parse_url( $url, PHP_URL_PATH ), '/' ); + }, + $urls['href'] + ); + + $urls = array_filter( + $urls, + static function ( $url ) use ( $home_url ) { + return strpos( $url, $home_url ) !== false && strpos( $url, '#' ) === false; + } + ); + + return array_values( array_unique( $urls ) ); + } +} diff --git a/inc/Engine/Preload/Controller/LoadInitialSitemap.php b/inc/Engine/Preload/Controller/LoadInitialSitemap.php new file mode 100755 index 0000000000..9fcdc78e77 --- /dev/null +++ b/inc/Engine/Preload/Controller/LoadInitialSitemap.php @@ -0,0 +1,189 @@ +queue = $queue; + $this->query = $query; + $this->crawl_homepage = $crawl_homepage; + } + + /** + * Load the initial sitemap to the queue. + */ + public function load_initial_sitemap() { + + /** + * Filter custom preload URL. + * + * @param array Array of custom preload URL + */ + $urls = apply_filters( 'rocket_preload_load_custom_urls', [] ); + $urls [] = home_url(); + $urls = array_filter( $urls ); + + foreach ( $urls as $url ) { + $this->query->create_or_nothing( + [ + 'url' => $url, + ] + ); + $this->queue->add_job_preload_job_preload_url_async( $url ); + } + + /** + * Filter sitemaps URL. + * + * @param array Array of sitemaps URL + */ + $sitemaps = apply_filters( 'rocket_sitemap_preload_list', [] ); + if ( count( $sitemaps ) > 0 ) { + /** + * Filter sitemaps URL that will be preloaded. + * + * @param array Array of sitemaps URL + * @returns array + */ + $sitemaps = apply_filters( 'rocket_preload_sitemap_before_queue', $sitemaps ); + $this->add_task_to_queue( $sitemaps ); + return; + } + + $sitemap = $this->load_wordpress_sitemap(); + + if ( ! $sitemap ) { + $this->add_homepage_urls(); + return; + } + /** + * Filter sitemaps URL that will be preloaded. + * + * @param array Array of sitemaps URL + * @returns array + */ + $sitemaps = apply_filters( 'rocket_preload_sitemap_before_queue', [ $sitemap ] ); + $this->add_task_to_queue( $sitemaps ); + } + + /** + * Add homepage urls to the preload. + * + * @return void + */ + protected function add_homepage_urls() { + $urls = $this->crawl_homepage->crawl(); + + if ( ! $urls ) { + return; + } + foreach ( $urls as $url ) { + $this->query->create_or_nothing( + [ + 'url' => $url, + ] + ); + } + } + + /** + * Add initial sitemap tasks. + * + * @param array $sitemaps sitemap used for creating tasks. + */ + protected function add_task_to_queue( array $sitemaps ) { + set_transient( 'wpr_preload_running', true ); + + foreach ( $sitemaps as $sitemap ) { + $this->queue->add_job_preload_job_parse_sitemap_async( $sitemap ); + } + $this->queue->add_job_preload_job_check_finished_async(); + } + + /** + * Load default WordPress sitemap. + * + * @return false|string + */ + protected function load_wordpress_sitemap() { + if ( ! $this->sitemaps_enabled() ) { + return false; + } + + $sitemaps = wp_sitemaps_get_server(); + + if ( ! $sitemaps ) { + return false; + } + + return $sitemaps->index->get_index_url(); + } + + /** + * Cancel the preloading. + * + * @return void + */ + public function cancel_preload() { + $this->queue->cancel_pending_jobs(); + $this->query->revert_in_progress(); + } + + /** + * Check if sitemap is enabled. + * + * @return bool + */ + protected function sitemaps_enabled() { + $is_enabled = (bool) get_option( 'blog_public' ); + + /** + * Filters whether XML Sitemaps are enabled or not. + * + * When XML Sitemaps are disabled via this filter, rewrite rules are still + * in place to ensure a 404 is returned. + * + * @see WP_Sitemaps::register_rewrites() + * + * @since 5.5.0 + * + * @param bool $is_enabled Whether XML Sitemaps are enabled or not. Defaults + * to true for public sites. + */ + return (bool) apply_filters( 'wp_sitemaps_enabled', $is_enabled ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + } +} diff --git a/inc/Engine/Preload/Controller/PreloadUrl.php b/inc/Engine/Preload/Controller/PreloadUrl.php new file mode 100755 index 0000000000..5abc3274ba --- /dev/null +++ b/inc/Engine/Preload/Controller/PreloadUrl.php @@ -0,0 +1,218 @@ +options = $options; + $this->query = $rocket_cache; + $this->queue = $queue; + $this->filesystem = $filesystem; + } + + /** + * Preload an url. + * + * @param string $url url to preload. + * @return void + */ + public function preload_url( string $url ) { + + $is_mobile = $this->options->get( 'do_caching_mobile_files', false ); + if ( $this->is_already_cached( $url ) && ( ! $is_mobile || $this->is_already_cached( $url, true ) ) ) { + $this->query->make_status_complete( $url ); + return; + } + + $requests = [ + [ + 'url' => $url, + 'is_mobile' => false, + 'headers' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + ], + ], + ]; + + if ( $is_mobile ) { + $requests[] = [ + 'url' => $url, + 'headers' => [ + 'user-agent' => $this->get_mobile_user_agent_prefix(), + ], + 'is_mobile' => true, + ]; + } + + /** + * Filters to modify requests done to preload an url. + * + * @param array $requests Requests that will be done. + */ + $requests = apply_filters( 'rocket_preload_before_preload_url', $requests ); + + $requests = array_filter( $requests ); + + foreach ( $requests as $request ) { + if ( ! isset( $request['url'] ) || ! is_string( $request['url'] ) ) { + continue; + } + + $headers = isset( $request['headers'] ) && is_array( $request['headers'] ) ? $request['headers'] : []; + + $headers = array_merge( + $headers, + [ + 'blocking' => false, + 'timeout' => 0.01, + /** + * Filter to activate the verification of SSl. + * + * @param string $activate is the verification activated. + */ + 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound + ] + ); + + /** + * Filters the arguments for the preload request. + * + * @param array $headers Request arguments. + */ + $headers = apply_filters( + 'rocket_preload_url_request_args', + $headers + ); + + wp_safe_remote_get( + user_trailingslashit( $request['url'] ), + $headers + ); + /** + * Filter the delay between each preload request. + * + * @param float $delay_between the defined delay. + * @returns float + */ + $delay_between = apply_filters( 'rocket_preload_delay_between_requests', 500000 ); + + usleep( $delay_between ); + } + + } + + /** + * Get the prefix to prepend to the user agent used for preload to make a HTTP request detected as a mobile device. + * + * @return string + */ + protected function get_mobile_user_agent_prefix() { + $prefix = 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'; + + /** + * Filter the prefix to prepend to the user agent used for preload to make a HTTP request detected as a mobile device. + * + * @param string $prefix The prefix. + */ + $new_prefix = apply_filters( 'rocket_mobile_preload_user_agent_prefix', $prefix ); + + if ( empty( $new_prefix ) || ! is_string( $new_prefix ) ) { + return $prefix; + } + + return $new_prefix; + } + + /** + * Process pending jobs inside CRON iteration. + * + * @return void + */ + public function process_pending_jobs() { + $count = apply_filters( 'rocket_preload_cache_pending_jobs_cron_rows_count', 100 ); + $rows = $this->query->get_pending_jobs( $count ); + foreach ( $rows as $index => $row ) { + $this->query->make_status_inprogress( $row->id ); + $this->queue->add_job_preload_job_preload_url_async( $row->url ); + + } + } + + /** + * Check if the cache file for $item already exists. + * + * @param string $url The URL to preload. + * @param bool $is_mobile is mobile text. + * + * @return bool + */ + public function is_already_cached( string $url, bool $is_mobile = false ) { + static $https; + + if ( ! isset( $https ) ) { + $https = is_ssl() && $this->options->get( 'cache_ssl' ) ? '-https' : ''; + } + + $url = get_rocket_parse_url( $url ); + + /** This filter is documented in inc/functions/htaccess.php */ + if ( apply_filters( 'rocket_url_no_dots', false ) ) { + $url['host'] = str_replace( '.', '_', $url['host'] ); + } + + $url['path'] = trailingslashit( $url['path'] ); + + if ( '' !== $url['query'] ) { + $url['query'] = '#' . $url['query'] . '/'; + } + + $mobile = $is_mobile ? '-mobile' : ''; + + $file_cache_path = rocket_get_constant( 'WP_ROCKET_CACHE_PATH' ) . $url['host'] . strtolower( $url['path'] . $url['query'] ) . 'index' . $mobile . $https . '.html'; + + return $this->filesystem->exists( $file_cache_path ); + } +} diff --git a/inc/Engine/Preload/Controller/Queue.php b/inc/Engine/Preload/Controller/Queue.php new file mode 100644 index 0000000000..1afe25f3ca --- /dev/null +++ b/inc/Engine/Preload/Controller/Queue.php @@ -0,0 +1,124 @@ +add_async( 'rocket_preload_job_load_initial_sitemap' ); + } + + /** + * Add Async parse sitemap job with url. + * + * @param string $sitemap_url sitemap url. + * + * @return string + */ + public function add_job_preload_job_parse_sitemap_async( string $sitemap_url ) { + return $this->add_async( + 'rocket_preload_job_parse_sitemap', + [ + $sitemap_url, + ] + ); + } + + /** + * Add Async preload url job with url. + * + * @param string $url url to preload. + * + * @return string + */ + public function add_job_preload_job_preload_url_async( string $url ) { + return $this->add_async( + 'rocket_preload_job_preload_url', + [ + $url, + ] + ); + } + + + /** + * Add a job that check if the preload is finished. + * + * @return string + */ + public function add_job_preload_job_check_finished_async() { + + if ( $this->job_preload_job_check_finished_async_exists() ) { + return ''; + } + + return $this->schedule_single( time() + MINUTE_IN_SECONDS, 'rocket_preload_job_check_finished', [ time() ] ); + } + + /** + * Check if a task job_preload_job_check_finished_async_exists already exists. + * + * @return bool + */ + public function job_preload_job_check_finished_async_exists() { + $row_found = $this->search( + [ + 'hook' => 'rocket_preload_job_check_finished', + 'status' => ActionScheduler_Store::STATUS_PENDING, + ], + 'ids' + ); + + return count( $row_found ) > 0; + } + + /** + * Check if some task is remaining. + * + * @return bool + */ + public function has_remaining_tasks() { + $parse_sitemap = $this->search( + [ + 'hook' => 'rocket_preload_job_parse_sitemap', + 'status' => ActionScheduler_Store::STATUS_PENDING, + ], + 'ids' + ); + $preload_url = $this->search( + [ + 'hook' => 'rocket_preload_job_preload_url', + 'status' => ActionScheduler_Store::STATUS_PENDING, + ], + 'ids' + ); + + return count( $parse_sitemap ) > 0 || count( $preload_url ) > 0; + } + + /** + * Cancel pending jobs. + * + * @return void + */ + public function cancel_pending_jobs() { + $this->cancel_all( '' ); + } + +} diff --git a/inc/Engine/Preload/Cron/Subscriber.php b/inc/Engine/Preload/Cron/Subscriber.php new file mode 100644 index 0000000000..88cf7fe936 --- /dev/null +++ b/inc/Engine/Preload/Cron/Subscriber.php @@ -0,0 +1,249 @@ +settings = $settings; + $this->query = $query; + $this->preload_controller = $preload_controller; + $this->queue_runner = $preload_queue_runner; + } + + /** + * Return an array of events that this subscriber listens to. + * + * @return array + */ + public static function get_subscribed_events() { + return [ + 'rocket_preload_clean_rows_time_event' => 'remove_old_rows', + 'rocket_preload_process_pending' => 'process_pending_urls', + 'rocket_preload_revert_old_in_progress_rows' => 'revert_old_in_progress_rows', + 'cron_schedules' => [ + [ 'add_interval' ], + [ 'add_revert_old_in_progress_interval' ], + ], + 'init' => [ + [ 'schedule_clean_not_commonly_used_rows' ], + [ 'schedule_pending_jobs' ], + [ 'schedule_revert_old_in_progress_rows' ], + [ 'maybe_init_preload_queue' ], + ], + ]; + } + + /** + * Schedule clean from removing of old urls. + * + * @return void + */ + public function schedule_clean_not_commonly_used_rows() { + + if ( wp_next_scheduled( 'rocket_preload_clean_rows_time_event' ) ) { + return; + } + + wp_schedule_event( time() + 10 * MINUTE_IN_SECONDS, 'weekly', 'rocket_preload_clean_rows_time_event' ); + } + + /** + * Preload Url jobs. + * + * @return void + */ + public function process_pending_urls() { + if ( ! $this->settings->is_enabled() ) { + return; + } + + $this->preload_controller->process_pending_jobs(); + } + + /** + * Add the interval for the cron. + * + * @param array $schedules Cron schedules. + * @return mixed + */ + public function add_interval( $schedules ) { + if ( ! $this->settings->is_enabled() ) { + return $schedules; + } + + /** + * Filters the cron interval. + * + * @since 3.11 + * + * @param int $interval Interval in seconds. + */ + $interval = apply_filters( 'rocket_preload_pending_jobs_cron_interval', 1 * rocket_get_constant( 'MINUTE_IN_SECONDS', 60 ) ); + + $schedules['rocket_preload_process_pending'] = [ + 'interval' => $interval, + 'display' => esc_html__( 'WP Rocket Preload pending jobs', 'rocket' ), + ]; + + return $schedules; + } + + /** + * Add the interval for the cron. + * + * @param array $schedules Cron schedules. + * @return mixed + */ + public function add_revert_old_in_progress_interval( $schedules ) { + if ( ! $this->settings->is_enabled() ) { + return $schedules; + } + + /** + * Filters the cron interval. + * + * @since 3.11 + * + * @param int $interval Interval in seconds. + */ + $interval = apply_filters( 'rocket_preload_revert_old_in_progress_rows_cron_interval', 12 * rocket_get_constant( 'HOUR_IN_SECONDS', 60 * 60 ) ); + + $schedules['rocket_revert_old_in_progress_rows'] = [ + 'interval' => $interval, + 'display' => esc_html__( 'WP Rocket Preload revert stuck in-progress jobs', 'rocket' ), + ]; + + return $schedules; + } + + /** + * Schedule pending preload urls. + * + * @return void + */ + public function schedule_pending_jobs() { + + if ( + ! $this->settings->is_enabled() + && + wp_next_scheduled( 'rocket_preload_process_pending' ) + ) { + wp_clear_scheduled_hook( 'rocket_preload_process_pending' ); + + return; + } + + if ( ! $this->settings->is_enabled() ) { + return; + } + + if ( wp_next_scheduled( 'rocket_preload_process_pending' ) ) { + return; + } + + wp_schedule_event( time() + MINUTE_IN_SECONDS, 'rocket_preload_process_pending', 'rocket_preload_process_pending' ); + } + + /** + * Schedule revert stuck in progress row cron. + * + * @return void + */ + public function schedule_revert_old_in_progress_rows() { + if ( + ! $this->settings->is_enabled() + && + wp_next_scheduled( 'rocket_preload_revert_old_in_progress_rows' ) + ) { + wp_clear_scheduled_hook( 'rocket_preload_revert_old_in_progress_rows' ); + + return; + } + + if ( ! $this->settings->is_enabled() ) { + return; + } + + if ( wp_next_scheduled( 'rocket_preload_revert_old_in_progress_rows' ) ) { + return; + } + + wp_schedule_event( time() + MINUTE_IN_SECONDS, 'rocket_revert_old_in_progress_rows', 'rocket_preload_revert_old_in_progress_rows' ); + } + + /** + * Remove old urls. + * + * @return void + */ + public function remove_old_rows() { + $this->query->remove_all_not_accessed_rows(); + } + + /** + * Remove old in-progress urls. + * + * @return void + */ + public function revert_old_in_progress_rows() { + $this->query->revert_old_in_progress(); + } + + /** + * Set the preload queue runner. + * + * @return void + */ + public function maybe_init_preload_queue() { + if ( ! $this->settings->is_enabled() ) { + return; + } + + $this->queue_runner->init(); + + } +} diff --git a/inc/Engine/Preload/Database/Queries/Cache.php b/inc/Engine/Preload/Database/Queries/Cache.php new file mode 100755 index 0000000000..b0b14fd666 --- /dev/null +++ b/inc/Engine/Preload/Database/Queries/Cache.php @@ -0,0 +1,493 @@ +logger = $logger; + } + + /** + * Create new resource row or update its contents if not created before. + * + * @since 3.9 + * + * @param array $resource Resource array. + * + * @return bool + */ + public function create_or_update( array $resource ) { + $url = untrailingslashit( strtok( $resource['url'], '?' ) ); + + // check the database if those resources added before. + $rows = $this->query( + [ + 'url' => $url, + ], + false + ); + + if ( count( $rows ) === 0 ) { + // Create this new row in DB. + $resource_id = $this->add_item( + [ + 'url' => $url, + 'status' => key_exists( 'status', $resource ) ? $resource['status'] : 'pending', + 'last_accessed' => current_time( 'mysql', true ), + ] + ); + + if ( $resource_id ) { + return $resource_id; + } + + $this->logger->error( "Cannot insert {$resource['url']} into {$this->table_name}" ); + + return false; + } + + $db_row = array_pop( $rows ); + + $data = [ + 'url' => $url, + 'status' => $resource['status'], + 'modified' => current_time( 'mysql', true ), + ]; + + if ( key_exists( 'last_accessed', $resource ) && (bool) $resource['last_accessed'] ) { + $data['last_accessed'] = current_time( 'mysql', true ); + } + + // Update this row with the new content. + $this->update_item( + $db_row->id, + $data + ); + + return $db_row->id; + } + + /** + * Create new resource row or update its contents if not created before. + * + * @since 3.9 + * + * @param array $resource Resource array. + * + * @return bool + */ + public function create_or_nothing( array $resource ) { + $url = strtok( $resource['url'], '?' ); + + // check the database if those resources added before. + $rows = $this->query( + [ + 'url' => untrailingslashit( $resource['url'] ), + ], + false + ); + + if ( count( $rows ) > 0 ) { + return false; + } + + // Create this new row in DB. + $resource_id = $this->add_item( + [ + 'url' => untrailingslashit( $url ), + 'status' => key_exists( 'status', $resource ) ? $resource['status'] : 'pending', + 'last_accessed' => current_time( 'mysql', true ), + ] + ); + + if ( $resource_id ) { + return $resource_id; + } + + $this->logger->error( "Cannot insert {$resource['url']} into {$this->table_name}" ); + + return false; + } + + /** + * Get all rows with the same url (desktop and mobile versions). + * + * @param string $url Page url. + * + * @return array|false + */ + public function get_rows_by_url( string $url ) { + + $url = strtok( $url, '?' ); + + $query = $this->query( + [ + 'url' => untrailingslashit( $url ), + ] + ); + + if ( empty( $query ) ) { + return false; + } + + return $query; + } + + /** + * Delete DB row by url. + * + * @param string $url Page url to be deleted. + * + * @return bool + */ + public function delete_by_url( string $url ) { + $items = $this->get_rows_by_url( $url ); + + if ( ! $items ) { + return false; + } + + $deleted = true; + foreach ( $items as $item ) { + $deleted = $deleted && $this->delete_item( $item->id ); + } + + return $deleted; + } + + /** + * Get all preload caches which were not accessed in the last month. + * + * @return array + */ + public function get_old_cache() : array { + // Get the database interface. + $db = $this->get_db(); + + // Bail if no database interface is available. + if ( empty( $db ) ) { + return []; + } + + $prefixed_table_name = $db->prefix . $this->table_name; + $query = "SELECT id FROM `$prefixed_table_name` WHERE `last_accessed` <= date_sub(now(), interval 1 month)"; + $rows_affected = $db->get_results( $query ); + + return $rows_affected; + } + + /** + * Remove all completed rows one by one. + * + * @return void + */ + public function remove_all_not_accessed_rows() { + $rows = $this->get_old_cache(); + + foreach ( $rows as $row ) { + $this->delete_item( $row->id ); + } + } + + /** + * Fetch pending jobs. + * + * @param int $total total of jobs to fetch. + * @return array + */ + public function get_pending_jobs( int $total ) { + + return $this->query( + [ + 'number' => $total, + 'status' => 'pending', + 'fields' => [ + 'id', + 'url', + ], + 'job_id__not_in' => [ + 'not_in' => '', + ], + 'orderby' => 'modified', + 'order' => 'asc', + ] + ); + } + + /** + * Change the status from the task to inprogress. + * + * @param int $id id from the task. + * @return bool + */ + public function make_status_inprogress( int $id ) { + return $this->update_item( + $id, + [ + 'status' => 'in-progress', + ] + ); + } + + /** + * Make the status from the task to complete. + * + * @param string $url url from the task. + * @return bool + */ + public function make_status_complete( string $url ) { + $tasks = $this->query( + [ + 'url' => $url, + ] + ); + + if ( count( $tasks ) === 0 ) { + return false; + } + + $task = array_pop( $tasks ); + + return $this->update_item( + $task->id, + [ + 'status' => 'completed', + ] + ); + } + + /** + * Check if pending jobs are remaining. + * + * @return bool + */ + public function has_pending_jobs() { + $pending_count = $this->query( + [ + 'count' => true, + 'status' => 'pending', + ] + ); + return 0 !== $pending_count; + } + + /** + * Revert in-progress urls. + * + * @return void + */ + public function revert_in_progress() { + $in_progress_list = $this->query( + [ + 'status' => 'in-progress', + ] + ); + foreach ( $in_progress_list as $in_progress ) { + $this->update_item( + $in_progress->id, + [ + 'status' => 'pending', + ] + ); + } + } + + /** + * Revert old in-progress rows + */ + public function revert_old_in_progress() { + // Get the database interface. + $db = $this->get_db(); + + // Bail if no database interface is available. + if ( empty( $db ) ) { + return false; + } + + $prefixed_table_name = $db->prefix . $this->table_name; + $db->query( "UPDATE `$prefixed_table_name` SET status = 'pending' WHERE status = 'in-progress' AND `modified` <= date_sub(now(), interval 12 hour)" ); + } + + /** + * Set all rows to pending. + */ + public function set_all_to_pending() { + // Get the database interface. + $db = $this->get_db(); + + // Bail if no database interface is available. + if ( empty( $db ) ) { + return false; + } + + $prefixed_table_name = $db->prefix . $this->table_name; + + /** + * Filter condition for cleaning URLS in the database. + * + * @param string $condition condition for cleaning URLS in the database. + * @returns string + */ + $condition = apply_filters( 'rocket_preload_all_to_pending_condition', ' WHERE 1 = 1' ); + + $db->query( "UPDATE `$prefixed_table_name` SET status = 'pending'$condition" ); + } + + /** + * Check if the page is preloaded. + * + * @param string $url url from the page to check. + * @return bool + */ + public function is_preloaded( string $url ): bool { + $pending_count = $this->query( + [ + 'count' => true, + 'status' => 'in-progress', + 'url' => untrailingslashit( $url ), + ] + ); + return 0 !== $pending_count; + } + + /** + * Check if the page is pending. + * + * @param string $url url from the page to check. + * @return bool + */ + public function is_pending( string $url ): bool { + $pending_count = $this->query( + [ + 'count' => true, + 'status' => 'pending', + 'url' => untrailingslashit( $url ), + ] + ); + return 0 !== $pending_count; + } + + /** + * Remove all entries from the table. + * + * @return false|void + */ + public function remove_all() { + // Get the database interface. + $db = $this->get_db(); + + // Bail if no database interface is available. + if ( empty( $db ) ) { + return false; + } + + $prefixed_table_name = $db->prefix . $this->table_name; + + $db->query( "DELETE FROM `$prefixed_table_name` WHERE 1 = 1" ); + } +} diff --git a/inc/Engine/Optimization/RUCSS/Database/Row/ResourceRow.php b/inc/Engine/Preload/Database/Rows/CacheRow.php similarity index 51% rename from inc/Engine/Optimization/RUCSS/Database/Row/ResourceRow.php rename to inc/Engine/Preload/Database/Rows/CacheRow.php index 6c1a21f194..ace53a21bb 100644 --- a/inc/Engine/Optimization/RUCSS/Database/Row/ResourceRow.php +++ b/inc/Engine/Preload/Database/Rows/CacheRow.php @@ -1,14 +1,13 @@ id = (int) $this->id; $this->url = (string) $this->url; - $this->type = (string) $this->type; - $this->content = (string) $this->content; - $this->hash = (string) $this->hash; - $this->prewarmup = (int) $this->prewarmup; - $this->warmup_status = (int) $this->warmup_status; - $this->media = (string) $this->media; + $this->status = (string) $this->status; $this->modified = false === $this->modified ? 0 : strtotime( $this->modified ); $this->last_accessed = false === $this->last_accessed ? 0 : strtotime( $this->last_accessed ); } diff --git a/inc/Engine/Preload/Database/Schemas/Cache.php b/inc/Engine/Preload/Database/Schemas/Cache.php new file mode 100644 index 0000000000..3fe35a1cfc --- /dev/null +++ b/inc/Engine/Preload/Database/Schemas/Cache.php @@ -0,0 +1,70 @@ + 'id', + 'type' => 'bigint', + 'length' => '20', + 'unsigned' => true, + 'extra' => 'auto_increment', + 'primary' => true, + 'sortable' => true, + ], + + + // URL column. + [ + 'name' => 'url', + 'type' => 'varchar', + 'length' => '2000', + 'default' => null, + 'cache_key' => true, + 'searchable' => true, + 'sortable' => false, + ], + + // STATUS column. + [ + 'name' => 'status', + 'type' => 'varchar', + 'length' => '255', + 'default' => null, + 'cache_key' => true, + 'searchable' => true, + 'sortable' => false, + ], + + // MODIFIED column. + [ + 'name' => 'modified', + 'type' => 'timestamp', + 'default' => '0000-00-00 00:00:00', + 'created' => true, + 'date_query' => true, + 'sortable' => true, + ], + + // LAST_ACCESSED column. + [ + 'name' => 'last_accessed', + 'type' => 'timestamp', + 'default' => '0000-00-00 00:00:00', + 'created' => true, + 'date_query' => true, + 'sortable' => true, + ], + ]; +} diff --git a/inc/Engine/Preload/Database/Tables/Cache.php b/inc/Engine/Preload/Database/Tables/Cache.php new file mode 100644 index 0000000000..2c7f5059ad --- /dev/null +++ b/inc/Engine/Preload/Database/Tables/Cache.php @@ -0,0 +1,57 @@ +schema = " + id bigint(20) unsigned NOT NULL AUTO_INCREMENT, + url varchar(2000) NOT NULL default '', + status varchar(255) NOT NULL default '', + modified timestamp NOT NULL default '0000-00-00 00:00:00', + last_accessed timestamp NOT NULL default '0000-00-00 00:00:00', + PRIMARY KEY (id), + KEY url (url(191)), + KEY modified (modified), + KEY last_accessed (last_accessed)"; + } +} diff --git a/inc/Engine/Preload/Frontend/FetchSitemap.php b/inc/Engine/Preload/Frontend/FetchSitemap.php new file mode 100644 index 0000000000..3629b78ad5 --- /dev/null +++ b/inc/Engine/Preload/Frontend/FetchSitemap.php @@ -0,0 +1,82 @@ +sitemap_parser = $sitemap_parser; + $this->queue = $queue; + $this->query = $rocket_cache; + } + + /** + * Parse a sitemap. + * + * @param string $url url from the sitemap. + */ + public function parse_sitemap( string $url ) { + $response = wp_safe_remote_get( $url ); + + if ( 200 !== wp_remote_retrieve_response_code( $response ) ) { + return; + } + + $data = wp_remote_retrieve_body( $response ); + + if ( ! $data ) { + return; + } + + $this->sitemap_parser->set_content( $data ); + $links = $this->sitemap_parser->get_links(); + + foreach ( $links as $link ) { + if ( ! $this->is_excluded( $link ) ) { + $this->query->create_or_nothing( + [ + 'url' => $link, + ] + ); + } + } + + $children = $this->sitemap_parser->get_children(); + + foreach ( $children as $child ) { + $this->queue->add_job_preload_job_parse_sitemap_async( $child ); + } + } +} diff --git a/inc/Engine/Preload/Frontend/SitemapParser.php b/inc/Engine/Preload/Frontend/SitemapParser.php new file mode 100644 index 0000000000..b60180011c --- /dev/null +++ b/inc/Engine/Preload/Frontend/SitemapParser.php @@ -0,0 +1,76 @@ +xml = simplexml_load_string( $content ); + } + + /** + * Get links to sitemaps. + * + * @return array + */ + public function get_links(): array { + $links = []; + + if ( false === $this->xml ) { + return []; + } + + $url_count = count( $this->xml->url ); + + for ( $i = 0; $i < $url_count; $i++ ) { + $url = (string) $this->xml->url[ $i ]->loc; + if ( ! $url ) { + continue; + } + $links [] = $url; + } + + return $links; + } + + /** + * Get children sitemaps. + * + * @return array + */ + public function get_children(): array { + $children = []; + + if ( false === $this->xml ) { + return []; + } + + $sitemap_children = count( $this->xml->sitemap ); + + for ( $i = 0; $i < $sitemap_children; $i++ ) { + $url = (string) $this->xml->sitemap[ $i ]->loc; + if ( ! $url ) { + continue; + } + $children [] = $url; + } + + return $children; + } +} diff --git a/inc/Engine/Preload/Frontend/Subscriber.php b/inc/Engine/Preload/Frontend/Subscriber.php new file mode 100644 index 0000000000..d8fb3e1abe --- /dev/null +++ b/inc/Engine/Preload/Frontend/Subscriber.php @@ -0,0 +1,106 @@ +fetch_sitemap = $fetch_sitemap; + $this->preload_controller = $preload_controller; + $this->check_finished = $check_finished; + $this->initial_sitemap = $initial_sitemap; + } + + /** + * Return an array of events that this subscriber listens to. + * + * @return array + */ + public static function get_subscribed_events() { + return [ + 'rocket_preload_job_parse_sitemap' => 'parse_sitemap', + 'rocket_preload_job_preload_url' => 'preload_url', + 'rocket_preload_job_check_finished' => 'check_finished', + 'rocket_preload_job_load_initial_sitemap' => 'load_initial_sitemap', + ]; + } + + /** + * Parse the sitemap. + * + * @param string $url url to parse. + * @return void + */ + public function parse_sitemap( string $url ) { + $this->fetch_sitemap->parse_sitemap( $url ); + } + + /** + * Preload url. + * + * @param string $url url to preload. + * @return void + */ + public function preload_url( string $url ) { + $this->preload_controller->preload_url( $url ); + } + + /** + * Check if the preload is finished. + * + * @return void + */ + public function check_finished() { + $this->check_finished->check_finished(); + } + + /** + * Load the initial sitemap. + * + * @return void + */ + public function load_initial_sitemap() { + $this->initial_sitemap->load_initial_sitemap(); + } +} diff --git a/inc/Engine/Preload/FullProcess.php b/inc/Engine/Preload/FullProcess.php deleted file mode 100644 index 56357ab7d4..0000000000 --- a/inc/Engine/Preload/FullProcess.php +++ /dev/null @@ -1,88 +0,0 @@ -maybe_preload( $item ); - - if ( $result && ! empty( $item['source'] ) && ( ! is_array( $item ) || empty( $item['mobile'] ) ) ) { - // Count only successful non mobile items. - $transient_name = sprintf( 'rocket_%s_preload_running', $item['source'] ); - $preload_count = get_transient( $transient_name ); - set_transient( $transient_name, $preload_count + 1 ); - } - - return false; - } - - /** - * Updates transients on complete - * - * @since 3.2 - * @author Remy Perona - */ - public function complete() { - $homepage_count = get_transient( 'rocket_homepage_preload_running' ); - $sitemap_count = get_transient( 'rocket_sitemap_preload_running' ); - - set_transient( 'rocket_preload_complete', $homepage_count + $sitemap_count ); - set_transient( 'rocket_preload_complete_time', date_i18n( get_option( 'date_format' ) ) . ' @ ' . date_i18n( get_option( 'time_format' ) ) ); - delete_transient( 'rocket_homepage_preload_running' ); - delete_transient( 'rocket_sitemap_preload_running' ); - - parent::complete(); - } - - /** - * Checks if a process is already running. - * This allows the method to be public. - * - * @since 3.2.1.1 - * @access public - * @author Remy Perona - * @see WP_Background_Process::is_process_running() - * - * @return boolean - */ - public function is_process_running() { // phpcs:ignore Generic.CodeAnalysis.UselessOverridingMethod.Found - return parent::is_process_running(); - } -} diff --git a/inc/Engine/Preload/Homepage.php b/inc/Engine/Preload/Homepage.php deleted file mode 100644 index 57b24aba0c..0000000000 --- a/inc/Engine/Preload/Homepage.php +++ /dev/null @@ -1,315 +0,0 @@ -preload_process, 'format_item' ], $home_urls ); - $home_urls = array_filter( $home_urls ); - - if ( ! $home_urls ) { - return; - } - - if ( $this->preload_process->is_mobile_preload_enabled() ) { - foreach ( $home_urls as $home_item ) { - if ( $home_item['mobile'] ) { - continue; - } - - $home_urls[] = [ - 'url' => $home_item['url'], - 'mobile' => true, - ]; - } - } - - $preload_urls = []; - $nbr_homes = 0; - - foreach ( $home_urls as $home_item ) { - $urls = $this->get_urls( $home_item ); - - if ( false !== $urls && ! $home_item['mobile'] ) { - // Homepage successfully preloaded (and not mobile). - ++$nbr_homes; - } - - if ( ! $urls ) { - continue; - } - - $home_host = wp_parse_url( $home_item['url'], PHP_URL_HOST ); - - foreach ( $urls as $url ) { - if ( ! $this->should_preload( $url, $home_item['url'], $home_host ) ) { - continue; - } - - $path = $this->get_url_identifier( $url ); - - if ( ! $home_item['mobile'] && ! isset( $preload_urls[ $path ] ) ) { - // Not a URL for mobile. - $preload_urls[ $path ] = [ - 'url' => $url, - 'mobile' => false, - 'source' => self::PRELOAD_ID, - ]; - } - - if ( $home_item['mobile'] && ! isset( $preload_urls[ $path . self::MOBILE_SUFFIX ] ) ) { - // A URL for mobile. - $preload_urls[ $path . self::MOBILE_SUFFIX ] = [ - 'url' => $url, - 'mobile' => true, - 'source' => self::PRELOAD_ID, - ]; - } - } - } - - if ( ! $preload_urls ) { - return; - } - - array_map( [ $this->preload_process, 'push_to_queue' ], $preload_urls ); - - set_transient( $this->get_running_transient_name(), $nbr_homes ); - $this->preload_process->save()->dispatch(); - } - - /** - * Gets links in the content of the URL provided. - * - * @since 3.2.2 - * @since 3.5 $item is an array. - * @author Remy Perona - * - * @param array $item { - * The item to get content and links from: an array containing the following values. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. Optional. - * } - * @return bool|array - */ - private function get_urls( array $item ) { - $user_agent = $this->preload_process->get_item_user_agent( $item ); - - /** - * Filters the arguments for the partial preload request. - * - * @since 3.2 - * @author Remy Perona - * - * @param array $args Request arguments. - */ - $args = apply_filters( - 'rocket_homepage_preload_url_request_args', - [ - 'timeout' => 10, - 'user-agent' => $user_agent, - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - ] - ); - - $response = wp_remote_get( esc_url_raw( $item['url'] ), $args ); - $errors = get_transient( 'rocket_preload_errors' ); - $errors = is_array( $errors ) ? $errors : []; - $errors['errors'] = isset( $errors['errors'] ) && is_array( $errors['errors'] ) ? $errors['errors'] : []; - - if ( is_wp_error( $response ) ) { - // Translators: %1$s is an URL, %2$s is the error message, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Preload encountered an error. Could not gather links on %1$s because of the following error: %2$s. %3$sLearn more%4$s.', 'rocket' ), $item['url'], $response->get_error_message(), '', '' ); - - set_transient( 'rocket_preload_errors', $errors ); - return false; - } - - $response_code = wp_remote_retrieve_response_code( $response ); - - if ( 200 !== $response_code ) { - switch ( $response_code ) { - case 401: - case 403: - // Translators: %1$s is an URL, %2$s is the HTTP response code, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Preload encountered an error. %1$s is not accessible to due to the following response code: %2$s. Security measures could be preventing access. %3$sLearn more%4$s.', 'rocket' ), $item['url'], $response_code, '', '' ); - - set_transient( 'rocket_preload_errors', $errors ); - break; - case 404: - // Translators: %1$s is an URL, %2$s = opening link tag, %3$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Preload encountered an error. %1$s is not accessible to due to the following response code: 404. Please make sure your homepage is accessible in your browser. %2$sLearn more%3$s.', 'rocket' ), $item['url'], '', '' ); - - set_transient( 'rocket_preload_errors', $errors ); - break; - case 500: - // Translators: %1$s is an URL, %2$s = opening link tag, %3$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Preload encountered an error. %1$s is not accessible to due to the following response code: 500. Please check with your web host about server access. %2$sLearn more%3$s.', 'rocket' ), $item['url'], '', '' ); - - set_transient( 'rocket_preload_errors', $errors ); - break; - default: - // Translators: %1$s is an URL, %2$s is the HTTP response code, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Preload encountered an error. Could not gather links on %1$s because it returned the following response code: %2$s. %3$sLearn more%4$s.', 'rocket' ), $item['url'], $response_code, '', '' ); - - set_transient( 'rocket_preload_errors', $errors ); - break; - } - - return false; - } - - $content = wp_remote_retrieve_body( $response ); - - preg_match_all( '/]+?[\s"\']|)href\s*=\s*(["\'])(?[^"\']+)\1/imU', $content, $urls ); - - return array_unique( $urls['href'] ); - } - - /** - * Checks if the URL should be preloaded. - * - * @since 3.2.2 - * @access private - * @author Remy Perona - * - * @param string $url URL to check. - * @param string $home_url Homepage URL. - * @param string $home_host Homepage host. - * @return bool - */ - private function should_preload( $url, $home_url, $home_host ) { - $url = html_entity_decode( $url ); // & symbols in URLs are changed to & when using WP Menu editor - - $url_data = get_rocket_parse_url( $url ); - - if ( empty( $url_data ) ) { - return false; - } - - if ( ! empty( $url_data['fragment'] ) ) { - return false; - } - - if ( empty( $url_data['host'] ) ) { - $url = home_url( $url ); - } - - $url = \rocket_add_url_protocol( $url ); - - if ( untrailingslashit( $url ) === untrailingslashit( $home_url ) ) { - return false; - } - - if ( $home_host !== $url_data['host'] ) { - return false; - } - - if ( $this->is_file_url( $url ) ) { - return false; - } - - if ( ! empty( $url_data['path'] ) && preg_match( '#^(' . \get_rocket_cache_reject_uri() . ')$#', $url_data['path'] ) ) { - return false; - } - - $cache_query_strings = implode( '|', \get_rocket_cache_query_string() ); - - if ( ! empty( $url_data['query'] ) && ! preg_match( '/(' . $cache_query_strings . ')/iU', $url_data['query'] ) ) { - return false; - } - - return true; - } - - /** - * Checks if URL is an URL to a file. - * - * @since 3.2.2 - * @access private - * @author Remy Perona - * - * @param string $url URL to check. - * @return bool - */ - private function is_file_url( $url ) { - /** - * Filters the list of files types to check when getting URLs on the homepage - * - * @since 3.2.2 - * @author Remy Perona - * - * @param array $file_types Array of file extensions. - */ - $file_types = apply_filters( - 'rocket_preload_file_types', - [ - 'jpg', - 'jpeg', - 'jpe', - 'png', - 'gif', - 'webp', - 'bmp', - 'tiff', - 'mp3', - 'ogg', - 'mp4', - 'm4v', - 'avi', - 'mov', - 'flv', - 'swf', - 'webm', - 'pdf', - 'doc', - 'docx', - 'txt', - 'zip', - 'tar', - 'bz2', - 'tgz', - 'rar', - ] - ); - - $file_types = implode( '|', $file_types ); - - if ( preg_match( '#\.(?:' . $file_types . ')$#iU', $url ) ) { - return true; - } - - return false; - } -} diff --git a/inc/Engine/Preload/PartialPreloadSubscriber.php b/inc/Engine/Preload/PartialPreloadSubscriber.php deleted file mode 100644 index 523a6713fa..0000000000 --- a/inc/Engine/Preload/PartialPreloadSubscriber.php +++ /dev/null @@ -1,253 +0,0 @@ -partial_preload = $partial; - $this->options = $options; - } - - /** - * Return an array of events that this subscriber wants to listen to. - * - * @since 3.2 - * @author Remy Perona - * - * @return array - */ - public static function get_subscribed_events() { - return [ - 'after_rocket_clean_post' => [ 'preload_after_clean_post', 10, 3 ], - 'after_rocket_clean_term' => [ 'preload_after_clean_term', 10, 3 ], - 'rocket_after_automatic_cache_purge' => 'preload_after_automatic_cache_purge', - 'rocket_rucss_complete_job_status' => 'preload_url_after_rucss', - 'rocket_rucss_after_clearing_usedcss' => [ 'preload_url_after_rucss', 20 ], - 'shutdown' => [ 'maybe_dispatch', PHP_INT_MAX ], - ]; - } - - /** - * Pushes URLs to preload to the queue after a post has been updated - * - * @since 3.2 - * - * @param object $post The post object. - * @param array $purge_urls An array of URLs to clean. - * @param string $lang The language to clean. - */ - public function preload_after_clean_post( $post, $purge_urls, $lang ) { - if ( ! $this->options->get( 'manual_preload' ) ) { - return; - } - - // Run preload only if post is published. - if ( 'publish' !== $post->post_status ) { - return false; - } - - // Add Homepage URL to $purge_urls for preload. - array_push( $purge_urls, get_rocket_i18n_home_url( $lang ) ); - - // Get the author page. - $purge_author = [ get_author_posts_url( $post->post_author ) ]; - - // Remove author page from preload cache. - $purge_urls = array_diff( $purge_urls, $purge_author ); - - $purge_urls = array_filter( $purge_urls ); - - $this->urls = array_merge( $this->urls, $purge_urls ); - } - - /** - * Pushes URLs to preload to the queue after cache directories are purged. - * - * @since 3.4 - * @access public - * @author Grégory Viguier - * - * @param array $deleted { - * An array of arrays, described like: {. - * @type string $home_url The home URL. - * @type string $home_path Path to home. - * @type bool $logged_in True if the home path corresponds to a logged in user’s folder. - * @type array $files A list of paths of files that have been deleted. - * } - * } - */ - public function preload_after_automatic_cache_purge( $deleted ) { - if ( ! $deleted || ! $this->options->get( 'manual_preload' ) ) { - return; - } - - foreach ( $deleted as $data ) { - if ( $data['logged_in'] ) { - // Logged in user: no need to preload those since we would need the corresponding cookies. - continue; - } - foreach ( $data['files'] as $file_path ) { - if ( strpos( $file_path, '#' ) ) { - // URL with query string. - $file_path = preg_replace( '/#/', '?', $file_path, 1 ); - } else { - $file_path = untrailingslashit( $file_path ); - $data['home_path'] = untrailingslashit( $data['home_path'] ); - $data['home_url'] = untrailingslashit( $data['home_url'] ); - if ( '/' === substr( get_option( 'permalink_structure' ), -1 ) ) { - $file_path .= '/'; - $data['home_path'] .= '/'; - $data['home_url'] .= '/'; - } - } - - $this->urls[] = str_replace( $data['home_path'], $data['home_url'], $file_path ); - } - } - } - - /** - * Pushes URLs to preload to the queue after a term has been updated - * - * @since 3.2 - * - * @param object $term The term object. - * @param array $purge_urls An array of URLs to clean. - * @param string $lang The language to clean. - */ - public function preload_after_clean_term( $term, $purge_urls, $lang ) { - if ( ! $this->options->get( 'manual_preload' ) ) { - return; - } - - // Add Homepage URL to $purge_urls for preload. - array_push( $purge_urls, get_rocket_i18n_home_url( $lang ) ); - - $purge_urls = array_filter( $purge_urls ); - - $this->urls = array_merge( $this->urls, $purge_urls ); - } - - /** - * Purge cache of given URL after generating or clearing used CSS. - * - * @param string $url URL to be preloaded. - * - * @return void - */ - public function preload_url_after_rucss( $url ) { - if ( ! (bool) $this->options->get( 'manual_preload', 0 ) ) { - return; - } - - $this->urls[] = $url; - } - - /** - * Starts the partial preload process if there is any URLs saved - * - * @since 3.2.1 - * @author Remy Perona - * - * @return void - */ - public function maybe_dispatch() { - if ( wp_doing_ajax() ) { - return; - } - - if ( empty( $this->urls ) ) { - return; - } - - $this->urls = array_unique( $this->urls ); - - /** - * Limit the number of URLs to preload. - * The value may change in the future, depending on the results. - * - * @since 3.4 - * @author Grégory Viguier - * - * @param int $limit Maximum number of URLs to preload at once. - */ - $limit = (int) apply_filters( 'rocket_preload_limit_number', 100 ); - $count = 0; - $mobile = $this->partial_preload->is_mobile_preload_enabled(); - - foreach ( $this->urls as $url ) { - $path = wp_parse_url( $url, PHP_URL_PATH ); - - if ( isset( $path ) && preg_match( '#^(' . \get_rocket_cache_reject_uri() . ')$#', $path ) ) { - continue; - } - - $this->partial_preload->push_to_queue( $url ); - - if ( $mobile ) { - $this->partial_preload->push_to_queue( - [ - 'url' => $url, - 'mobile' => true, - ] - ); - } - - ++$count; - - if ( $count >= $limit ) { - break; - } - } - - $this->partial_preload->save()->dispatch(); - } -} diff --git a/inc/Engine/Preload/PartialProcess.php b/inc/Engine/Preload/PartialProcess.php deleted file mode 100644 index b2d9431980..0000000000 --- a/inc/Engine/Preload/PartialProcess.php +++ /dev/null @@ -1,44 +0,0 @@ -maybe_preload( $item ); - return false; - } -} diff --git a/inc/Engine/Preload/PreloadSubscriber.php b/inc/Engine/Preload/PreloadSubscriber.php deleted file mode 100644 index 0781e82c09..0000000000 --- a/inc/Engine/Preload/PreloadSubscriber.php +++ /dev/null @@ -1,454 +0,0 @@ -homepage_preloader = $homepage_preloader; - $this->options = $options; - } - - /** - * Return an array of events that this subscriber wants to listen to. - * - * @return array - */ - public static function get_subscribed_events() { - return [ - 'admin_notices' => [ - [ 'notice_preload_triggered' ], - [ 'notice_preload_running' ], - [ 'notice_preload_complete' ], - ], - 'admin_post_rocket_stop_preload' => [ 'do_admin_post_stop_preload' ], - 'pagely_cache_purge_after' => [ 'run_preload', 11 ], - 'update_option_' . WP_ROCKET_SLUG => [ - [ 'maybe_launch_preload', 11, 2 ], - [ 'maybe_cancel_preload', 10, 2 ], - ], - 'rocket_after_preload_after_purge_cache' => [ - [ 'maybe_preload_mobile_homepage', 10, 3 ], - ], - 'admin_post_rocket_rollback' => [ 'stop_homepage_preload', 9 ], - 'wp_rocket_upgrade' => [ 'stop_homepage_preload', 9 ], - 'rocket_options_changed' => 'preload_after_options_change', - 'rocket_after_clean_used_css' => 'preload_after_clean_used_css', - ]; - } - - /** - * Launches the homepage preload - * - * @since 3.2 - * - * @param string $lang The language code to preload. - * - * @return void - */ - protected function preload( $lang = '' ) { - if ( $lang ) { - $urls = (array) get_rocket_i18n_home_url( $lang ); - } else { - $urls = get_rocket_i18n_uri(); - } - - $this->homepage_preloader->preload( $urls ); - } - - /** - * Launches the homepage preload if the option is active - * - * @since 3.2 - * - * @return void - */ - public function run_preload() { - if ( ! $this->options->get( 'manual_preload' ) ) { - return; - } - - delete_transient( 'rocket_preload_errors' ); - $this->preload(); - } - - /** - * Cancels any preload currently running if the option is deactivated - * - * @since 3.2 - * - * @param array $old_value Previous option values. - * @param array $value New option values. - * - * @return void - */ - public function maybe_cancel_preload( $old_value, $value ) { - if ( isset( $old_value['manual_preload'], $value['manual_preload'] ) && $old_value['manual_preload'] !== $value['manual_preload'] && 0 === (int) $value['manual_preload'] ) { - delete_transient( 'rocket_preload_errors' ); - $this->homepage_preloader->cancel_preload(); - } - } - - /** - * Launches the preload if the option is activated - * - * @since 3.2 - * - * @param array $old_value Previous option values. - * @param array $value New option values. - * - * @return void - */ - public function maybe_launch_preload( $old_value, $value ) { - if ( $this->homepage_preloader->is_process_running() ) { - return; - } - - // These values are ignored because they don't impact the cache content. - $ignored_options = [ - 'cache_mobile' => true, - 'purge_cron_interval' => true, - 'purge_cron_unit' => true, - 'sitemap_preload' => true, - 'sitemaps' => true, - 'database_revisions' => true, - 'database_auto_drafts' => true, - 'database_trashed_posts' => true, - 'database_spam_comments' => true, - 'database_trashed_comments' => true, - 'database_all_transients' => true, - 'database_optimize_tables' => true, - 'schedule_automatic_cleanup' => true, - 'automatic_cleanup_frequency' => true, - 'do_cloudflare' => true, - 'cloudflare_email' => true, - 'cloudflare_api_key' => true, - 'cloudflare_zone_id' => true, - 'cloudflare_devmode' => true, - 'cloudflare_auto_settings' => true, - 'cloudflare_old_settings' => true, - 'heartbeat_admin_behavior' => true, - 'heartbeat_editor_behavior' => true, - 'varnish_auto_purge' => true, - 'analytics_enabled' => true, - 'sucury_waf_cache_sync' => true, - 'sucury_waf_api_key' => true, - ]; - - // Create 2 arrays to compare. - $old_value_diff = array_diff_key( $old_value, $ignored_options ); - $value_diff = array_diff_key( $value, $ignored_options ); - - // If it's different, preload. - if ( md5( wp_json_encode( $old_value_diff ) ) === md5( wp_json_encode( $value_diff ) ) ) { - return; - } - - if ( isset( $value['manual_preload'] ) && 1 === (int) $value['manual_preload'] ) { - $this->preload(); - } - } - - /** - * After automatically preloading the homepage (after purging the cache), also preload the homepage for mobile. - * - * @since 3.5 - * - * @param string $home_url URL to the homepage being preloaded. - * @param string $lang The lang of the homepage. - * @param array $args Arguments used for the preload request. - * - * @return void - */ - public function maybe_preload_mobile_homepage( $home_url, $lang, $args ) { - if ( ! $this->homepage_preloader->is_mobile_preload_enabled() ) { - return; - } - - if ( empty( $args['user-agent'] ) ) { - $args['user-agent'] = 'WP Rocket/Homepage_Preload_After_Purge_Cache'; - } - - $args['user-agent'] = $this->homepage_preloader->get_mobile_user_agent_prefix() . ' ' . $args['user-agent']; - - wp_safe_remote_get( $home_url, $args ); - } - - /** - * This notice is displayed when the preload is triggered from a different page than WP Rocket settings page - * - * @since 3.2 - * - * @return void - */ - public function notice_preload_triggered() { - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - return; - } - - $screen = get_current_screen(); - - if ( 'settings_page_wprocket' === $screen->id ) { - return; - } - - if ( ! $this->options->get( 'manual_preload', 0 ) ) { - return; - } - - if ( false === get_transient( 'rocket_preload_triggered' ) ) { - return; - } - - delete_transient( 'rocket_preload_triggered' ); - - $message = __( 'Preload: WP Rocket has started preloading your website.', 'rocket' ); - - if ( current_user_can( 'rocket_manage_options' ) ) { - $message .= ' ' . sprintf( - // Translators: %1$s = opening link tag, %2$s = closing link tag. - __( 'Go to the %1$sWP Rocket settings%2$s page to track progress.', 'rocket' ), - '', - '' - ); - } - - \rocket_notice_html( - [ - 'status' => 'info', - 'message' => $message, - ] - ); - } - - /** - * This notice is displayed when the preload is running - * - * @since 3.2 - * - * @return void - */ - public function notice_preload_running() { - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - return; - } - - $screen = get_current_screen(); - - if ( 'settings_page_wprocket' !== $screen->id ) { - return; - } - - $homepage_count = get_transient( 'rocket_homepage_preload_running' ); - $sitemap_count = get_transient( 'rocket_sitemap_preload_running' ); - - if ( false === $homepage_count && false === $sitemap_count ) { - return; - } - - $running = $homepage_count + $sitemap_count; - $status = 'info'; - // translators: %1$s = Number of pages preloaded. - $message = '

' . sprintf( _n( 'Preload: %1$s uncached page has now been preloaded. (refresh to see progress)', 'Preload: %1$s uncached pages have now been preloaded. (refresh to see progress)', $running, 'rocket' ), number_format_i18n( $running ) ); - $message .= ' - (' . date_i18n( get_option( 'date_format' ) ) . ' @ ' . date_i18n( get_option( 'time_format' ) ) . ')

'; - - if ( defined( 'WP_ROCKET_DEBUG' ) && WP_ROCKET_DEBUG ) { - - $errors = get_transient( 'rocket_preload_errors' ); - - if ( false !== $errors ) { - $status = 'warning'; - $message .= '

' . _n( 'The following error happened during gathering of the URLs to preload:', 'The following errors happened during gathering of the URLs to preload:', count( $errors['errors'] ), 'rocket' ) . '

'; - - foreach ( $errors['errors'] as $error ) { - $message .= '

' . $error . '

'; - } - } - } - - \rocket_notice_html( - [ - 'status' => $status, - 'message' => $message, - 'dismissible' => 'notice-preload-running', - 'action' => 'stop_preload', - ] - ); - } - - /** - * This notice is displayed after the sitemap preload is complete - * - * @since 3.2 - * - * @return void - */ - public function notice_preload_complete() { - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - return; - } - - $screen = get_current_screen(); - - if ( 'settings_page_wprocket' !== $screen->id ) { - return; - } - - $result = get_transient( 'rocket_preload_complete' ); - - if ( false === $result ) { - return; - } - - $result_timestamp = get_transient( 'rocket_preload_complete_time' ); - - if ( false === $result_timestamp ) { - return; - } - - delete_transient( 'rocket_preload_complete' ); - delete_transient( 'rocket_preload_errors' ); - delete_transient( 'rocket_preload_complete_time' ); - - // translators: %d is the number of pages preloaded. - $notice_message = sprintf( __( 'Preload complete: %d pages have been cached.', 'rocket' ), $result ); - $notice_message .= ' (' . $result_timestamp . ') '; - - \rocket_notice_html( - [ - 'message' => $notice_message, - ] - ); - } - - /** - * Stops currently running preload from the notice action button - * - * @since 3.2 - * - * @return void - */ - public function do_admin_post_stop_preload() { - if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( $_GET['_wpnonce'] ), 'rocket_stop_preload' ) ) { - wp_nonce_ays( '' ); - } - - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - wp_safe_redirect( wp_get_referer() ); - die(); - } - - $this->homepage_preloader->cancel_preload(); - - wp_safe_redirect( wp_get_referer() ); - die(); - } - - /** - * Stops homepage preload. - * - * @since 3.10 - * - * @return void - */ - public function stop_homepage_preload() { - $this->homepage_preloader->cancel_preload(); - } - - /** - * Preloads the homepage after changing the options - * - * @since 3.11 - * - * @param array $value An array of submitted values for the settings. - * - * @return void - */ - public function preload_after_options_change( $value ) { - $mobile = false; - - if ( - isset( $value['do_caching_mobile_files'] ) - && - 1 === $value['do_caching_mobile_files'] - ) { - $mobile = true; - } - - $this->preload_homepage( $mobile ); - } - - /** - * Preloads the homepage after cleaning the used CSS in the database - * - * @since 3.11 - * - * @return void - */ - public function preload_after_clean_used_css() { - $mobile = false; - - if ( $this->options->get( 'do_caching_mobile_files', 0 ) ) { - $mobile = true; - } - - $this->preload_homepage( $mobile ); - } - - /** - * Preloads the homepage (desktop & mobile if enabled) - * - * @since 3.11 - * - * @param bool $mobile True to preload the mobile version, false otherwise. - * - * @return void - */ - private function preload_homepage( $mobile = false ) { - wp_safe_remote_get( - home_url(), - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => 'WP Rocket/Homepage Preload', - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - ] - ); - - if ( $mobile ) { - wp_safe_remote_get( - home_url(), - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => $this->homepage_preloader->get_mobile_user_agent_prefix() . ' WP Rocket/Homepage Preload', - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - ] - ); - } - } -} diff --git a/inc/Engine/Preload/ServiceProvider.php b/inc/Engine/Preload/ServiceProvider.php old mode 100644 new mode 100755 index 9a296bab3a..a3cf55a3e8 --- a/inc/Engine/Preload/ServiceProvider.php +++ b/inc/Engine/Preload/ServiceProvider.php @@ -1,7 +1,29 @@ getContainer()->add( 'full_preload_process', FullProcess::class ); - $this->getContainer()->add( 'partial_preload_process', PartialProcess::class ); - - $full_preload_process = $this->getContainer()->get( 'full_preload_process' ); - $this->getContainer()->add( 'homepage_preload', Homepage::class ) - ->addArgument( $full_preload_process ); - $this->getContainer()->add( 'sitemap_preload', Sitemap::class ) - ->addArgument( $full_preload_process ); - // Subscribers. $options = $this->getContainer()->get( 'options' ); - $this->getContainer()->share( 'preload_subscriber', PreloadSubscriber::class ) - ->addArgument( $this->getContainer()->get( 'homepage_preload' ) ) + $this->getContainer()->add( 'preload_mobile_detect', WP_Rocket_Mobile_Detect::class ); + + $this->getContainer()->add( 'preload_settings', Settings::class ) + ->addArgument( $options ); + $preload_settings = $this->getContainer()->get( 'preload_settings' ); + + $this->getContainer()->add( 'wp_direct_filesystem', WP_Filesystem_Direct::class ) + ->addArgument( [] ); + $wp_file_system = $this->getContainer()->get( 'wp_direct_filesystem' ); + + $this->getContainer()->add( 'preload_caches_table', CacheTable::class ); + $this->getContainer()->add( 'preload_caches_query', CacheQuery::class ) + ->addArgument( new Logger() ); + $this->getContainer()->get( 'preload_caches_table' ); + + $cache_query = $this->getContainer()->get( 'preload_caches_query' ); + + $this->getContainer()->add( 'preload_queue', Queue::class ); + $queue = $this->getContainer()->get( 'preload_queue' ); + + $this->getContainer()->add( 'homepage_crawler', CrawlHomepage::class ); + $crawl_homepage = $this->getContainer()->get( 'homepage_crawler' ); + + $this->getContainer()->add( 'sitemap_parser', SitemapParser::class ); + $sitemap_parser = $this->getContainer()->get( 'sitemap_parser' ); + + $this->getContainer()->add( 'preload_url_controller', PreloadUrl::class ) ->addArgument( $options ) + ->addArgument( $queue ) + ->addArgument( $cache_query ) + ->addArgument( $wp_file_system ); + + $this->getContainer()->add( 'fetch_sitemap_controller', FetchSitemap::class ) + ->addArgument( $sitemap_parser ) + ->addArgument( $queue ) + ->addArgument( $cache_query ); + + $fetch_sitemap_controller = $this->getContainer()->get( 'fetch_sitemap_controller' ); + $preload_url_controller = $this->getContainer()->get( 'preload_url_controller' ); + + $this->getContainer()->add( 'load_initial_sitemap_controller', LoadInitialSitemap::class ) + ->addArgument( $queue ) + ->addArgument( $cache_query ) + ->addArgument( $crawl_homepage ); + + $this->getContainer()->add( 'preload_activation', Activation::class ) + ->addArgument( $queue ) + ->addArgument( $cache_query ); + + $this->getContainer()->share( + 'preload_queue_runner', + static function() { + + $group = 'rocket-preload'; + + /** + * Filters the clean batch size. + * + * @param int $batch_size Batch size. + * + * @return int + */ + $batch_size = (int) apply_filters( 'rocket_action_scheduler_clean_batch_size', 500, $group ); + + return new PreloadQueueRunner( + null, + null, + new Cleaner( null, $batch_size, $group ), + null, + new ActionScheduler_Compatibility(), + new Logger(), + ActionScheduler_Lock::instance() + ); + } + ); + + $preload_queue_runner = $this->getContainer()->get( 'preload_queue_runner' ); + + $this->getContainer()->add( 'check_finished_controller', CheckFinished::class ) + ->addArgument( $preload_settings ) + ->addArgument( $cache_query ) + ->addArgument( $queue ); + + $check_finished_controller = $this->getContainer()->get( 'check_finished_controller' ); + + $this->getContainer()->share( 'preload_front_subscriber', FrontEndSubscriber::class ) + ->addArgument( $fetch_sitemap_controller ) + ->addArgument( $preload_url_controller ) + ->addArgument( $check_finished_controller ) + ->addArgument( $this->getContainer()->get( 'load_initial_sitemap_controller' ) ) ->addTag( 'common_subscriber' ); - $this->getContainer()->share( 'sitemap_preload_subscriber', SitemapPreloadSubscriber::class ) - ->addArgument( $this->getContainer()->get( 'sitemap_preload' ) ) + + $this->getContainer()->add( 'preload_clean_controller', ClearCache::class ) + ->addArgument( $cache_query ); + + $clean_controller = $this->getContainer()->get( 'preload_clean_controller' ); + + $this->getContainer()->share( 'preload_subscriber', Subscriber::class ) ->addArgument( $options ) + ->addArgument( $this->getContainer()->get( 'load_initial_sitemap_controller' ) ) + ->addArgument( $cache_query ) + ->addArgument( $this->getContainer()->get( 'preload_activation' ) ) + ->addArgument( $this->getContainer()->get( 'preload_mobile_detect' ) ) + ->addArgument( $clean_controller ) + ->addArgument( $queue ) ->addTag( 'common_subscriber' ); - $this->getContainer()->share( 'partial_preload_subscriber', PartialPreloadSubscriber::class ) - ->addArgument( $this->getContainer()->get( 'partial_preload_process' ) ) - ->addArgument( $options ) + + $this->getContainer()->share( 'preload_cron_subscriber', CronSubscriber::class ) + ->addArgument( $preload_settings ) + ->addArgument( $cache_query ) + ->addArgument( $preload_url_controller ) + ->addArgument( $preload_queue_runner ) ->addTag( 'common_subscriber' ); + $this->getContainer()->share( 'fonts_preload_subscriber', Fonts::class ) ->addArgument( $options ) ->addArgument( $this->getContainer()->get( 'cdn' ) ) ->addTag( 'common_subscriber' ); + + $this->getContainer()->add( 'preload_admin_subscriber', AdminSubscriber::class ) + ->addArgument( $options ) + ->addArgument( $preload_settings ) + ->addTag( 'common_subscriber' ); + } } diff --git a/inc/Engine/Preload/Sitemap.php b/inc/Engine/Preload/Sitemap.php deleted file mode 100644 index c4fa923b14..0000000000 --- a/inc/Engine/Preload/Sitemap.php +++ /dev/null @@ -1,367 +0,0 @@ - $sitemap_url ) { - /** - * Fires before WP Rocket sitemap preload is called for a sitemap URL. - * - * @since 2.8 - * - * @param string $sitemap_type The sitemap identifier. - * @param string $sitemap_url Sitemap URL to be crawled. - */ - do_action( 'before_run_rocket_sitemap_preload', $sitemap_type, $sitemap_url ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - - $urls = $this->process_sitemap( $sitemap_url, $urls ); - - /** - * Fires after WP Rocket sitemap preload was called for a sitemap URL. - * - * @since 2.8 - * - * @param string $sitemap_type The sitemap identifier. - * @param string $sitemap_url Sitemap URL crawled. - */ - do_action( 'after_run_rocket_sitemap_preload', $sitemap_type, $sitemap_url ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - } - - if ( true === $this->sitemap_error ) { - // Attempt to use the fallback method. - $urls = $this->get_urls( $urls ); - } - - if ( ! $urls ) { - return; - } - - $preload = 0; - - foreach ( $urls as $item ) { - $path = wp_parse_url( $item['url'], PHP_URL_PATH ); - - if ( isset( $path ) && preg_match( '#^(' . \get_rocket_cache_reject_uri() . ')$#', $path ) ) { - continue; - } - - $this->preload_process->push_to_queue( $item ); - $preload++; - } - - if ( ! $preload ) { - return; - } - - set_transient( $this->get_running_transient_name(), 0 ); - $this->preload_process->save()->dispatch(); - } - - /** - * Processes the sitemaps recursively. - * - * @since 3.2 - * @since 3.5 Now private. - * @author Remy Perona - * - * @param string $sitemap_url URL of the sitemap. - * @param array $urls An array of arrays. - * @return array { - * Array values are arrays described as follow. - * Array keys are an identifier based on the URL path. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. Optional. - * @type string $source An identifier related to the source of the preload (e.g. RELOAD_ID). - * } - */ - private function process_sitemap( $sitemap_url, array $urls = [] ) { - $this->sitemap_error = false; - - /** - * Filters the arguments for the sitemap preload request. - * - * @since 2.10.8 - * @author Remy Perona - * - * @param array $args Arguments for the request. - */ - $args = apply_filters( - 'rocket_preload_sitemap_request_args', - [ - 'timeout' => 10, - 'user-agent' => 'WP Rocket/Sitemaps', - 'sslverify' => apply_filters( 'https_local_ssl_verify', false ), // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound - ] - ); - - $sitemap = wp_remote_get( esc_url_raw( $sitemap_url ), $args ); - $errors = get_transient( 'rocket_preload_errors' ); - $errors = is_array( $errors ) ? $errors : []; - $errors['errors'] = isset( $errors['errors'] ) && is_array( $errors['errors'] ) ? $errors['errors'] : []; - - if ( is_wp_error( $sitemap ) ) { - // Translators: %1$s is a XML sitemap URL, %2$s is the error message, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. Could not gather links on %1$s because of the following error: %2$s. %3$sLearn more%4$s.', 'rocket' ), $sitemap_url, $sitemap->get_error_message(), '', '' ); - - $this->sitemap_error = true; - - set_transient( 'rocket_preload_errors', $errors ); - return $urls; - } - - $response_code = wp_remote_retrieve_response_code( $sitemap ); - - if ( 200 !== $response_code ) { - switch ( $response_code ) { - case 401: - case 403: - // Translators: %1$s is an URL, %2$s is the HTTP response code, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. %1$s is not accessible to due to the following response code: %2$s. Security measures could be preventing access. %3$sLearn more%4$s.', 'rocket' ), $sitemap_url, $response_code, '', '' ); - - break; - case 404: - // Translators: %1$s is an URL, %2$s = opening link tag, %3$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. %1$s is not accessible to due to the following response code: 404. Please make sure you entered the correct sitemap URL and it is accessible in your browser. %2$sLearn more%3$s.', 'rocket' ), $sitemap_url, '', '' ); - - break; - case 500: - // Translators: %1$s is an URL, %2$s = opening link tag, %3$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. %1$s is not accessible to due to the following response code: 500. Please check with your web host about server access. %2$sLearn more%3$s.', 'rocket' ), $sitemap_url, '', '' ); - - break; - default: - // Translators: %1$s is an URL, %2$s is the HTTP response code, %3$s = opening link tag, %4$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. Could not gather links on %1$s because it returned the following response code: %2$s. %3$sLearn more%4$s.', 'rocket' ), $sitemap_url, $response_code, '', '' ); - - break; - } - - $this->sitemap_error = true; - - set_transient( 'rocket_preload_errors', $errors ); - return $urls; - } - - $xml_data = wp_remote_retrieve_body( $sitemap ); - - if ( empty( $xml_data ) ) { - - // Translators: %1$s is a XML sitemap URL, %2$s = opening link tag, %3$s = closing link tag. - $errors['errors'][] = sprintf( __( 'Sitemap preload encountered an error. Could not collect links from %1$s because the file is empty. %2$sLearn more%3$s.', 'rocket' ), $sitemap_url, '', '' ); - - $this->sitemap_error = true; - - set_transient( 'rocket_preload_errors', $errors ); - return $urls; - } - - if ( ! function_exists( 'simplexml_load_string' ) ) { - - $this->sitemap_error = true; - return $urls; - } - - libxml_use_internal_errors( true ); - - $xml = simplexml_load_string( $xml_data ); - - if ( false === $xml ) { - $errors['errors'][] = sprintf( - // Translators: %1$s is a XML sitemap URL, %2$s = opening link tag, %3$s = closing link tag. - __( 'Sitemap preload encountered an error. Could not collect links from %1$s because of an error during the XML sitemap parsing. %2$sLearn more%3$s.', 'rocket' ), - $sitemap_url, - '', - '' - ); - - $this->sitemap_error = true; - - set_transient( 'rocket_preload_errors', $errors ); - return $urls; - } - - $url_count = count( $xml->url ); - $sitemap_children = count( $xml->sitemap ); - - if ( $url_count > 0 ) { - $mobile_preload = $this->preload_process->is_mobile_preload_enabled(); - - for ( $i = 0; $i < $url_count; $i++ ) { - $url = (string) $xml->url[ $i ]->loc; - - if ( ! $url ) { - continue; - } - - $namespaces = $xml->url[ $i ]->getNamespaces( true ); - $path = $this->get_url_identifier( $url ); - $mobile_key = $path . self::MOBILE_SUFFIX; - - if ( ! empty( $namespaces['mobile'] ) ) { - // According to the sitemap, this URL is dedicated to mobile devices. - if ( isset( $urls[ $mobile_key ] ) ) { - continue; - } - - $urls[ $mobile_key ] = [ - 'url' => $url, - 'mobile' => true, - 'source' => self::PRELOAD_ID, - ]; - } else { - if ( ! isset( $urls[ $path ] ) ) { - $urls[ $path ] = [ - 'url' => $url, - 'mobile' => false, - 'source' => self::PRELOAD_ID, - ]; - } - - if ( $mobile_preload && ! isset( $urls[ $mobile_key ] ) ) { - $urls[ $mobile_key ] = [ - 'url' => $url, - 'mobile' => true, - 'source' => self::PRELOAD_ID, - ]; - } - } - } - - return $urls; - } - - if ( ! $sitemap_children ) { - return $urls; - } - - for ( $i = 0; $i < $sitemap_children; $i++ ) { - $sub_sitemap_url = (string) $xml->sitemap[ $i ]->loc; - $urls = $this->process_sitemap( $sub_sitemap_url, $urls ); - } - - return $urls; - } - - /** - * Get URLs from WordPress. - * - * Used as a fallback when extracting URLs from sitemap fails. - * - * @since 3.3 - * @since 3.5 New $urls argument. - * @since 3.5 Now private. - * @author Arun Basil Lal - * - * @link https://github.com/wp-media/wp-rocket/issues/1306 - * - * @param array $urls An array of arrays. - * @return array { - * Array values are arrays described as follow. - * Array keys are an identifier based on the URL path. - * - * @type string $url The URL to preload. - * @type bool $mobile True when we want to send a "mobile" user agent with the request. Optional. - * @type string $source An identifier related to the source of the preload (e.g. RELOAD_ID). - * } - */ - private function get_urls( array $urls = [] ) { - // Get public post types. - $post_types = get_post_types( [ 'public' => true ] ); - $post_types = array_filter( $post_types, 'is_post_type_viewable' ); - - /** - * Filters the arguments for get_posts. - * - * @since 3.3 - * @author Arun Basil Lal - * - * @param array $args Arguments for get_posts. - */ - $args = apply_filters( - 'rocket_preload_sitemap_fallback_request_args', - [ - 'fields' => 'ids', - 'numberposts' => 1000, // phpcs:ignore WordPress.WP.PostsPerPage.posts_per_page_numberposts - 'posts_per_page' => -1, - 'post_type' => $post_types, - ] - ); - - $all_posts = get_posts( $args ); - $mobile_preload = $this->preload_process->is_mobile_preload_enabled(); - - foreach ( $all_posts as $post ) { - $permalink = get_permalink( $post ); - - if ( false === $permalink ) { - continue; - } - - $path = $this->get_url_identifier( $permalink ); - - $urls[ $path ] = [ - 'url' => $permalink, - 'mobile' => false, - 'source' => self::PRELOAD_ID, - ]; - - if ( ! $mobile_preload ) { - continue; - } - - $urls[ $path . self::MOBILE_SUFFIX ] = [ - 'url' => $permalink, - 'mobile' => true, - 'source' => self::PRELOAD_ID, - ]; - } - - return $urls; - } -} diff --git a/inc/Engine/Preload/SitemapPreloadSubscriber.php b/inc/Engine/Preload/SitemapPreloadSubscriber.php deleted file mode 100644 index 5f818dc1a2..0000000000 --- a/inc/Engine/Preload/SitemapPreloadSubscriber.php +++ /dev/null @@ -1,145 +0,0 @@ -options = $options; - $this->sitemap_preload = $sitemap_preload; - } - - /** - * Return an array of events that this subscriber wants to listen to. - * - * @since 3.2 - * @author Remy Perona - * - * @return array - */ - public static function get_subscribed_events() { - return [ - 'pagely_cache_purge_after' => [ 'preload', 12 ], - 'update_option_' . WP_ROCKET_SLUG => [ 'maybe_cancel_preload', 10, 2 ], - 'admin_notices' => [ 'simplexml_notice' ], - 'admin_post_rocket_rollback' => [ 'stop_sitemap_preload', 9 ], - 'wp_rocket_upgrade' => [ 'stop_sitemap_preload', 9 ], - ]; - } - - /** - * Launches the sitemap preload - * - * @since 3.2 - * @author Remy Perona - * - * @return void - */ - public function preload() { - if ( ! $this->options->get( 'sitemap_preload' ) || ! $this->options->get( 'manual_preload' ) ) { - return; - } - - /** - * Filters the sitemaps list to preload - * - * @since 2.8 - * - * @param array Array of sitemaps URL - */ - $sitemaps = apply_filters( 'rocket_sitemap_preload_list', $this->options->get( 'sitemaps', false ) ); - $sitemaps = array_flip( array_flip( $sitemaps ) ); - - if ( ! $sitemaps ) { - return; - } - - $this->sitemap_preload->run_preload( $sitemaps ); - } - - /** - * Cancels any running sitemap preload if the option is deactivated - * - * @since 3.2 - * @author Remy Perona - * - * @param array $old_value Previous option values. - * @param array $value New option values. - * @return void - */ - public function maybe_cancel_preload( $old_value, $value ) { - if ( isset( $old_value['sitemap_preload'], $value['sitemap_preload'] ) && $old_value['sitemap_preload'] !== $value['sitemap_preload'] && 0 === (int) $value['sitemap_preload'] ) { - $this->sitemap_preload->cancel_preload(); - } - } - - /** - * Displays a notice if SimpleXML PHP extension is not enabled - * - * @since 3.2.5 - * @author Remy Perona - * @return void - */ - public function simplexml_notice() { - if ( ! current_user_can( 'rocket_preload_cache' ) ) { - return; - } - - $screen = get_current_screen(); - - if ( 'settings_page_wprocket' !== $screen->id ) { - return; - } - - if ( ! $this->options->get( 'sitemap_preload' ) ) { - return; - } - - if ( function_exists( 'simplexml_load_string' ) ) { - return; - } - - $message = sprintf( - // Translators: %1$s = opening link tag, %2$s = closing link tag. - __( '%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please contact your host to enable it before running sitemap-based cache preloading.', 'rocket' ), - '', - '' - ); - - \rocket_notice_html( - [ - 'status' => 'warning', - 'message' => $message, - ] - ); - } - - /** - * Stops sitemap preload. - * - * @since 3.10 - * - * @return void - */ - public function stop_sitemap_preload() { - $this->sitemap_preload->cancel_preload(); - } -} diff --git a/inc/Engine/Preload/Subscriber.php b/inc/Engine/Preload/Subscriber.php new file mode 100755 index 0000000000..ad29df42b6 --- /dev/null +++ b/inc/Engine/Preload/Subscriber.php @@ -0,0 +1,373 @@ +options = $options; + $this->controller = $controller; + $this->query = $query; + $this->activation = $activation; + $this->mobile_detect = $mobile_detect; + $this->clear_cache = $clear_cache; + $this->queue = $queue; + } + + /** + * Return an array of events that this subscriber listens to. + * + * @return array + */ + public static function get_subscribed_events() { + return [ + 'update_option_' . WP_ROCKET_SLUG => [ + [ 'maybe_load_initial_sitemap', 10, 2 ], + [ 'maybe_cancel_preload', 10, 2 ], + ], + 'rocket_after_process_buffer' => 'update_cache_row', + 'rocket_deactivation' => 'on_deactivation', + 'permalink_structure_changed' => 'on_permalink_changed', + 'wp_rocket_upgrade' => [ 'on_update', 16, 2 ], + 'rocket_rucss_complete_job_status' => 'clean_url', + 'rocket_rucss_after_clearing_usedcss' => [ 'clean_url', 20 ], + 'rocket_after_automatic_cache_purge' => 'preload_after_automatic_cache_purge', + 'after_rocket_clean_post' => [ 'clean_partial_cache', 10, 3 ], + 'after_rocket_clean_term' => [ 'clean_partial_cache', 10, 3 ], + 'after_rocket_clean_file' => 'clean_url', + 'rocket_after_clean_terms' => 'clean_urls', + 'after_rocket_clean_domain' => 'clean_full_cache', + 'wp_trash_post' => 'delete_post_preload_cache', + 'delete_post' => 'delete_post_preload_cache', + 'pre_delete_term' => 'delete_term_preload_cache', + ]; + } + + /** + * Load first tasks from preload when preload option is enabled. + * + * @param array $old_value old configuration values. + * @param array $value new configuration values. + * @return void + */ + public function maybe_load_initial_sitemap( $old_value, $value ) { + if ( ! isset( $value['manual_preload'], $old_value['manual_preload'] ) ) { + return; + } + + if ( $value['manual_preload'] === $old_value['manual_preload'] ) { + return; + } + + if ( ! $value['manual_preload'] ) { + return; + } + + $this->controller->load_initial_sitemap(); + } + + /** + * Cancel preload when configuration from sitemap changed. + * + * @param array $old_value old configuration values. + * @param array $value new configuration values. + * @return void + */ + public function maybe_cancel_preload( $old_value, $value ) { + if ( ! isset( $value['manual_preload'], $old_value['manual_preload'] ) ) { + return; + } + + if ( $value['manual_preload'] === $old_value['manual_preload'] ) { + return; + } + + if ( $value['manual_preload'] ) { + return; + } + + $this->controller->cancel_preload(); + } + + /** + * Create or update the cache row after processing the buffer + * + * @return void + */ + public function update_cache_row() { + global $wp; + $url = home_url( add_query_arg( [], $wp->request ) ); + + if ( $this->query->is_preloaded( $url ) ) { + $detected = $this->mobile_detect->isMobile() && ! $this->mobile_detect->isTablet() ? 'mobile' : 'desktop'; + + /** + * Fires when the preload from an URL is completed. + * + * @param string $url URL preladed. + * @param string $device Device from the cache. + */ + do_action( 'rocket_preload_completed', $url, $detected ); + } + + if ( str_contains( '?', $url ) || ( $this->query->is_pending( $url ) && $this->options->get( 'do_caching_mobile_files', false ) ) ) { + return; + } + + $this->query->create_or_update( + [ + 'url' => $url, + 'status' => 'completed', + 'last_accessed' => true, + ] + ); + } + + /** + * Delete url from the Preload when a 404 is risen. + * + * @return void + */ + public function delete_url_on_not_found() { + global $wp; + $url = home_url( $wp->request ); + $this->query->delete_by_url( $url ); + } + + /** + * Preload on permalink changed. + * + * @return void + */ + public function on_permalink_changed() { + $this->query->remove_all(); + $this->controller->load_initial_sitemap(); + } + + /** + * Disable cron and jobs on update. + * + * @param string $new_version new version from the plugin. + * @param string $old_version old version from the plugin. + * @return void + */ + public function on_update( $new_version, $old_version ) { + $this->activation->clean_on_update( $new_version, $old_version ); + if ( ! $this->options->get( 'manual_preload', false ) ) { + return; + } + $this->activation->refresh_on_update( $new_version, $old_version ); + } + + /** + * Clear preload on deactivation. + * + * @return void + */ + public function on_deactivation() { + $this->activation->deactivation(); + } + + /** + * Clean the url. + * + * @param string $url url. + * @return void + */ + public function clean_url( string $url ) { + + $this->clear_cache->partial_clean( [ $url ] ); + } + + /** + * Preload after clearing full cache. + * + * @return void + */ + public function clean_full_cache() { + set_transient( 'wpr_preload_running', true ); + $this->queue->add_job_preload_job_check_finished_async(); + $this->clear_cache->full_clean(); + } + + /** + * Preload after clearing some cache. + * + * @param stdClass $object object modified. + * @param array $urls urls cleaned. + * @param string $lang lang from the website. + * @return void + */ + public function clean_partial_cache( $object, array $urls, $lang ) { + // Add Homepage URL to $purge_urls for preload. + $urls[] = get_rocket_i18n_home_url( $lang ); + + $urls = array_filter( $urls ); + $this->clear_cache->partial_clean( $urls ); + } + + /** + * Clean the list of urls. + * + * @param array $urls urls. + * @return void + */ + public function clean_urls( array $urls ) { + + $this->clear_cache->partial_clean( $urls ); + } + + /** + * Delete URL from a post from the preload. + * + * @param int $post_id ID from the post. + * @return void + */ + public function delete_post_preload_cache( $post_id ) { + if ( ! $this->options->get( 'manual_preload', 0 ) ) { + return; + } + + $url = get_permalink( $post_id ); + + if ( false === $url ) { + return; + } + + $this->clear_cache->delete_url( $url ); + } + + /** + * Delete URL from a term from the preload. + * + * @param int $term_id ID from the term. + * @return void + */ + public function delete_term_preload_cache( $term_id ) { + if ( ! $this->options->get( 'manual_preload', 0 ) ) { + return; + } + + $url = get_term_link( (int) $term_id ); + + if ( false === $url ) { + return; + } + + $this->clear_cache->delete_url( $url ); + } + + /** + * Pushes URLs to preload to the queue after cache directories are purged. + * + * @since 3.4 + * + * @param array $deleted { + * An array of arrays, described like: {. + * @type string $home_url The home URL. + * @type string $home_path Path to home. + * @type bool $logged_in True if the home path corresponds to a logged in user’s folder. + * @type array $files A list of paths of files that have been deleted. + * } + * } + */ + public function preload_after_automatic_cache_purge( $deleted ) { + if ( ! $deleted || ! $this->options->get( 'manual_preload' ) ) { + return; + } + + foreach ( $deleted as $data ) { + if ( $data['logged_in'] ) { + // Logged in user: no need to preload those since we would need the corresponding cookies. + continue; + } + foreach ( $data['files'] as $file_path ) { + if ( strpos( $file_path, '#' ) ) { + // URL with query string. + $file_path = preg_replace( '/#/', '?', $file_path, 1 ); + } else { + $file_path = untrailingslashit( $file_path ); + $data['home_path'] = untrailingslashit( $data['home_path'] ); + $data['home_url'] = untrailingslashit( $data['home_url'] ); + if ( '/' === substr( get_option( 'permalink_structure' ), -1 ) ) { + $file_path .= '/'; + $data['home_path'] .= '/'; + $data['home_url'] .= '/'; + } + } + + $this->clear_cache->partial_clean( [ str_replace( $data['home_path'], $data['home_url'], $file_path ) ] ); + } + } + } +} diff --git a/inc/Engine/Support/Data.php b/inc/Engine/Support/Data.php index 77d9dbc611..65400c2ff1 100644 --- a/inc/Engine/Support/Data.php +++ b/inc/Engine/Support/Data.php @@ -36,7 +36,6 @@ class Data { 'minify_concatenate_js' => 'Combine JS', 'minify_google_fonts' => 'Combine Google Fonts', 'manual_preload' => 'Preload', - 'sitemap_preload' => 'Sitemap Preload', 'preload_links' => 'Preload Links', 'cdn' => 'CDN Enabled', 'do_cloudflare' => 'Cloudflare Enabled', diff --git a/inc/Engine/WPRocketUninstall.php b/inc/Engine/WPRocketUninstall.php index 4766b04b3d..0e255820ba 100644 --- a/inc/Engine/WPRocketUninstall.php +++ b/inc/Engine/WPRocketUninstall.php @@ -1,8 +1,9 @@ cache_path = trailingslashit( $cache_path ); - $this->config_path = $config_path; - $this->rucss_resources_table = $rucss_resources_table; - $this->rucss_usedcss_table = $rucss_usedcss_table; + public function __construct( $cache_path, $config_path, $rucss_usedcss_table, $rocket_cache ) { + $this->cache_path = trailingslashit( $cache_path ); + $this->config_path = $config_path; + $this->rucss_usedcss_table = $rucss_usedcss_table; + $this->rocket_cache = $rocket_cache; } /** @@ -149,6 +152,7 @@ public function uninstall() { $this->delete_cache_files(); $this->delete_config_files(); $this->drop_rucss_database_tables(); + $this->delete_preload_table(); } /** @@ -178,9 +182,6 @@ private function drop_rucss_database_tables() { * Drop RUCSS tables for current active site. */ private function drop_rucss_current_site_tables() { - if ( $this->rucss_resources_table->exists() ) { - $this->rucss_resources_table->uninstall(); - } if ( $this->rucss_usedcss_table->exists() ) { $this->rucss_usedcss_table->uninstall(); } @@ -239,6 +240,32 @@ private function delete_config_files() { $this->delete( $this->config_path ); } + /** + * Drop preload tables. + */ + private function delete_preload_table() { + // If the table exist, then drop the table. + + if ( $this->rocket_cache->exists() ) { + $this->rocket_cache->uninstall(); + } + + if ( ! is_multisite() ) { + return; + } + + foreach ( get_sites( [ 'fields' => 'ids' ] ) as $site_id ) { + switch_to_blog( $site_id ); + + if ( $this->rocket_cache->exists() ) { + $this->rocket_cache->uninstall(); + } + + restore_current_blog(); + } + + } + /** * Recursively deletes files and directories. * diff --git a/inc/Plugin.php b/inc/Plugin.php index 6b9ea2bb18..e0dcfa1bda 100644 --- a/inc/Plugin.php +++ b/inc/Plugin.php @@ -206,6 +206,7 @@ private function init_admin_subscribers() { 'image_dimensions_admin_subscriber', 'defer_js_admin_subscriber', 'lazyload_admin_subscriber', + 'preload_admin_subscriber', 'minify_admin_subscriber', ]; } @@ -270,9 +271,6 @@ private function init_common_subscribers() { 'critical_css_subscriber', 'sucuri_subscriber', 'expired_cache_purge_subscriber', - 'preload_subscriber', - 'sitemap_preload_subscriber', - 'partial_preload_subscriber', 'fonts_preload_subscriber', 'heartbeat_subscriber', 'db_optimization_subscriber', @@ -304,9 +302,12 @@ private function init_common_subscribers() { 'rucss_frontend_subscriber', 'rucss_cron_subscriber', 'divi', + 'preload_subscriber', + 'preload_front_subscriber', 'polygon', 'preload_links_admin_subscriber', 'preload_links_subscriber', + 'preload_cron_subscriber', 'support_subscriber', 'mod_pagespeed', 'webp_subscriber', @@ -328,6 +329,11 @@ private function init_common_subscribers() { 'jevelin', 'unlimited_elements', 'inline_related_posts', + 'jetpack', + 'rank_math_seo', + 'all_in_one_seo_pack', + 'seopress', + 'the_seo_framework', 'wpml', 'xstore', ]; diff --git a/inc/ThirdParty/Plugins/I18n/WPML.php b/inc/ThirdParty/Plugins/I18n/WPML.php index 0ce8962074..eb5e0778b8 100644 --- a/inc/ThirdParty/Plugins/I18n/WPML.php +++ b/inc/ThirdParty/Plugins/I18n/WPML.php @@ -24,6 +24,8 @@ public static function get_subscribed_events() { $events = [ 'wcml_is_cache_enabled_for_switching_currency' => 'return_true', 'rocket_rucss_is_home_url' => [ 'is_secondary_home', 10, 2 ], + 'rocket_preload_all_to_pending_condition' => 'clean_only_right_domain', + 'rocket_preload_sitemap_before_queue' => 'add_languages_sitemaps', ]; return $events; @@ -55,4 +57,48 @@ public function is_secondary_home( string $home_url, string $url ): string { return $home_url; } + + /** + * Add a condition to clean only urls from the domain when it is the case. + * + * @param string $condition condition used to clean URLS in the database. + * @return string + */ + public function clean_only_right_domain( $condition ) { + global $sitepress; + + $lang = isset( $_GET['lang'] ) && 'all' !== $_GET['lang'] ? sanitize_key( $_GET['lang'] ) : '';// phpcs:ignore WordPress.Security.NonceVerification.Recommended + if ( ! $lang ) { + return $condition; + } + + $lang_url = $sitepress->language_url( $lang ); + + return ' WHERE url LIKE "' . $lang_url . '%"'; + } + + /** + * Add sitemaps from translations. + * + * @param array $sitemaps list of sitemaps to be fetched. + * @return array + */ + public function add_languages_sitemaps( $sitemaps ) { + global $sitepress; + + $new_sitemaps = []; + + // Get active languages on site. + $languages = $sitepress->get_active_languages(); + + $base_url = home_url(); + foreach ( $sitemaps as $sitemap ) { + $new_sitemaps[] = $sitemap; + foreach ( $languages as $lang ) { + $lang_url = $sitepress->language_url( $lang['code'] ); + $new_sitemaps[] = str_replace( $base_url, $lang_url, $sitemap ); + } + } + return array_unique( $new_sitemaps ); + } } diff --git a/inc/ThirdParty/Plugins/Jetpack.php b/inc/ThirdParty/Plugins/Jetpack.php new file mode 100644 index 0000000000..6b93d566c8 --- /dev/null +++ b/inc/ThirdParty/Plugins/Jetpack.php @@ -0,0 +1,61 @@ +option = $option; + } + + /** + * Subscribed events. + */ + public static function get_subscribed_events() { + $events = []; + + if ( ! class_exists( 'Jetpack' ) ) { + return $events; + } + + if ( \Jetpack::is_module_active( 'sitemaps' ) ) { + $events['rocket_sitemap_preload_list'] = 'add_jetpack_sitemap'; + } + + return $events; + } + + /** + * Add Jetpack sitemap to preload list + * + * @param Array $sitemaps Array of sitemaps to preload. + * @return Array Updated Array of sitemaps to preload + */ + public function add_jetpack_sitemap( $sitemaps ) { + if ( ! function_exists( 'jetpack_sitemap_uri' ) ) { + return $sitemaps; + } + + $sitemaps['jetpack'] = jetpack_sitemap_uri(); + + return $sitemaps; + } +} diff --git a/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack.php b/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack.php new file mode 100644 index 0000000000..21d6b66fb0 --- /dev/null +++ b/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack.php @@ -0,0 +1,74 @@ +option = $option; + } + + /** + * Subscribed events. + */ + public static function get_subscribed_events() { + $aioseo_v3 = defined( 'AIOSEOP_VERSION' ); + $aioseo_v4 = defined( 'AIOSEO_VERSION' ) && function_exists( 'aioseo' ); + + if ( ! $aioseo_v3 && ! $aioseo_v4 ) { + return []; + } + + return [ + 'rocket_sitemap_preload_list' => 'add_all_in_one_seo_sitemap', + ]; + } + + /** + * Add All in One SEO Sitemap to the preload list + * + * @param Array $sitemaps Array of sitemaps to preload. + * @return Array Updated array of sitemaps to preload + */ + public function add_all_in_one_seo_sitemap( $sitemaps ) { + + $aioseo_v3 = defined( 'AIOSEOP_VERSION' ); + $aioseo_v4 = defined( 'AIOSEO_VERSION' ) && function_exists( 'aioseo' ); + + $sitemap_enabled = false; + if ( $aioseo_v3 && ! $aioseo_v4 ) { + $aioseop_options = get_option( 'aioseop_options' ); + $sitemap_enabled = ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) && 'on' === $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) || ( ! isset( $aioseop_options['modules']['aiosp_feature_manager_options'] ) && isset( $aioseop_options['modules']['aiosp_sitemap_options'] ) ); + } + + if ( + ( ! $aioseo_v4 && ! $sitemap_enabled ) || + ( $aioseo_v4 && ! aioseo()->options->sitemap->general->enable ) + ) { + return $sitemaps; + } + + if ( $aioseo_v3 ) { + $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aiosp_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + } elseif ( $aioseo_v4 ) { + $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aioseo_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + } + + return $sitemaps; + } +} diff --git a/inc/ThirdParty/Plugins/SEO/RankMathSEO.php b/inc/ThirdParty/Plugins/SEO/RankMathSEO.php new file mode 100644 index 0000000000..9db6be770b --- /dev/null +++ b/inc/ThirdParty/Plugins/SEO/RankMathSEO.php @@ -0,0 +1,54 @@ +option = $option; + } + + /** + * Subscribed events. + */ + public static function get_subscribed_events() { + if ( ! defined( 'RANK_MATH_FILE' ) || ! Helper::is_module_active( 'sitemap' ) ) { + return []; + } + + return [ + 'rocket_sitemap_preload_list' => 'rocket_sitemap', + ]; + } + + /** + * Add SEO sitemap URL to the sitemaps to preload + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ + public function rocket_sitemap( $sitemaps ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + + $sitemaps[] = Router::get_base_url( 'sitemap_index.xml' ); + + return $sitemaps; + } +} diff --git a/inc/ThirdParty/Plugins/SEO/SEOPress.php b/inc/ThirdParty/Plugins/SEO/SEOPress.php new file mode 100644 index 0000000000..3d38d4ad79 --- /dev/null +++ b/inc/ThirdParty/Plugins/SEO/SEOPress.php @@ -0,0 +1,49 @@ +option = $option; + } + + /** + * Subscribed events. + */ + public static function get_subscribed_events() { + if ( ! function_exists( 'seopress_get_toggle_xml_sitemap_option' ) || 1 !== (int) seopress_get_toggle_xml_sitemap_option() ) { + return []; + } + return [ + 'rocket_sitemap_preload_list' => 'add_seopress_sitemap', + ]; + } + + /** + * Add SEOPress sitemap URL to the sitemaps to preload + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ + public function add_seopress_sitemap( $sitemaps ) { + $sitemaps[] = get_home_url() . '/sitemaps.xml'; + + return $sitemaps; + } +} diff --git a/inc/ThirdParty/Plugins/SEO/TheSEOFramework.php b/inc/ThirdParty/Plugins/SEO/TheSEOFramework.php new file mode 100644 index 0000000000..22dde1198f --- /dev/null +++ b/inc/ThirdParty/Plugins/SEO/TheSEOFramework.php @@ -0,0 +1,86 @@ +option = $option; + } + + /** + * Subscribed events. + */ + public static function get_subscribed_events() { + if ( ! function_exists( 'the_seo_framework' ) ) { + return []; + } + $tsf = the_seo_framework(); + + // Either TSF < 3.1, or the plugin's silenced (soft-disabled) via a drop-in. + if ( empty( $tsf->loaded ) ) { + return []; + } + + /** + * 1. Performs option & other checks. + * 2. Checks for conflicting sitemap plugins that might prevent loading. + * + * These methods cache their output at runtime. + * + * @link https://github.com/wp-media/wp-rocket/issues/899 + */ + if ( ! $tsf->can_run_sitemap() ) { + return []; + } + + return [ + 'rocket_sitemap_preload_list' => 'add_tsf_sitemap_to_preload', + ]; + } + + /** + * Adds TSF sitemap URLs to preload. + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ + public function add_tsf_sitemap_to_preload( $sitemaps ) { + + // The autoloader in TSF doesn't check for file_exists(). So, use version compare instead to prevent fatal errors. + if ( version_compare( rocket_get_constant( 'THE_SEO_FRAMEWORK_VERSION', false ), '4.0', '>=' ) ) { + // TSF 4.0+. Expect the class to exist indefinitely. + $sitemap_bridge = Sitemap::get_instance(); + + foreach ( $sitemap_bridge->get_sitemap_endpoint_list() as $id => $data ) { + // When the sitemap is good enough for a robots display, we determine it as valid for precaching. + // Non-robots display types are among the stylesheet endpoint, or the Yoast SEO-compatible endpoint. + // In other words, this enables support for ALL current and future public sitemap endpoints. + if ( ! empty( $data['robots'] ) ) { + $sitemaps[] = $sitemap_bridge->get_expected_sitemap_endpoint_url( $id ); + } + } + } else { + // Deprecated. TSF <4.0. + $sitemaps[] = the_seo_framework()->get_sitemap_xml_url(); + } + + return $sitemaps; + } +} diff --git a/inc/ThirdParty/Plugins/SEO/Yoast.php b/inc/ThirdParty/Plugins/SEO/Yoast.php index c9c879f220..a33f188da8 100644 --- a/inc/ThirdParty/Plugins/SEO/Yoast.php +++ b/inc/ThirdParty/Plugins/SEO/Yoast.php @@ -4,7 +4,6 @@ namespace WP_Rocket\ThirdParty\Plugins\SEO; use WP_Rocket\Admin\Options_Data; -use WP_Rocket\Engine\Admin\Settings\Settings; use WP_Rocket\Event_Management\Subscriber_Interface; class Yoast implements Subscriber_Interface { @@ -31,45 +30,10 @@ public function __construct( Options_Data $options ) { */ public static function get_subscribed_events() { return [ - 'rocket_sitemap_preload_options' => 'add_settings_field', - 'rocket_sitemap_preload_list' => 'add_sitemap', - 'rocket_input_sanitize' => [ 'sanitize_option', 10, 2 ], - 'rocket_first_install_options' => 'add_option', + 'rocket_sitemap_preload_list' => 'add_sitemap', ]; } - /** - * Add Yoast SEO option to WP Rocket settings - * - * @since 2.8 - * - * @param array $options WP Rocket settings array. - * - * @return array - */ - public function add_settings_field( $options ): array { - if ( ! $this->is_sitemap_enabled() ) { - return $options; - } - - $options['yoast_xml_sitemap'] = [ - 'type' => 'checkbox', - 'container_class' => [ - 'wpr-field--children', - ], - 'label' => __( 'Yoast SEO XML sitemap', 'rocket' ), - // translators: %s = Name of the plugin. - 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'Yoast SEO' ), - 'parent' => 'sitemap_preload', - 'section' => 'preload_section', - 'page' => 'preload', - 'default' => 0, - 'sanitize_callback' => 'sanitize_checkbox', - ]; - - return $options; - } - /** * Add Yoast SEO sitemap URL to the sitemaps to preload * @@ -84,10 +48,6 @@ public function add_sitemap( $sitemaps ): array { return $sitemaps; } - if ( ! $this->options->get( 'yoast_xml_sitemap', 0 ) ) { - return $sitemaps; - } - if ( ! class_exists( 'WPSEO_Sitemaps_Router' ) ) { return $sitemaps; } @@ -97,45 +57,6 @@ public function add_sitemap( $sitemaps ): array { return $sitemaps; } - /** - * Sanitize Yoast SEO sitemap option value - * - * @since 2.8 - * - * @param array $input Array of values submitted from the form. - * @param Settings $settings Settings class instance. - * - * @return array - */ - public function sanitize_option( $input, Settings $settings ): array { - if ( ! $this->is_sitemap_enabled() ) { - return $input; - } - - $input['yoast_xml_sitemap'] = $settings->sanitize_checkbox( $input, 'yoast_xml_sitemap' ); - - return $input; - } - - /** - * Add Yoast SEO sitemap option to WP Rocket default options - * - * @since 2.8 - * - * @param array $options WP Rocket options array. - * - * @return array - */ - public function add_option( $options ): array { - if ( ! $this->is_sitemap_enabled() ) { - return $options; - } - - $options['yoast_xml_sitemap'] = 0; - - return $options; - } - /** * Checks if sitemap is enabled in Yoast SEO * diff --git a/inc/ThirdParty/ServiceProvider.php b/inc/ThirdParty/ServiceProvider.php index 9550de0447..5ecf05b9d9 100644 --- a/inc/ThirdParty/ServiceProvider.php +++ b/inc/ThirdParty/ServiceProvider.php @@ -87,6 +87,11 @@ class ServiceProvider extends AbstractServiceProvider { 'convertplug', 'unlimited_elements', 'inline_related_posts', + 'jetpack', + 'rank_math_seo', + 'all_in_one_seo_pack', + 'seopress', + 'the_seo_framework', 'jevelin', 'wpml', 'xstore', @@ -228,5 +233,25 @@ public function register() { $this->getContainer() ->share( 'wpml', WPML::class ) ->addTag( 'common_subscriber' ); + $this->getContainer() + ->share( 'jetpack', 'WP_Rocket\ThirdParty\Plugins\Jetpack' ) + ->addArgument( $options ) + ->addTag( 'common_subscriber' ); + $this->getContainer() + ->share( 'rank_math_seo', 'WP_Rocket\ThirdParty\Plugins\SEO\RankMathSEO' ) + ->addArgument( $options ) + ->addTag( 'common_subscriber' ); + $this->getContainer() + ->share( 'all_in_one_seo_pack', 'WP_Rocket\ThirdParty\Plugins\SEO\AllInOneSEOPack' ) + ->addArgument( $options ) + ->addTag( 'common_subscriber' ); + $this->getContainer() + ->share( 'seopress', 'WP_Rocket\ThirdParty\Plugins\SEO\SEOPress' ) + ->addArgument( $options ) + ->addTag( 'common_subscriber' ); + $this->getContainer() + ->share( 'the_seo_framework', 'WP_Rocket\ThirdParty\Plugins\SEO\TheSEOFramework' ) + ->addArgument( $options ) + ->addTag( 'common_subscriber' ); } } diff --git a/inc/admin/admin.php b/inc/admin/admin.php index 9d4530947b..27f29e6241 100644 --- a/inc/admin/admin.php +++ b/inc/admin/admin.php @@ -356,12 +356,6 @@ function rocket_analytics_data() { $data['cdn_cnames'] = 0; } - if ( ! empty( $data['sitemaps'] ) && is_array( $data['sitemaps'] ) ) { - $data['sitemaps'] = array_map( 'rocket_clean_exclude_file', $data['sitemaps'] ); - } else { - $data['sitemaps'] = []; - } - return $data; } diff --git a/inc/admin/options.php b/inc/admin/options.php old mode 100644 new mode 100755 index 361ca95d2d..6efdc26234 --- a/inc/admin/options.php +++ b/inc/admin/options.php @@ -26,8 +26,6 @@ function rocket_after_save_options( $oldvalue, $value ) { 'cache_mobile' => true, 'purge_cron_interval' => true, 'purge_cron_unit' => true, - 'sitemap_preload' => true, - 'sitemaps' => true, 'database_revisions' => true, 'database_auto_drafts' => true, 'database_trashed_posts' => true, @@ -84,6 +82,8 @@ function rocket_after_save_options( $oldvalue, $value ) { if ( isset( $oldvalue['analytics_enabled'], $value['analytics_enabled'] ) && $oldvalue['analytics_enabled'] !== $value['analytics_enabled'] && 1 === (int) $value['analytics_enabled'] ) { set_transient( 'rocket_analytics_optin', 1 ); } + ksort( $oldvalue_diff ); + ksort( $value_diff ); // If it's different, clean the domain. if ( md5( wp_json_encode( $oldvalue_diff ) ) !== md5( wp_json_encode( $value_diff ) ) ) { @@ -192,7 +192,8 @@ function( $excluded ) use ( $pattern_field, $label, $is_form_submit, &$errors ) } // Regenerate the minify key if JS files have been modified. - if ( ( isset( $newvalue['minify_js'], $oldvalue['minify_js'] ) && $newvalue['minify_js'] !== $oldvalue['minify_js'] ) + // phpcs:ignore WordPress.PHP.StrictComparisons.LooseComparison + if ( ( isset( $newvalue['minify_js'], $oldvalue['minify_js'] ) && $newvalue['minify_js'] != $oldvalue['minify_js'] ) || ( isset( $newvalue['exclude_js'], $oldvalue['exclude_js'] ) && $newvalue['exclude_js'] !== $oldvalue['exclude_js'] ) || ( isset( $oldvalue['cdn'] ) && ! isset( $newvalue['cdn'] ) || ! isset( $oldvalue['cdn'] ) && isset( $newvalue['cdn'] ) ) ) { @@ -238,8 +239,36 @@ function( $excluded ) use ( $pattern_field, $label, $is_form_submit, &$errors ) return $newvalue; } + add_filter( 'pre_update_option_' . rocket_get_constant( 'WP_ROCKET_SLUG' ), 'rocket_pre_main_option', 10, 2 ); +/** + * Clear the main option before it is used later. + * + * @param array $newvalue An array of previous options values. + * @param array $oldvalue An array of previous options values. + * @return array + */ +function rocket_pre_main_option_clear( $newvalue, $oldvalue ) { + foreach ( array_keys( $newvalue ) as $label ) { + if ( is_numeric( $newvalue[ $label ] ) ) { + if ( ctype_digit( (string) $newvalue[ $label ] ) ) { + $newvalue[ $label ] = (int) $newvalue[ $label ]; + } else { + $newvalue[ $label ] = (float) $newvalue[ $label ]; + } + } + } + + if ( ! key_exists( 'cache_webp', $newvalue ) ) { + $newvalue['cache_webp'] = is_array( $oldvalue ) && key_exists( 'cache_webp', $oldvalue ) ? $oldvalue['cache_webp'] : 0; + } + + return $newvalue; +} + +add_filter( 'pre_update_option_' . rocket_get_constant( 'WP_ROCKET_SLUG' ), 'rocket_pre_main_option_clear', PHP_INT_MAX, 2 ); + /** * Auto-activate the SSL cache if the website URL is updated with https protocol * diff --git a/inc/admin/ui/enqueue.php b/inc/admin/ui/enqueue.php index cf6e3eaa38..04768ef528 100644 --- a/inc/admin/ui/enqueue.php +++ b/inc/admin/ui/enqueue.php @@ -8,9 +8,11 @@ * @since 1.0.0 */ function rocket_add_admin_css_js() { - wp_enqueue_style( 'wpr-admin', WP_ROCKET_ASSETS_CSS_URL . 'wpr-admin.css', null, WP_ROCKET_VERSION ); + $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min'; + + wp_enqueue_style( 'wpr-admin', WP_ROCKET_ASSETS_CSS_URL . 'wpr-admin' . $suffix . '.css', null, WP_ROCKET_VERSION ); wp_enqueue_script( 'micromodal', WP_ROCKET_ASSETS_JS_URL . 'micromodal.min.js', null, '0.4.10', true ); - wp_enqueue_script( 'wpr-admin', WP_ROCKET_ASSETS_JS_URL . 'wpr-admin.js', [ 'micromodal' ], WP_ROCKET_VERSION, true ); + wp_enqueue_script( 'wpr-admin', WP_ROCKET_ASSETS_JS_URL . 'wpr-admin' . $suffix . '.js', [ 'micromodal' ], WP_ROCKET_VERSION, true ); wp_localize_script( 'wpr-admin', @@ -32,7 +34,7 @@ function rocket_add_admin_css_js() { ); if ( is_rtl() ) { - wp_enqueue_style( 'wpr-admin-rtl', WP_ROCKET_ASSETS_CSS_URL . 'wpr-admin-rtl.css', null, WP_ROCKET_VERSION ); + wp_enqueue_style( 'wpr-admin-rtl', WP_ROCKET_ASSETS_CSS_URL . 'wpr-admin-rtl' . $suffix . '.css', null, WP_ROCKET_VERSION ); } } diff --git a/inc/admin/ui/notices.php b/inc/admin/ui/notices.php index 5fc68f23aa..599b7a53d1 100755 --- a/inc/admin/ui/notices.php +++ b/inc/admin/ui/notices.php @@ -539,7 +539,7 @@ function rocket_thank_you_license() { /* translators: %1$s = plugin name, %2$s + %3$s = opening links, %4$s = closing link */ __( '%1$s is good to go! %2$sTest your load time%4$s, or visit your %3$ssettings%4$s.', 'rocket' ), '' . WP_ROCKET_PLUGIN_NAME . '', - '', + '', '', '' ); diff --git a/inc/admin/upgrader.php b/inc/admin/upgrader.php index c0f405a667..307589b749 100644 --- a/inc/admin/upgrader.php +++ b/inc/admin/upgrader.php @@ -112,9 +112,6 @@ function rocket_first_install() { 'minify_concatenate_js' => 0, 'minify_google_fonts' => 1, 'manual_preload' => 1, - 'sitemap_preload' => 0, - 'sitemap_preload_url_crawl' => '500000', - 'sitemaps' => [], 'dns_prefetch' => 0, 'preload_fonts' => [], 'database_revisions' => 0, diff --git a/inc/classes/Buffer/class-config.php b/inc/classes/Buffer/class-config.php index 41d984dd11..904222f5a0 100644 --- a/inc/classes/Buffer/class-config.php +++ b/inc/classes/Buffer/class-config.php @@ -193,18 +193,6 @@ public function get_config_file_path() { $host = $this->get_host(); - if ( realpath( self::$config_dir_path . $host . '.php' ) && 0 === stripos( realpath( self::$config_dir_path . $host . '.php' ), $config_dir_real_path ) ) { - $config_file_path = self::$config_dir_path . $host . '.php'; - return self::memoize( - __FUNCTION__, - [], - [ - 'success' => true, - 'path' => $config_file_path, - ] - ); - } - $path = str_replace( '\\', '/', strtok( $this->get_server_input( 'REQUEST_URI', '' ), '?' ) ); $path = preg_replace( '|(?<=.)/+|', '/', $path ); $path = explode( '%2F', preg_replace( '/^(?:%2F)*(.*?)(?:%2F)*$/', '$1', rawurlencode( $path ) ) ); @@ -239,6 +227,18 @@ public function get_config_file_path() { $dir .= $p . '.'; } + if ( realpath( self::$config_dir_path . $host . '.php' ) && 0 === stripos( realpath( self::$config_dir_path . $host . '.php' ), $config_dir_real_path ) ) { + $config_file_path = self::$config_dir_path . $host . '.php'; + return self::memoize( + __FUNCTION__, + [], + [ + 'success' => true, + 'path' => $config_file_path, + ] + ); + } + return self::memoize( __FUNCTION__, [], diff --git a/inc/classes/logger/class-stream-handler.php b/inc/classes/logger/class-stream-handler.php index 317d762dca..7e80bd74e9 100644 --- a/inc/classes/logger/class-stream-handler.php +++ b/inc/classes/logger/class-stream-handler.php @@ -1,58 +1,53 @@ create_htaccess_file(); } @@ -60,10 +55,9 @@ protected function write( array $record ) { /** * Create a .htaccess file in the log folder, to prevent direct access and directory listing. * - * @since 3.2 - * @access protected + * @since 3.2 + * * @throws \UnexpectedValueException When the .htaccess file could not be created. - * @author Grégory Viguier * * @return bool True if the file exists or has been created. False on failure. */ @@ -100,7 +94,7 @@ public function create_htaccess_file() { if ( ! is_resource( $file_resource ) ) { $this->has_error = true; - throw new \UnexpectedValueException( sprintf( 'The file "%s" could not be opened: ' . $this->error_message, $file_path ) ); + throw new UnexpectedValueException( sprintf( 'The file "%s" could not be opened: ' . $this->error_message, $file_path ) ); } $new_content = "\nOrder allow,deny\nDeny from all\n\nOptions -Indexes"; @@ -117,15 +111,14 @@ public function create_htaccess_file() { /** * Temporary error handler that "cleans" the error messages. * - * @since 3.2 - * @access private - * @see parent::customErrorHandler() - * @author Grégory Viguier + * @since 3.2 + * + * @see parent::customErrorHandler() * * @param int $code Error code. * @param string $msg Error message. */ - private function custom_error_handler( $code, $msg ) { + private function custom_error_handler( int $code, string $msg ) { $this->error_message = preg_replace( '{^(fopen|mkdir)\(.*?\): }', '', $msg ); } @@ -133,14 +126,14 @@ private function custom_error_handler( $code, $msg ) { * A dirname() that also works for streams, by removing the protocol. * * @since 3.2 - * @access private - * @see parent::getDirFromStream() - * @author Grégory Viguier + * + * @see parent::getDirFromStream() * * @param string $stream Path to a file. + * * @return null|string */ - private function get_dir_from_stream( $stream ) { + private function get_dir_from_stream( string $stream ) { $pos = strpos( $stream, '://' ); if ( false === $pos ) { diff --git a/inc/classes/subscriber/Media/class-webp-subscriber.php b/inc/classes/subscriber/Media/class-webp-subscriber.php index 4b9011545e..df5ba1f15a 100644 --- a/inc/classes/subscriber/Media/class-webp-subscriber.php +++ b/inc/classes/subscriber/Media/class-webp-subscriber.php @@ -100,17 +100,14 @@ public function __construct( Options_Data $options_data, Options $options_api, C */ public static function get_subscribed_events() { return [ - 'rocket_buffer' => [ 'convert_to_webp', 16 ], - 'rocket_cache_webp_setting_field' => [ + 'rocket_buffer' => [ 'convert_to_webp', 16 ], + 'rocket_cache_webp_setting_field' => [ [ 'maybe_disable_setting_field' ], [ 'webp_section_description' ], ], - 'rocket_disable_webp_cache' => 'maybe_disable_webp_cache', - 'rocket_third_party_webp_change' => 'sync_webp_cache_with_third_party_plugins', - 'rocket_homepage_preload_url_request_args' => 'add_accept_header', - 'rocket_preload_after_purge_cache_request_args' => 'add_accept_header', - 'rocket_preload_url_request_args' => 'add_accept_header', - 'rocket_partial_preload_url_request_args' => 'add_accept_header', + 'rocket_disable_webp_cache' => 'maybe_disable_webp_cache', + 'rocket_third_party_webp_change' => 'sync_webp_cache_with_third_party_plugins', + 'rocket_preload_url_request_args' => 'add_accept_header', ]; } @@ -423,21 +420,17 @@ public function sync_webp_cache_with_third_party_plugins() { /** * Add WebP to the HTTP_ACCEPT headers on preload request when the WebP option is active * - * @since 3.4 - * @author Remy Perona - * - * @param array $args Arguments for the request. + * @param array $headers Headers from the requests to make. * @return array */ - public function add_accept_header( $args ) { + public function add_accept_header( $headers ) { if ( ! $this->options_data->get( 'cache_webp' ) ) { - return $args; + return $headers; } - $args['headers']['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'; - $args['headers']['HTTP_ACCEPT'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'; - - return $args; + $headers['headers']['Accept'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'; + $headers['headers']['HTTP_ACCEPT'] = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'; + return $headers; } /** ----------------------------------------------------------------------------------------- */ diff --git a/inc/common/admin-bar.php b/inc/common/admin-bar.php index f36f100a31..07a4d02ae1 100755 --- a/inc/common/admin-bar.php +++ b/inc/common/admin-bar.php @@ -81,7 +81,7 @@ function rocket_admin_bar( $wp_admin_bar ) { [ 'parent' => 'wp-rocket', 'id' => 'purge-all', - 'title' => __( 'Clear cache', 'rocket' ), + 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), ] ); @@ -133,7 +133,7 @@ function rocket_admin_bar( $wp_admin_bar ) { [ 'parent' => 'wp-rocket', 'id' => 'purge-all', - 'title' => __( 'Clear cache', 'rocket' ), + 'title' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . '&type=all' . $referer ), $action . '_all' ), ] ); @@ -198,84 +198,6 @@ function rocket_admin_bar( $wp_admin_bar ) { } } - if ( current_user_can( 'rocket_preload_cache' ) ) { - /** - * Cache Preload. - */ - $action = 'preload'; - - // Go robot gogo! - if ( get_rocket_option( 'manual_preload', 0 ) ) { - $i18n_plugin = rocket_has_i18n(); - - if ( $i18n_plugin ) { - // Parent. - $wp_admin_bar->add_menu( - [ - 'parent' => 'wp-rocket', - 'id' => 'preload-cache', - 'title' => __( 'Preload cache', 'rocket' ), - ] - ); - - // Add submenu for each active langs. - if ( ! isset( $langlinks ) ) { - switch ( $i18n_plugin ) { - case 'wpml': - $langlinks = get_rocket_wpml_langs_for_admin_bar(); - break; - case 'qtranslate': - $langlinks = get_rocket_qtranslate_langs_for_admin_bar(); - break; - case 'qtranslate-x': - $langlinks = get_rocket_qtranslate_langs_for_admin_bar( 'x' ); - break; - case 'polylang': - $langlinks = get_rocket_polylang_langs_for_admin_bar(); - break; - default: - $langlinks = []; - } - } - - if ( $langlinks ) { - foreach ( $langlinks as $lang ) { - $wp_admin_bar->add_menu( - [ - 'parent' => 'preload-cache', - 'id' => 'preload-cache-' . $lang['code'], - 'title' => $lang['flag'] . ' ' . $lang['anchor'], - 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . '&lang=' . $lang['code'] . $referer ), $action ), - ] - ); - } - - if ( 'wpml' !== $i18n_plugin ) { - // Add subemnu "All langs" (the one for WPML is already printed). - $wp_admin_bar->add_menu( - [ - 'parent' => 'preload-cache', - 'id' => 'preload-cache-all', - 'title' => '
' . __( 'All languages', 'rocket' ) . '
', - 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . '&lang=all' . $referer ), $action ), - ] - ); - } - } - } else { - // Preload All. - $wp_admin_bar->add_menu( - [ - 'parent' => 'wp-rocket', - 'id' => 'preload-cache', - 'title' => __( 'Preload cache', 'rocket' ), - 'href' => wp_nonce_url( admin_url( 'admin-post.php?action=' . $action . $referer ), $action ), - ] - ); - } - } - } - /** * Fires when adding WP Rocket admin bar items * diff --git a/inc/common/purge.php b/inc/common/purge.php index 08417fffef..285c8ac9a0 100755 --- a/inc/common/purge.php +++ b/inc/common/purge.php @@ -126,7 +126,8 @@ function rocket_get_purge_urls( $post_id, $post ) { } continue; } - $purge_urls[] = trailingslashit( $home_url ) . $page; + + $purge_urls[] = trailingslashit( $home_url ) . ltrim( $page, '/' ); } } diff --git a/inc/deprecated/3.12.php b/inc/deprecated/3.12.php new file mode 100644 index 0000000000..1818251ae1 --- /dev/null +++ b/inc/deprecated/3.12.php @@ -0,0 +1,642 @@ + 'checkbox', + 'container_class' => [ + 'wpr-field--children', + ], + 'label' => __( 'All in One SEO XML sitemap', 'rocket' ), + // translators: %s = Name of the plugin. + 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'All in One SEO' ), + 'parent' => 'sitemap_preload', + 'section' => 'preload_section', + 'page' => 'preload', + 'default' => 0, + 'sanitize_callback' => 'sanitize_checkbox', + ]; + + return $options; +} + +/** + * Add sitemap option to WP Rocket settings + * + * @since 3.12 deprecated + * @since 3.2.3 + * + * @param array $options WP Rocket settings array. + * @return array Updated WP Rocket settings array + */ +function rank_math_rocket_sitemap_preload_option( $options ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + $options['rank_math_xml_sitemap'] = [ + 'type' => 'checkbox', + 'container_class' => [ + 'wpr-field--children', + ], + 'label' => __( 'Rank Math XML sitemap', 'rocket' ), + // translators: %s = Name of the plugin. + 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'Rank Math SEO' ), + 'parent' => 'sitemap_preload', + 'section' => 'preload_section', + 'page' => 'preload', + 'default' => 0, + 'sanitize_callback' => 'sanitize_checkbox', + ]; + + return $options; +} + +/** + * Add sitemap option to WP Rocket default options + * + * @since 3.12 deprecated + * @since 3.2.3 + * + * @param array $options WP Rocket options array. + * @return array Updated WP Rocket options array + */ +function rank_math_rocket_add_sitemap_option( $options ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + $options['rank_math_xml_sitemap'] = 0; + + return $options; +} + +/** + * Sanitize SEO sitemap option value + * + * @since 3.12 deprecated + * @since 3.2.3 + * + * @param array $inputs WP Rocket inputs array. + * @return array Sanitized WP Rocket inputs array + */ +function rank_math_rocket_sitemap_option_sanitize( $inputs ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + $inputs['rank_math_xml_sitemap'] = ! empty( $inputs['rank_math_xml_sitemap'] ) ? 1 : 0; + + return $inputs; +} + +/** + * Add SEOPress sitemap option to WP Rocket default options + * + * @since 3.12 deprecated + * @since 3.3.6 + * @author Benjamin Denis + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $options WP Rocket options array. + * @return array Updated WP Rocket options array + */ +function rocket_add_seopress_sitemap_option( $options ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $options['seopress_xml_sitemap'] = 0; + + return $options; +} + +/** + * Sanitize SEOPress sitemap option value + * + * @since 3.12 deprecated + * @since 3.3.6 + * @author Benjamin Denis + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $inputs WP Rocket inputs array. + * @return array Sanitized WP Rocket inputs array + */ +function rocket_seopress_sitemap_option_sanitize( $inputs ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $inputs['seopress_xml_sitemap'] = ! empty( $inputs['seopress_xml_sitemap'] ) ? 1 : 0; + + return $inputs; +} + +/** + * Add SEOPress option to WP Rocket settings + * + * @since 3.12 deprecated + * @since 3.3.6 + * @author Benjamin Denis + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $options WP Rocket settings array. + * @return array Updated WP Rocket settings array + */ +function rocket_sitemap_preload_seopress_option( $options ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $options['seopress_xml_sitemap'] = [ + 'type' => 'checkbox', + 'container_class' => [ + 'wpr-field--children', + ], + 'label' => __( 'SEOPress XML sitemap', 'rocket' ), + // translators: %s = Name of the plugin. + 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'SEOPress' ), + 'parent' => 'sitemap_preload', + 'section' => 'preload_section', + 'page' => 'preload', + 'default' => 0, + 'sanitize_callback' => 'sanitize_checkbox', + ]; + + return $options; +} + +/** + * Adds a sitemap option in WP Rocket for The SEO Framework. + * + * @since 3.12 deprecated + * @since 3.2.1 + * @author Sybre Waaijer + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $options WP Rocket options array. + * @return array Updated WP Rocket options array + */ +function rocket_add_tsf_seo_sitemap_option( $options ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $options['tsf_xml_sitemap'] = 0; + + return $options; +} + +/** + * Sanitizes the added sitemap option for The SEO Framework. + * + * @since 3.12 deprecated + * @since 3.2.1 + * @author Sybre Waaijer + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $inputs WP Rocket inputs array. + * @return array Sanitized WP Rocket inputs array + */ +function rocket_tsf_seo_sitemap_option_sanitize( $inputs ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $inputs['tsf_xml_sitemap'] = ! empty( $inputs['tsf_xml_sitemap'] ) ? 1 : 0; + + return $inputs; +} + +/** + * Add The SEO Framework SEO option to WP Rocket settings + * + * @since 3.12 deprecated + * @since 3.2.1 + * @author Sybre Waaijer + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $options WP Rocket settings array. + * @return array Updated WP Rocket settings array + */ +function rocket_sitemap_add_tsf_sitemap_to_preload_option( $options ) { + _deprecated_function( __FUNCTION__, '3.12' ); + $options['tsf_xml_sitemap'] = [ + 'type' => 'checkbox', + 'container_class' => [ + 'wpr-field--children', + ], + 'label' => __( 'The SEO Framework XML sitemap', 'rocket' ), + // translators: %s = Name of the plugin. + 'description' => sprintf( __( 'We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket' ), 'The SEO Framework' ), + 'parent' => 'sitemap_preload', + 'section' => 'preload_section', + 'page' => 'preload', + 'default' => 0, + 'sanitize_callback' => 'sanitize_checkbox', + ]; + + return $options; +} + +/** + * Add Jetpack option to WP Rocket options + * + * @param Array $options WP Rocket options array. + * @return Array Updated WP Rocket options array + * @since 2.8 + * @author Remy Perona + * + */ +function rocket_add_jetpack_sitemap_option($options) +{ + _deprecated_function( __FUNCTION__, '3.12' ); + $options['jetpack_xml_sitemap'] = 0; + + return $options; +} + +/** + * Sanitize jetpack option value + * + * @param Array $inputs Array of inputs values. + * @return Array Array of inputs values + * @since 2.8 + * @author Remy Perona + * + */ +function rocket_jetpack_sitemap_option_sanitize($inputs) +{ + _deprecated_function( __FUNCTION__, '3.12' ); + $inputs['jetpack_xml_sitemap'] = !empty($inputs['jetpack_xml_sitemap']) ? 1 : 0; + + return $inputs; +} + +/** + * Add Jetpack sitemap to preload list + * + * @param Array $sitemaps Array of sitemaps to preload. + * @return Array Updated Array of sitemaps to preload + * @since 2.8 + * @author Remy Perona + * + */ +function rocket_add_jetpack_sitemap($sitemaps) +{ + _deprecated_function( __FUNCTION__, '3.12' ); + if (get_rocket_option('jetpack_xml_sitemap', false)) { + $sitemaps['jetpack'] = jetpack_sitemap_uri(); + } + + return $sitemaps; +} + +/** + * Add Jetpack sub-option to WP Rocket settings page + * + * @param Array $options WP Rocket options array. + * @return Array Updated WP Rocket options array + * @since 2.8 + * @author Remy Perona + * + */ +function rocket_sitemap_preload_jetpack_option($options) +{ + _deprecated_function( __FUNCTION__, '3.12' ); + $options[] = [ + 'parent' => 'sitemap_preload', + 'type' => 'checkbox', + 'label' => __('Jetpack XML Sitemaps', 'rocket'), + 'label_for' => 'jetpack_xml_sitemap', + 'label_screen' => sprintf(__('Preload the sitemap from the Jetpack plugin', 'rocket'), 'Jetpack'), + 'default' => 0, + ]; + $options[] = [ + 'parent' => 'sitemap_preload', + 'type' => 'helper_description', + 'name' => 'jetpack_xml_sitemap_desc', + // translators: %s = plugin name, e.g. Yoast SEO. + 'description' => sprintf(__('We automatically detected the sitemap generated by the %s plugin. You can check the option to preload it.', 'rocket'), 'Jetpack'), + ]; + + return $options; +} + + +/** + * Add the EU Cookie Law to the list of mandatory cookies before generating caching files. + * + * @param array $cookies List of mandatory cookies. + * @author Jeremy Herve + * + * @since 2.10.1 + */ +function rocket_add_jetpack_cookie_law_mandatory_cookie($cookies) +{ + _deprecated_function( __FUNCTION__, '3.12' ); + $cookies['jetpack-eu-cookie-law'] = 'eucookielaw'; + + return $cookies; +} + +/** + * Add Jetpack cookie when: + * - Jetpack is active. + * - Jetpack's Extra Sidebar Widgets module is active. + * - The widget is active. + * - the rocket_jetpack_eu_cookie_widget option is empty or not set. + * + * @since 2.10.1 + * @author Jeremy Herve + */ +function rocket_activate_jetpack_cookie_law() +{ + _deprecated_function( __FUNCTION__, '3.12' ); + $rocket_jp_eu_cookie_widget = get_option('rocket_jetpack_eu_cookie_widget'); + + if ( + is_active_widget(false, false, 'eu_cookie_law_widget') + && empty($rocket_jp_eu_cookie_widget) + ) { + add_filter('rocket_htaccess_mod_rewrite', '__return_false', 76); + add_filter('rocket_cache_mandatory_cookies', 'rocket_add_jetpack_cookie_law_mandatory_cookie'); + + // Update the WP Rocket rules on the .htaccess file. + flush_rocket_htaccess(); + + // Regenerate the config file. + rocket_generate_config_file(); + + // Set the option, so this is not triggered again. + update_option('rocket_jetpack_eu_cookie_widget', 1, true); + } +} + +/** + * Remove cookies if Jetpack gets deactivated. + * + * @since 2.10.1 + * @author Jeremy Herve + */ +function rocket_remove_jetpack_cookie_law_mandatory_cookie() +{ + _deprecated_function( __FUNCTION__, '3.12' ); + remove_filter('rocket_htaccess_mod_rewrite', '__return_false', 76); + remove_filter('rocket_cache_mandatory_cookies', '_rocket_add_eu_cookie_law_mandatory_cookie'); + + // Update the WP Rocket rules on the .htaccess file. + flush_rocket_htaccess(); + + // Regenerate the config file. + rocket_generate_config_file(); + + // Delete our option. + delete_option('rocket_jetpack_eu_cookie_widget'); +} + +/** + * Add SEO sitemap URL to the sitemaps to preload + * + * @since 3.2.3 + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ +function rank_math_rocket_sitemap( $sitemaps ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + if ( get_rocket_option( 'rank_math_xml_sitemap', false ) ) { + $sitemaps[] = \RankMath\Sitemap\Router::get_base_url( 'sitemap_index.xml' ); + } + + return $sitemaps; +} + +/** + * Add All in One SEO Sitemap to the preload list + * + * @since 2.8 + * @author Remy Perona + * + * @param Array $sitemaps Array of sitemaps to preload. + * @return Array Updated array of sitemaps to preload + */ +function rocket_add_all_in_one_seo_sitemap( $sitemaps ) { + _deprecated_function( __FUNCTION__, '3.12' ); + if ( ! get_rocket_option( 'all_in_one_seo_xml_sitemap', false ) ) { + return $sitemaps; + } + + $aioseo_v3 = defined( 'AIOSEOP_VERSION' ); + $aioseo_v4 = defined( 'AIOSEO_VERSION' ) && function_exists( 'aioseo' ); + + if ( ! $aioseo_v3 && ! $aioseo_v4 ) { + return $sitemaps; + } + + $sitemap_enabled = false; + if ( $aioseo_v3 ) { + $aioseop_options = get_option( 'aioseop_options' ); + $sitemap_enabled = ( isset( $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) && 'on' === $aioseop_options['modules']['aiosp_feature_manager_options']['aiosp_feature_manager_enable_sitemap'] ) || ( ! isset( $aioseop_options['modules']['aiosp_feature_manager_options'] ) && isset( $aioseop_options['modules']['aiosp_sitemap_options'] ) ); + } + + if ( + ( $aioseo_v3 && ! $sitemap_enabled ) || + ( $aioseo_v4 && ! aioseo()->options->sitemap->general->enable ) + ) { + return $sitemaps; + } + + if ( $aioseo_v3 ) { + $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aiosp_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + } elseif ( $aioseo_v4 ) { + $sitemaps[] = trailingslashit( home_url() ) . apply_filters( 'aioseo_sitemap_filename', 'sitemap' ) . '.xml'; // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + } + + return $sitemaps; +} + +/** + * Add SEOPress sitemap URL to the sitemaps to preload + * + * @since 3.3.6 + * @author Benjamin Denis + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ +function rocket_add_seopress_sitemap( $sitemaps ) { + _deprecated_function( __FUNCTION__, '3.12' ); + if ( get_rocket_option( 'seopress_xml_sitemap', false ) ) { + $sitemaps[] = get_home_url() . '/sitemaps.xml'; + } + + return $sitemaps; +} + +/** + * Runs detection and adds extra compatibility for The SEO Framework plugin. + * + * @since 3.2.1 + * @since TODO Removed "conflicting sitemap detection" (detect_sitemap_plugin) call. + * TSF always tries to output it now while trying to give WP Rewrite priority for display. + * @author Sybre Waaijer + */ +function rocket_add_tsf_compat() { + _deprecated_function( __FUNCTION__, '3.12' ); + + $tsf = the_seo_framework(); + + // Either TSF < 3.1, or the plugin's silenced (soft-disabled) via a drop-in. + if ( empty( $tsf->loaded ) ) { + return; + } + + /** + * 1. Performs option & other checks. + * 2. Checks for conflicting sitemap plugins that might prevent loading. + * + * These methods cache their output at runtime. + * + * @link https://github.com/wp-media/wp-rocket/issues/899 + */ + if ( $tsf->can_run_sitemap() ) { + rocket_add_tsf_sitemap_compat(); + } +} + +/** + * Adds compatibility for the sitemap functionality in The SEO Framework plugin. + * + * @since 3.2.1 + * @author Sybre Waaijer + */ +function rocket_add_tsf_sitemap_compat() { + _deprecated_function( __FUNCTION__, '3.12' ); + + add_filter( 'rocket_sitemap_preload_list', 'rocket_add_tsf_sitemap_to_preload' ); +} + +/** + * Adds TSF sitemap URLs to preload. + * + * @since 3.2.1 + * @since TODO Added compatibility support for The SEO Framework v4.0+ + * @author Sybre Waaijer + * @source ./yoast-seo.php (Remy Perona) + * + * @param array $sitemaps Sitemaps to preload. + * @return array Updated Sitemaps to preload + */ +function rocket_add_tsf_sitemap_to_preload( $sitemaps ) { + _deprecated_function( __FUNCTION__, '3.12' ); + + if ( get_rocket_option( 'tsf_xml_sitemap', false ) ) { + // The autoloader in TSF doesn't check for file_exists(). So, use version compare instead to prevent fatal errors. + if ( version_compare( THE_SEO_FRAMEWORK_VERSION, '4.0', '>=' ) ) { + // TSF 4.0+. Expect the class to exist indefinitely. + + $sitemap_bridge = The_SEO_Framework\Bridges\Sitemap::get_instance(); + + foreach ( $sitemap_bridge->get_sitemap_endpoint_list() as $id => $data ) { + // When the sitemap is good enough for a robots display, we determine it as valid for precaching. + // Non-robots display types are among the stylesheet endpoint, or the Yoast SEO-compatible endpoint. + // In other words, this enables support for ALL current and future public sitemap endpoints. + if ( ! empty( $data['robots'] ) ) { + $sitemaps[] = $sitemap_bridge->get_expected_sitemap_endpoint_url( $id ); + } + } + } else { + // Deprecated. TSF <4.0. + $sitemaps[] = the_seo_framework()->get_sitemap_xml_url(); + } + } + + return $sitemaps; +} + +/** + * Launches the Homepage preload (helper function for backward compatibility) + * + * @since 2.6.4 Don't preload localhost & .dev domains + * @since 1.0 + * + * @param string $spider (default: 'cache-preload') The spider name: cache-preload or cache-json. + * @param string $lang (default: '') The language code to preload. + * + * @return bool Status of preload. + */ +function run_rocket_bot( $spider = 'cache-preload', $lang = '' ) { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + if ( ! get_rocket_option( 'manual_preload' ) ) { + return false; + } + + $urls = []; + + if ( ! $lang ) { + $urls = get_rocket_i18n_uri(); + } else { + $urls[] = get_rocket_i18n_home_url( $lang ); + } + + $container = apply_filters( 'rocket_container', null ); + + if ( ! $container ) { + return false; + } + + $controller = $container->get( 'preload_clean_controller' ); + + $controller->partial_clean( $urls ); + + return true; +} + +/** + * Launches the sitemap preload (helper function for backward compatibility) + * + * @since 2.8 + * @author Remy Perona + * + * @return void + */ +function run_rocket_sitemap_preload() { // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals + _deprecated_function( __FUNCTION__, '3.12' ); + if ( ! get_rocket_option( 'manual_preload' ) ) { + return; + } + + $container = apply_filters( 'rocket_container', null ); + + if ( ! $container ) { + return; + } + + $controller = $container->get( 'load_initial_sitemap_controller' ); + + $controller->load_initial_sitemap(); +} diff --git a/inc/deprecated/3.5.php b/inc/deprecated/3.5.php index cb70bd28ff..e855fe4ecb 100644 --- a/inc/deprecated/3.5.php +++ b/inc/deprecated/3.5.php @@ -11,16 +11,6 @@ class_alias( '\WP_Rocket\Engine\Admin\Settings\Render', '\WP_Rocket\Admin\Settin class_alias( '\WP_Rocket\Engine\Admin\Settings\Settings', '\WP_Rocket\Admin\Settings\Settings' ); class_alias( '\WP_Rocket\Engine\Admin\Settings\ServiceProvider', '\WP_Rocket\ServiceProvider\Settings' ); class_alias( '\WP_Rocket\Engine\Admin\Settings\Subscriber', '\WP_Rocket\Subscriber\Admin\Settings\Page_Subscriber' ); -class_alias( '\WP_Rocket\Engine\Preload\AbstractPreload', '\WP_Rocket\Preload\Abstract_Preload' ); -class_alias( '\WP_Rocket\Engine\Preload\AbstractProcess', '\WP_Rocket\Preload\Process' ); -class_alias( '\WP_Rocket\Engine\Preload\FullProcess', '\WP_Rocket\Preload\Full_Process' ); -class_alias( '\WP_Rocket\Engine\Preload\Homepage', '\WP_Rocket\Preload\Homepage' ); -class_alias( '\WP_Rocket\Engine\Preload\PartialPreloadSubscriber', '\WP_Rocket\Subscriber\Preload\Partial_Preload_Subscriber' ); -class_alias( '\WP_Rocket\Engine\Preload\PartialProcess', '\WP_Rocket\Preload\Partial_Process' ); -class_alias( '\WP_Rocket\Engine\Preload\PreloadSubscriber', '\WP_Rocket\Subscriber\Preload\Preload_Subscriber' ); -class_alias( '\WP_Rocket\Engine\Preload\ServiceProvider', '\WP_Rocket\ServiceProvider\Preload_Subscribers' ); -class_alias( '\WP_Rocket\Engine\Preload\Sitemap', '\WP_Rocket\Preload\Sitemap' ); -class_alias( '\WP_Rocket\Engine\Preload\SitemapPreloadSubscriber', '\WP_Rocket\Subscriber\Preload\Sitemap_Preload_Subscriber' ); class_alias( '\WP_Rocket\Engine\Optimization\GoogleFonts\Combine', '\WP_Rocket\Optimization\CSS\Combine_Google_Fonts' ); class_alias( '\WP_Rocket\Engine\Optimization\GoogleFonts\Subscriber', '\WP_Rocket\Subscriber\Optimization\Combine_Google_Fonts_Subscriber' ); @@ -908,4 +898,4 @@ function rocket_tag_row_actions( $actions, $term ) { $actions['rocket_purge'] = sprintf( '%s', $url, __( 'Clear this cache', 'rocket' ) ); return $actions; -} \ No newline at end of file +} diff --git a/inc/main.php b/inc/main.php index fd6e0608e0..845909a913 100644 --- a/inc/main.php +++ b/inc/main.php @@ -53,7 +53,6 @@ function rocket_init() { require_once WP_ROCKET_FUNCTIONS_PATH . 'api.php'; require WP_ROCKET_FUNCTIONS_PATH . 'posts.php'; require WP_ROCKET_FUNCTIONS_PATH . 'admin.php'; - require WP_ROCKET_INC_PATH . '/API/preload.php'; require WP_ROCKET_INC_PATH . '/API/bypass.php'; require WP_ROCKET_FUNCTIONS_PATH . 'formatting.php'; require WP_ROCKET_FUNCTIONS_PATH . 'i18n.php'; @@ -69,6 +68,7 @@ function rocket_init() { require WP_ROCKET_DEPRECATED_PATH . '3.9.php'; require WP_ROCKET_DEPRECATED_PATH . '3.10.php'; require WP_ROCKET_DEPRECATED_PATH . '3.11.php'; + require WP_ROCKET_DEPRECATED_PATH . '3.12.php'; require WP_ROCKET_3RD_PARTY_PATH . '3rd-party.php'; require WP_ROCKET_COMMON_PATH . 'admin-bar.php'; diff --git a/languages/rocket-fa_IR.mo b/languages/rocket-fa_IR.mo index 118b25e137..7e232d8d85 100644 Binary files a/languages/rocket-fa_IR.mo and b/languages/rocket-fa_IR.mo differ diff --git a/languages/rocket-fa_IR.po b/languages/rocket-fa_IR.po index 42ce97484a..554bf03023 100644 --- a/languages/rocket-fa_IR.po +++ b/languages/rocket-fa_IR.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2022-06-23 14:06-0400\n" +"POT-Creation-Date: 2022-08-16 15:13-0400\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Mohammad Yousefzadeh , 2022\n" "Language-Team: Persian (Iran) (https://www.transifex.com/wp-media/teams/18133/fa_IR/)\n" @@ -48,50 +48,12 @@ msgstr "" "سایت شما توسط %s میزبانی می‌شود، ما برای سازگاری پاک‌سازی خودکار وارنیش را " "فعال کرده‌ایم." -#: inc/3rd-party/plugins/jetpack.php:86 -msgid "Jetpack XML Sitemaps" -msgstr "نقشه سایت جت‌پک" - -#: inc/3rd-party/plugins/jetpack.php:88 -msgid "Preload the sitemap from the Jetpack plugin" -msgstr "پیش‌بارگذاری نقشه سایت از افزونه جت‌پک" - -#: inc/3rd-party/plugins/jetpack.php:96 -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:118 -#: inc/3rd-party/plugins/seo/rank-math-seo.php:34 -#: inc/3rd-party/plugins/seo/seopress.php:86 -#: inc/3rd-party/plugins/seo/the-seo-framework.php:144 -#: inc/ThirdParty/Plugins/SEO/Yoast.php:62 inc/deprecated/3.11.php:83 -#, php-format -msgid "" -"We automatically detected the sitemap generated by the %s plugin. You can " -"check the option to preload it." -msgstr "" -"ما به طور خودکار نقشه سایت تولید شده توسط پلاگین %s را تشخیص می‌دهیم. شما می" -" توانید این گزینه را برای بارگذاری اولیه آن تیک بزنید." - -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:116 -msgid "All in One SEO XML sitemap" -msgstr "نقشه سایت All in One SEO" - -#: inc/3rd-party/plugins/seo/rank-math-seo.php:32 -msgid "Rank Math XML sitemap" -msgstr "نقشه سایت Rank Math" - -#: inc/3rd-party/plugins/seo/seopress.php:84 -msgid "SEOPress XML sitemap" -msgstr "نقشه سایت Rank Math" - -#: inc/3rd-party/plugins/seo/the-seo-framework.php:142 -msgid "The SEO Framework XML sitemap" -msgstr "نقشه سایت SEO Framework" - #: inc/Addon/Cloudflare/APIClient.php:309 msgid "Cloudflare did not provide any reply. Please try again later." msgstr "Cloudflare هیچ پاسخی نداد. مجدد تلاش کنید." -#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:122 -#: inc/deprecated/3.5.php:179 +#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:112 +#: inc/deprecated/3.5.php:169 msgid "Incorrect Cloudflare email address or API key." msgstr "ایمیل یا کلید API حساب Cloudflare نادرست است." @@ -100,9 +62,9 @@ msgstr "ایمیل یا کلید API حساب Cloudflare نادرست است." #: inc/Addon/Cloudflare/Cloudflare.php:112 #: inc/Addon/Cloudflare/Cloudflare.php:144 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:157 -#: inc/deprecated/3.5.php:102 inc/deprecated/3.5.php:126 -#: inc/deprecated/3.5.php:139 inc/deprecated/3.5.php:167 -#: inc/deprecated/3.5.php:183 +#: inc/deprecated/3.5.php:92 inc/deprecated/3.5.php:116 +#: inc/deprecated/3.5.php:129 inc/deprecated/3.5.php:157 +#: inc/deprecated/3.5.php:173 #, php-format msgid "Read the %1$sdocumentation%2$s for further guidance." msgstr "برای کسب اطلاعات بیشتر این %1$sمستندات%2$s را مطالعه فرمایید." @@ -111,10 +73,10 @@ msgstr "برای کسب اطلاعات بیشتر این %1$sمستندات%2$s #: inc/Addon/Cloudflare/APIClient.php:337 #: inc/Addon/Cloudflare/Cloudflare.php:101 #: inc/Addon/Cloudflare/Cloudflare.php:114 -#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:91 -#: inc/deprecated/3.5.php:104 inc/deprecated/3.5.php:128 -#: inc/deprecated/3.5.php:141 inc/deprecated/3.5.php:169 -#: inc/deprecated/3.5.php:185 inc/deprecated/3.5.php:218 +#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:81 +#: inc/deprecated/3.5.php:94 inc/deprecated/3.5.php:118 +#: inc/deprecated/3.5.php:131 inc/deprecated/3.5.php:159 +#: inc/deprecated/3.5.php:175 inc/deprecated/3.5.php:208 msgid "" "https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" "cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" @@ -122,7 +84,7 @@ msgstr "" "https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" "cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" -#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:135 +#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:125 msgid "Incorrect Cloudflare Zone ID." msgstr "شناسه ناحیه Cloudflare نامعتبر است." @@ -135,20 +97,20 @@ msgstr "" "ایمیل یا کلید API سرویس Cloudflare تنظیم نشده است. مستندات %1$sراهنمای%2$s " "آن را بخوانید." -#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:98 +#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:88 msgid "Missing Cloudflare Zone ID." msgstr "شناسه ناحیه Cloudflare یافت نشد." -#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:163 +#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:153 msgid "It looks like your domain is not set up on Cloudflare." msgstr "به نظر می رسد دامنه شما در سرویس Cloudflare اضافه نشده است." -#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:597 +#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:587 #, php-format msgid "WP Rocket: %s" msgstr "راکت وردپرس: %s" -#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:602 +#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:592 msgid "WP Rocket: Cloudflare cache successfully purged." msgstr "WP Rocket:کش CloudFlare با موفقیت پاک شد." @@ -269,27 +231,27 @@ msgstr[0] "API فایروال Sucuri خطای نامشخص زیر را برگر msgstr[1] "API فایروال Sucuri خطای نامشخص زیر را برگرداند:%s" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1442 +#: inc/Engine/Admin/Settings/Page.php:1399 msgid "Revisions" msgstr "بازبینی‌ها" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1452 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "Auto Drafts" msgstr "پیش نویس خودکار" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1419 msgid "Trashed Posts" msgstr "نوشته‌های داخل زباله دان" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1472 +#: inc/Engine/Admin/Settings/Page.php:1429 msgid "Spam Comments" msgstr "دیدگاه‌های اسپم" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1439 msgid "Trashed Comments" msgstr "دیدگاه‌های زباله‌دان" @@ -346,36 +308,36 @@ msgstr "اعتبار لایسنس" msgid "Unavailable" msgstr "دردسترس نیست" -#: inc/Engine/Admin/Settings/Page.php:341 inc/deprecated/deprecated.php:1789 +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 #: views/settings/page-sections/dashboard.php:80 msgid "License" msgstr "کد لایسنس" -#: inc/Engine/Admin/Settings/Page.php:358 +#: inc/Engine/Admin/Settings/Page.php:359 msgid "API key" msgstr "کلید API" -#: inc/Engine/Admin/Settings/Page.php:373 +#: inc/Engine/Admin/Settings/Page.php:374 msgid "Email address" msgstr "ایمیل" -#: inc/Engine/Admin/Settings/Page.php:399 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Dashboard" msgstr "پیشخوان" -#: inc/Engine/Admin/Settings/Page.php:400 +#: inc/Engine/Admin/Settings/Page.php:401 msgid "Get help, account info" msgstr "دریافت راهنمایی، اطلاعات حساب کاربری" -#: inc/Engine/Admin/Settings/Page.php:409 +#: inc/Engine/Admin/Settings/Page.php:410 msgid "My Status" msgstr "وضعیت من" -#: inc/Engine/Admin/Settings/Page.php:419 views/settings/page.php:75 +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 msgid "Rocket Analytics" msgstr "تجزیه و تحلیل موشک" -#: inc/Engine/Admin/Settings/Page.php:421 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" "I agree to share anonymous data with the development team to help improve WP" @@ -384,23 +346,23 @@ msgstr "" "من با اشتراک گذاری داده‌های ناشناس با تیم توسعه برای گسترش موشک وردپرس " "موافقم. %1$sچه اطلاعاتی را جمع آوری می‌کنیم؟%2$s" -#: inc/Engine/Admin/Settings/Page.php:445 inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 msgid "Cache" msgstr "کش" -#: inc/Engine/Admin/Settings/Page.php:446 +#: inc/Engine/Admin/Settings/Page.php:447 msgid "Basic cache options" msgstr "گزینه‌های اصلی کش" -#: inc/Engine/Admin/Settings/Page.php:453 +#: inc/Engine/Admin/Settings/Page.php:454 msgid "Mobile Cache" msgstr "کش موبایل" -#: inc/Engine/Admin/Settings/Page.php:455 +#: inc/Engine/Admin/Settings/Page.php:456 msgid "Speed up your site for mobile visitors." msgstr "سرعت سایت خود را برای بازدید کنندگان موبایل نیز افزایش دهید." -#: inc/Engine/Admin/Settings/Page.php:460 +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" "We detected you use a plugin that requires a separate cache for mobile, and " "automatically enabled this option for compatibility." @@ -408,11 +370,11 @@ msgstr "" "ما متوجه شدیم که شما از یک افزونه استفاده می‌کنید که نیاز به یک کش مجزا برای" " موبایل دارد، و این گزینه را برای سازگاری به طور خودکار فعال کردیم." -#: inc/Engine/Admin/Settings/Page.php:464 +#: inc/Engine/Admin/Settings/Page.php:465 msgid "User Cache" msgstr "کش کاربر" -#: inc/Engine/Admin/Settings/Page.php:467 +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" "%1$sUser cache%2$s is great when you have user-specific or restricted " @@ -421,11 +383,11 @@ msgstr "" "زمانی که در وبسایت خود محتوای مخصوص کاربران یا محافظت شده دارید %1$s کش " "کاربر%2$s برای شما عالی خواهد بود." -#: inc/Engine/Admin/Settings/Page.php:475 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Cache Lifespan" msgstr "طول عمر کش" -#: inc/Engine/Admin/Settings/Page.php:478 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " @@ -435,19 +397,19 @@ msgstr "" "فایل های کش قدیمی تر از طول عمر مشخص شده حذف می شوند.
فعال کردن%1$sپیش " "بارگذاری%2$s برای کش باعث ایجاد خودکار آن بعد از دوره پایان عمر آن می شود." -#: inc/Engine/Admin/Settings/Page.php:492 +#: inc/Engine/Admin/Settings/Page.php:493 msgid "Enable caching for logged-in WordPress users" msgstr "فعال‌سازی کش برای کاربران وارد شده‌ی وردپرس" -#: inc/Engine/Admin/Settings/Page.php:500 +#: inc/Engine/Admin/Settings/Page.php:501 msgid "Enable caching for mobile devices" msgstr "فعال سازی کش برای دستگاه‌های موبایل" -#: inc/Engine/Admin/Settings/Page.php:515 +#: inc/Engine/Admin/Settings/Page.php:516 msgid "Separate cache files for mobile devices" msgstr "جداسازی فایل‌های کش برای دستگاه‌های موبایل" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:518 #, php-format msgid "" "Most modern themes are responsive and should work without a separate cache. " @@ -458,13 +420,13 @@ msgstr "" "را فقط در صورتی انجام دهید که قالب یا افزونه اختصاصی موبایل دارید.%1$sمطالعه" " راهنما%2$s" -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "مدت زمانی که بعد از آن کش عمومی پاک می‌شود را تعیین کنید
(0 = نامحدود)" -#: inc/Engine/Admin/Settings/Page.php:535 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" @@ -473,32 +435,32 @@ msgstr "" "اگر به طور متناوب خطاهایی را مشاهده می‌کنید طول عمر کش را به 10 ساعت یا کمتر" " کاهش دهید. %1$sچرا؟%2$s" -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:542 #: inc/Engine/License/views/promo-banner.php:30 #: inc/Engine/License/views/renewal-soon-banner.php:13 msgid "Hours" msgstr "ساعت‌" -#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/Admin/Settings/Page.php:543 #: inc/Engine/License/views/promo-banner.php:29 #: inc/Engine/License/views/renewal-soon-banner.php:12 msgid "Days" msgstr "روزها" -#: inc/Engine/Admin/Settings/Page.php:577 +#: inc/Engine/Admin/Settings/Page.php:578 msgid "File Optimization" msgstr "بهینه‌سازی فایل" -#: inc/Engine/Admin/Settings/Page.php:578 +#: inc/Engine/Admin/Settings/Page.php:579 msgid "Optimize CSS & JS" msgstr "بهینه‌سازی CSS و JS" -#: inc/Engine/Admin/Settings/Page.php:585 +#: inc/Engine/Admin/Settings/Page.php:586 msgid "CSS Files" msgstr "فایل‌های CSS" -#: inc/Engine/Admin/Settings/Page.php:592 -#: inc/Engine/Admin/Settings/Page.php:602 +#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" "%1$s Minification is currently activated in Autoptimize. If" @@ -508,11 +470,11 @@ msgstr "" "اگر مایل به استفاده از فشرده‌ساز %2$s هستید، گزینه‌های آن را در بهینه‌ساز " "خودکار غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:595 +#: inc/Engine/Admin/Settings/Page.php:596 msgid "JavaScript Files" msgstr "فایل‌های جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" "If you have problems after activating this option, copy and paste the " @@ -525,7 +487,7 @@ msgstr "" "شود:
%1$s

همچنین لطفا%2$sمستندات%3$s را مطالعه" " نمایید." -#: inc/Engine/Admin/Settings/Page.php:616 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " @@ -536,27 +498,29 @@ msgstr "" "را حذف کنید تا از این گزینه نهایت استفاده را ببرید.
اگر این باعث مشکل شد،" " به حالت پیشفرض بازگردید از طریق%1$sاینجا%2$s" -#: inc/Engine/Admin/Settings/Page.php:625 +#: inc/Engine/Admin/Settings/Page.php:626 msgid "Minify CSS files" msgstr "فشرده‌سازی فایل‌های CSS" -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:627 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "فشرده‌سازی فایل‌های CSS حجم را با استفاده از حذف کامنت‌ها و فضاهای خالی کاهش" " می‌دهد." -#: inc/Engine/Admin/Settings/Page.php:639 -#: inc/Engine/Admin/Settings/Page.php:663 -#: inc/Engine/Admin/Settings/Page.php:793 -#: inc/Engine/Admin/Settings/Page.php:817 -msgid "This could break things!" -msgstr "این ممکن است بعضی چیزها را خراب کند!" - #: inc/Engine/Admin/Settings/Page.php:640 #: inc/Engine/Admin/Settings/Page.php:664 +#: inc/Engine/Admin/Settings/Page.php:728 #: inc/Engine/Admin/Settings/Page.php:794 #: inc/Engine/Admin/Settings/Page.php:818 +msgid "This could break things!" +msgstr "این ممکن است بعضی چیزها را خراب کند!" + +#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" "If you notice any errors on your website after having activated this " "setting, just deactivate it again, and your site will be back to normal." @@ -564,17 +528,17 @@ msgstr "" "اگر پس از فعال‌سازی این تنظیمات در سایت خود با خطایی مواجه شدید، فقط آن " "تنظیم را غیرفعال کرده تا سایت به وضعیت عادی بازگردد." -#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:642 msgid "Activate minify CSS" msgstr "فعال‌سازی فشرده‌ساز CSS" -#: inc/Engine/Admin/Settings/Page.php:646 +#: inc/Engine/Admin/Settings/Page.php:647 msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" "ادغام فایل‌های CSS (برای انتخاب این گزینه، فشرده ساز فایل‌های CSS را " "فعال کنید)" -#: inc/Engine/Admin/Settings/Page.php:648 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" "Combine CSS merges all your files into 1, reducing HTTP requests. Not " @@ -584,7 +548,7 @@ msgstr "" " درخواست‌های HTTP می‌شود. اگر سایت شما از HTTP/2 استفاده می‌کند این گزینه " "توصیه نمی‌شود. %1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:649 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" "For compatibility and best results, this option is disabled when Remove " "unused CSS is enabled." @@ -592,15 +556,15 @@ msgstr "" "برای سازگاری و بهترین نتایج، وقتی Remove unused CSS فعال باشد، این گزینه " "غیرفعال می شود." -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:666 msgid "Activate combine CSS" msgstr "فعال‌سازی ادغام CSS" -#: inc/Engine/Admin/Settings/Page.php:670 inc/admin/options.php:122 +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 msgid "Excluded CSS Files" msgstr "فایل‌های CSS مستثنی شده" -#: inc/Engine/Admin/Settings/Page.php:671 +#: inc/Engine/Admin/Settings/Page.php:672 msgid "" "Specify URLs of CSS files to be excluded from minification and concatenation" " (one per line)." @@ -608,7 +572,7 @@ msgstr "" "آدرس استایل های CSS برای صرف نظر از فشرده و یکپارچه سازی را وارد کنید ( هر " "آدرس در یک خط)." -#: inc/Engine/Admin/Settings/Page.php:672 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -617,7 +581,7 @@ msgstr "" "داخلی:بخش دامنه URL به طور خودکار برداشته می شود. برای حذف " "همه فایل های CSS که در یک مسیر خاص قرار دارند ، از (.*). css استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:674 +#: inc/Engine/Admin/Settings/Page.php:675 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -626,12 +590,12 @@ msgstr "" "شخص 3rd:برای حذف CSS خارجی ، از مسیر URL کامل یا فقط از نام" " دامنه استفاده کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:687 -#: inc/Engine/Admin/Settings/Page.php:709 +#: inc/Engine/Admin/Settings/Page.php:688 +#: inc/Engine/Admin/Settings/Page.php:710 msgid "Optimize CSS delivery" msgstr "بهینه‌سازی تحویل CSS" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -641,7 +605,7 @@ msgstr "" "فقط یک روش را می توان انتخاب کرد. برای عملکرد مطلوب حذف CSS استفاده نشده " "توصیه می شود. اما فقط محدود برای افرادی است که لایسنس فعال دارند." -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -651,7 +615,7 @@ msgstr "" "فقط یک روش را می توان انتخاب کرد. برای عملکرد مطلوب حذف CSS استفاده نشده " "توصیه می شود." -#: inc/Engine/Admin/Settings/Page.php:702 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" @@ -659,11 +623,11 @@ msgid "" msgstr "" "ویژگی بهینه سازی تحویل CSS در محیط محلی غیرفعال است.%1$sبیشتر بخوانید%2$s" -#: inc/Engine/Admin/Settings/Page.php:722 -msgid "Remove Unused CSS (Beta)" -msgstr "حذف CSS های بون استفاده ( بتا)" +#: inc/Engine/Admin/Settings/Page.php:723 inc/admin/ui/meta-boxes.php:77 +msgid "Remove Unused CSS" +msgstr "حذف CSS بدون استفاده" -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." @@ -672,29 +636,15 @@ msgstr "" "حذف CSS بلااستفاده در هر برگه و کمک به کاهش حجم و درخواست HTTP صفحه. توصیه " "شده برای عملکرد بهتر. امتحان کنید.%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:727 -msgid "We’re still working on it!" -msgstr "هنوز در حال کار روی آن هستیم!" - -#: inc/Engine/Admin/Settings/Page.php:728 -msgid "" -"This is a beta feature. We’re providing you early access but some changes " -"might be added later on. If you notice any errors on your website, simply " -"deactivate the feature." -msgstr "" -"این یک ویژگی بتا است. ما دسترسی اولیه را در اختیار شما قرار می دهیم ، اما " -"برخی تغییرات ممکن است بعداً اضافه شوند. در صورت مشاهده هرگونه خطا در وب سایت" -" خود ، به سادگی این ویژگی را غیرفعال کنید." - -#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:730 msgid "Activate Remove Unused CSS" msgstr "حذف CSS های بدون استفاده را فعال کنید" -#: inc/Engine/Admin/Settings/Page.php:735 +#: inc/Engine/Admin/Settings/Page.php:736 msgid "CSS safelist" msgstr "لیست بدون خطر CSS" -#: inc/Engine/Admin/Settings/Page.php:736 +#: inc/Engine/Admin/Settings/Page.php:737 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -702,11 +652,11 @@ msgstr "" "نام فایل های CSS ، شناسه ها یا کلاس هایی را که نباید حذف شوند (یکی در هر خط)" " مشخص کنید." -#: inc/Engine/Admin/Settings/Page.php:751 inc/admin/ui/meta-boxes.php:80 +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 msgid "Load CSS asynchronously" msgstr "CSS را به صورت غیر همزمان بارگذاری کنید" -#: inc/Engine/Admin/Settings/Page.php:754 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format msgctxt "WP Critical CSS compatibility" msgid "" @@ -717,7 +667,7 @@ msgstr "" "بارگیری CSS به صورت ناهمزمان توسط افزونه موشک وردپرس انجام شود. افزونه %1$s " "غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:756 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" @@ -725,11 +675,11 @@ msgstr "" "مسیر بحرانی CSS را ایجاد می کند و CSS را به صورت نا همزمان بارگذاری می " "کند.%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:762 +#: inc/Engine/Admin/Settings/Page.php:763 msgid "Fallback critical CSS" msgstr "CSSهای معوق بحرانی" -#: inc/Engine/Admin/Settings/Page.php:764 +#: inc/Engine/Admin/Settings/Page.php:765 #, php-format msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " @@ -738,29 +688,29 @@ msgstr "" "اگر مسیرهای بحرانی تولید شده خودکار CSS ناقص بود، یک تعویق ارائه دهید " "%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:779 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "Minify JavaScript files" msgstr "فشرده‌سازی فایل‌های جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:780 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "فشرده‌سازی فایل‌های جاوا اسکریپت حجم را با استفاده از حذف کامنت‌ها و فضاهای " "خالی کاهش می‌دهد." -#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:796 msgid "Activate minify JavaScript" msgstr "فعال‌سازی فشرده‌سازی جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:800 +#: inc/Engine/Admin/Settings/Page.php:801 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" "ادغام فایل‌های جاوا اسکریپت (برای انتخاب این گزینه، فشرده ساز فایل‌های " "جاوا اسکریپت را فعال کنید)" -#: inc/Engine/Admin/Settings/Page.php:802 +#: inc/Engine/Admin/Settings/Page.php:803 #, php-format msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" @@ -771,7 +721,7 @@ msgstr "" "درخواست های HTTP را کاهش می دهد. اگر سایت شما از HTTP/2 استفاده می کند توصیه" " نمی شود. %1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:803 +#: inc/Engine/Admin/Settings/Page.php:804 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -779,15 +729,15 @@ msgstr "" "برای سازگاری و بهترین نتایج ، این گزینه با فعال کردن تأخیر در اجرای جاوا " "اسکریپت غیرفعال می شود." -#: inc/Engine/Admin/Settings/Page.php:819 +#: inc/Engine/Admin/Settings/Page.php:820 msgid "Activate combine JavaScript" msgstr "فعال‌سازی ادغام جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:824 inc/admin/options.php:123 +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 msgid "Excluded Inline JavaScript" msgstr "حذف جاوا اسکریپت داخلی" -#: inc/Engine/Admin/Settings/Page.php:826 +#: inc/Engine/Admin/Settings/Page.php:827 #, php-format msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" @@ -796,13 +746,13 @@ msgstr "" "برای مستثنی کردن فایل‌های جاوا اسکریپت از ادغام و فشرده سازی، آدرس آن را " "اینجا وارد کنید.(هرخط یک آدرس).%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:842 -#: inc/Engine/Admin/Settings/Page.php:875 -#: inc/Engine/Admin/Settings/Page.php:904 inc/admin/options.php:124 +#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 msgid "Excluded JavaScript Files" msgstr "مستثنی کردن فایل‌های جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:844 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -810,7 +760,7 @@ msgstr "" "نشانی های وب فایلهای جاوا اسکریپت را مشخص کنید تا از کوچک سازی و اتصال (یکی " "در هر خط) حذف شوند." -#: inc/Engine/Admin/Settings/Page.php:844 +#: inc/Engine/Admin/Settings/Page.php:845 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -819,7 +769,7 @@ msgstr "" "داخلی:بخش دامنه URL به طور خودکار برداشته می شود. از (*). " "js برای حذف تمام فایل های JS واقع در یک مسیر خاص استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:846 +#: inc/Engine/Admin/Settings/Page.php:847 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -828,11 +778,11 @@ msgstr "" "شخص 3rd :برای حذف JS خارجی ، از مسیر URL کامل یا فقط نام " "دامنه استفاده کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:862 +#: inc/Engine/Admin/Settings/Page.php:863 msgid "Load JavaScript deferred" msgstr "بارگذاری جاوا اسکریپت به صورت تاخیری" -#: inc/Engine/Admin/Settings/Page.php:864 +#: inc/Engine/Admin/Settings/Page.php:865 #, php-format msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " @@ -842,7 +792,7 @@ msgstr "" "اسکریپت‌های مسدود کننده رندر render-blocking صفحه را حذف می‌کند. %1$sاطلاعات" " بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:877 +#: inc/Engine/Admin/Settings/Page.php:878 #, php-format msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " @@ -851,11 +801,11 @@ msgstr "" "برای مستثنی کردن فایل‌های جاوا اسکریپت از تعویق، آدرس آن را اینجا وارد " "کنید(هرخط یک آدرس).%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:893 inc/admin/ui/meta-boxes.php:82 +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 msgid "Delay JavaScript execution" msgstr "تاخیر اجرای جاوا اسکریپت" -#: inc/Engine/Admin/Settings/Page.php:895 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" "Improves performance by delaying the loading of JavaScript files until user " @@ -864,7 +814,7 @@ msgstr "" "با تأخیر در بارگذاری فایل های جاوا اسکریپت تا تعامل کاربر (به عنوان مثال " "پیمایش ، کلیک) ، عملکرد را بهبود می بخشد.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:905 +#: inc/Engine/Admin/Settings/Page.php:906 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -872,23 +822,23 @@ msgstr "" "نشانی های اینترنتی یا کلمات کلیدی را مشخص کنید که بتوانند درون خطی یا فایل " "های جاوا اسکریپت را شناسایی کنند تا از تأخیر اجرا حذف شوند (یکی در هر خط)." -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:937 msgid "Media" msgstr "رسانه" -#: inc/Engine/Admin/Settings/Page.php:937 +#: inc/Engine/Admin/Settings/Page.php:938 msgid "LazyLoad, image dimensions" msgstr "بارگذاری تنبل، ابعاد تصویر" -#: inc/Engine/Admin/Settings/Page.php:946 +#: inc/Engine/Admin/Settings/Page.php:947 msgid "Autoptimize" msgstr "بهینه‌سازی خودکار" -#: inc/Engine/Admin/Settings/Page.php:991 +#: inc/Engine/Admin/Settings/Page.php:992 msgid "LazyLoad" msgstr "بارگزاری تنبل" -#: inc/Engine/Admin/Settings/Page.php:994 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" "It can improve actual and perceived loading time as images, iframes, and " @@ -900,7 +850,7 @@ msgstr "" "محسوس کاهش یابد. همچنین (تعداد درخواست‌های) HTTP نیز کاهش خواهد یافت. " "%1$sاطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:1001 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " @@ -909,11 +859,11 @@ msgstr "" "بارگذاری تنبل در حال حاضر فعال است در%2$s. اگر می خواهید از بارگذاری تنبل " "موشک وردپرس استفاده کنید، این گزینه %2$s را غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:1004 +#: inc/Engine/Admin/Settings/Page.php:1005 msgid "Image Dimensions" msgstr "ابعاد تصویر" -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" "Add missing width and height attributes to images. Helps prevent layout " @@ -923,11 +873,11 @@ msgstr "" "ویژگی های عرض و ارتفاع را به تصاویر بدون آن اضافه کنید. به جلوگیری از تغییر " "چیدمان و بهبود تجربه خواندن برای بازدیدکنندگان کمک می کند.%1$s راهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1026 +#: inc/Engine/Admin/Settings/Page.php:1027 msgid "Enable for images" msgstr "فعال‌سازی برای تصاویر" -#: inc/Engine/Admin/Settings/Page.php:1038 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " @@ -936,20 +886,20 @@ msgstr "" "در حال حاضر بارگذاری تنبل تصاویر در %2$s فعال است. اگر می خواهید از " "%1$sبارگذاری تنبل استفاده کنید. این گزینه را در %2$s غیرفعال کنید." -#: inc/Engine/Admin/Settings/Page.php:1046 +#: inc/Engine/Admin/Settings/Page.php:1047 msgid "Enable for iframes and videos" msgstr "فعال سازی برای آی‌فریم‌ها و ویدیوها" -#: inc/Engine/Admin/Settings/Page.php:1061 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "Replace YouTube iframe with preview image" msgstr "جایگزینی آی‌فریم یوتیوب با تصویر پیش‌نمایش" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 #, php-format msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "جایگزین iframe YouTube با تصویر پیش نمایش با %2$s سازگار نیست." -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -957,11 +907,11 @@ msgstr "" "در صورتی که تعداد زیادی ویدیو از یوتیوب داخل صفحه خود داشته باشید، این گزینه" " به طور قابل ملاحظه‌ای سرعت شما را افزایش خواهد داد." -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1079 msgid "Excluded images or iframes" msgstr "تصاویر یا iframe های مستثنی شده" -#: inc/Engine/Admin/Settings/Page.php:1080 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" "Specify keywords (e.g. image filename, CSS class, domain) from the image or " @@ -970,42 +920,37 @@ msgstr "" "کلمات کلیدی (مانند نام فایل تصویر ، کلاس CSS ، دامنه) را از تصویر یا کد " "iframe حذف کنید (یکی در هر خط) مشخص کنید.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1089 msgid "Add missing image dimensions" msgstr "افزودن ابعاد به تصاویر بدون ابعاد" -#: inc/Engine/Admin/Settings/Page.php:1107 inc/deprecated/deprecated.php:1776 +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 msgid "Preload" msgstr "پیش بارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1109 msgid "Generate cache files, preload fonts" msgstr "ایجاد فایل کش، پیش بارگذاری فونت‌ها" -#: inc/Engine/Admin/Settings/Page.php:1119 +#: inc/Engine/Admin/Settings/Page.php:1120 msgid "Preload Cache" msgstr "پیش‌بارگذاری کش" -#: inc/Engine/Admin/Settings/Page.php:1122 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" -"When you enable preloading WP Rocket will generate the cache starting with " -"the links on your homepage followed by the sitemaps you specify. Preloading " -"is automatically triggered when you add or update content and can also be " -"manually triggered from the admin bar or from the %1$sWP Rocket " -"Dashboard%2$s." +"When you enable preloading WP Rocket will automatically detect your sitemaps" +" and save all URLs to the database. The plugin will make sure that your " +"cache is always preloaded." msgstr "" -"هنگامی که پیش بارگذاری راکت وردپرس را فعال می کنید ، حافظه پنهان با پیوندهای" -" صفحه اصلی شما و سپس نقشه های سایت مشخص شده توسط شما ایجاد می شود. هنگام " -"اضافه کردن یا به روز رسانی محتوا ، پیش بارگذاری به طور خودکار فعال می شود و " -"همچنین می تواند به صورت دستی از نوار مدیریت یا از %1$sپیشخوان راکت " -"وردپرس%2$sفعال شود." +"وقتی پیش بارگذاری را فعال می کنید، WP Rocket به طور خودکار نقشه های سایت شما" +" را شناسایی می کند و همه URL ها را در پایگاه داده ذخیره می کند. این افزونه " +"مطمئن می شود که کش شما همیشه از قبل بارگذاری شده است." -#: inc/Engine/Admin/Settings/Page.php:1130 +#: inc/Engine/Admin/Settings/Page.php:1131 msgid "Preload Links" msgstr "لینک‌های پیش بارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1133 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" "Link preloading improves the perceived load time by downloading a page when " @@ -1014,11 +959,11 @@ msgstr "" "پیش بارگذاری لینک با بارگیری صفحه ای که کاربر روی لینک موس خود را قرار می " "دهد ، زمان بارگذاری را بهبود می بخشد. %1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1141 +#: inc/Engine/Admin/Settings/Page.php:1142 msgid "Prefetch DNS Requests" msgstr "پیش‌دریافت درخواست DNS" -#: inc/Engine/Admin/Settings/Page.php:1143 +#: inc/Engine/Admin/Settings/Page.php:1144 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1026,11 +971,11 @@ msgstr "" "پیش‌دریافت درخواست DNS باعث افزایش سرعت بارگذاری فایل‌های خارجی به خصوص بر " "روی شبکه‌های موبایلی خواهد شد" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1149 msgid "Preload Fonts" msgstr "پیش بارگذاری فونت‌ها" -#: inc/Engine/Admin/Settings/Page.php:1151 +#: inc/Engine/Admin/Settings/Page.php:1152 #, php-format msgid "" "Improves performance by helping browsers discover fonts in CSS files. " @@ -1039,27 +984,15 @@ msgstr "" "با کمک به مرورگرها برای کشف فونت در فایل های CSS ، عملکرد را بهبود می " "بخشد.%1$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1165 +#: inc/Engine/Admin/Settings/Page.php:1166 msgid "Activate Preloading" msgstr "فعالسازی پیش پارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1184 -msgid "Activate sitemap-based cache preloading" -msgstr "فعال‌سازی پیش‌بارگذاری کش بر مبنای نقشه سایت" - -#: inc/Engine/Admin/Settings/Page.php:1203 -msgid "Sitemaps for preloading" -msgstr "نقشه‌های سایت برای پیش بارگذاری" - -#: inc/Engine/Admin/Settings/Page.php:1207 -msgid "Specify XML sitemap(s) to be used for preloading" -msgstr "نقشه‌(های) XML سایت برای پیش بارگذاری را مشخص کنید" - -#: inc/Engine/Admin/Settings/Page.php:1217 +#: inc/Engine/Admin/Settings/Page.php:1174 msgid "URLs to prefetch" msgstr "آدرس‌ها برای پیش‌دریافت" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1175 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1067,11 +1000,11 @@ msgstr "" "میزبان‌های خارجی را برای واکشی مشخص کنید(بدونhttp:، یکی درهر " "خط)" -#: inc/Engine/Admin/Settings/Page.php:1227 +#: inc/Engine/Admin/Settings/Page.php:1184 msgid "Fonts to preload" msgstr "فونت‌ها برای پیش بارگذاری" -#: inc/Engine/Admin/Settings/Page.php:1228 +#: inc/Engine/Admin/Settings/Page.php:1185 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1080,7 +1013,7 @@ msgstr "" "کنید.فونت ها باید در دامنه خود یا دامنه ای که در برگه CDN مشخص کرده اید " "میزبانی شوند." -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1186 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1088,49 +1021,49 @@ msgstr "" "بخش دامنه URL به طور خودکار برداشته می شود.
پسوند فونت های مجاز شامل: " "otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1238 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "Enable link preloading" msgstr "پیش بارگذاری لینک را فعال کنید" -#: inc/Engine/Admin/Settings/Page.php:1257 +#: inc/Engine/Admin/Settings/Page.php:1214 msgid "Advanced Rules" msgstr "قوانین پیشرفته" -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1215 msgid "Fine-tune cache rules" msgstr "قوانین کش دقیق" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1226 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "برگه‌های حساس مثل ورود\\خروج باید از کش مستثنی شوند." -#: inc/Engine/Admin/Settings/Page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1229 msgctxt "plugin name" msgid "WooCommerce" msgstr "ووکامرس" -#: inc/Engine/Admin/Settings/Page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1231 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "دانلود آسان دیجیتال EDD" -#: inc/Engine/Admin/Settings/Page.php:1276 +#: inc/Engine/Admin/Settings/Page.php:1233 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1278 +#: inc/Engine/Admin/Settings/Page.php:1235 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1280 +#: inc/Engine/Admin/Settings/Page.php:1237 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" -#: inc/Engine/Admin/Settings/Page.php:1286 +#: inc/Engine/Admin/Settings/Page.php:1243 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in " @@ -1140,27 +1073,27 @@ msgstr "" "%1$s%2$s%3$s تعیین شده‌اند تشخیص داده خواهند شد و به صورت " "پیش‌فرض هرگز کش نخواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1296 inc/admin/options.php:127 +#: inc/Engine/Admin/Settings/Page.php:1253 inc/admin/options.php:127 msgid "Never Cache URL(s)" msgstr "آدرس‌(هایی) که هرگز کش نخواهند شد" -#: inc/Engine/Admin/Settings/Page.php:1304 +#: inc/Engine/Admin/Settings/Page.php:1261 msgid "Never Cache Cookies" msgstr "کوکی‌هایی که هرگز کش نخواهند شد" -#: inc/Engine/Admin/Settings/Page.php:1310 inc/admin/options.php:128 +#: inc/Engine/Admin/Settings/Page.php:1267 inc/admin/options.php:128 msgid "Never Cache User Agent(s)" msgstr "عامل‌(های) کاربری هرگز کش نخواهند شد" -#: inc/Engine/Admin/Settings/Page.php:1316 inc/admin/options.php:129 +#: inc/Engine/Admin/Settings/Page.php:1273 inc/admin/options.php:129 msgid "Always Purge URL(s)" msgstr "URL (هایی) که همیشه پاک‌سازی شوند" -#: inc/Engine/Admin/Settings/Page.php:1322 +#: inc/Engine/Admin/Settings/Page.php:1279 msgid "Cache Query String(s)" msgstr "کش کردن کوئری استرینگ‌(ها)" -#: inc/Engine/Admin/Settings/Page.php:1325 +#: inc/Engine/Admin/Settings/Page.php:1282 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " @@ -1169,15 +1102,15 @@ msgstr "" "%1$sکش کردن کوئری استرینگ‌ها%2$s باعث می‌شوند که پارامترهای متد GET به اجبار" " کش شوند." -#: inc/Engine/Admin/Settings/Page.php:1336 +#: inc/Engine/Admin/Settings/Page.php:1293 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "آدرس برگه‌ها یا نوشته‌هایی که هرگز نباید کش شوند را تعیین کنید (در هر خط " "یکی)" -#: inc/Engine/Admin/Settings/Page.php:1337 -#: inc/Engine/Admin/Settings/Page.php:1365 +#: inc/Engine/Admin/Settings/Page.php:1294 +#: inc/Engine/Admin/Settings/Page.php:1322 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -1185,7 +1118,7 @@ msgstr "" "قسمت نام دامنه آدرس به صورت خودکار حذف خواهد شد.
از (.*) برای تعیین چند" " آدرس از یک مسیر استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1303 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -1193,18 +1126,18 @@ msgstr "" "شناسه های کامل یا جزئی کوکی ها را مشخص کنید که وقتی در مرورگر بازدیدکننده " "تنظیم می شوند ، از ذخیره شدن صفحه جلوگیری شود (یکی در هر خط)" -#: inc/Engine/Admin/Settings/Page.php:1354 +#: inc/Engine/Admin/Settings/Page.php:1311 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "رشته‌های user agentی که هرگز نباید صفحات را کش شده مشاهده کنند را تعیین کنید" " (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1312 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "برای تشخص قسمت‌های مختلف رشته user agent از (.*)استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1364 +#: inc/Engine/Admin/Settings/Page.php:1321 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -1212,23 +1145,23 @@ msgstr "" "آدرس‌هایی که مایل هستید فارغ از اینکه نوشته یا برگه‌ای بروزرسانی شده، همیشه " "از کش حذف شوند را تعیین کنید (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1373 +#: inc/Engine/Admin/Settings/Page.php:1330 msgid "Specify query strings for caching (one per line)" msgstr "کوئری استرینگ‌ها برای کش شدن را تعیین کنید (در هر خط یکی)" -#: inc/Engine/Admin/Settings/Page.php:1398 inc/deprecated/deprecated.php:1775 +#: inc/Engine/Admin/Settings/Page.php:1355 inc/deprecated/deprecated.php:1775 msgid "Database" msgstr "پایگاه داده" -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Optimize, reduce bloat" msgstr "بهینه‌سازی، کاهش نفخ" -#: inc/Engine/Admin/Settings/Page.php:1406 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Post Cleanup" msgstr "پاک‌سازی نوشته" -#: inc/Engine/Admin/Settings/Page.php:1408 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -1236,19 +1169,19 @@ msgstr "" "نوشته‌های بازبینی و پیش‌نویس به طور دائم حذف خواهند شد. اگر به نگه‌داری " "بازبینی‌ها و پیش‌نویس‌ها نیاز دارید این گزینه را استفاده نکنید." -#: inc/Engine/Admin/Settings/Page.php:1413 +#: inc/Engine/Admin/Settings/Page.php:1370 msgid "Comments Cleanup" msgstr "پاک‌سازی دیدگاه‌ها" -#: inc/Engine/Admin/Settings/Page.php:1415 +#: inc/Engine/Admin/Settings/Page.php:1372 msgid "Spam and trashed comments will be permanently deleted." msgstr "دیدگا‌ه‌های اسپم و داخل زباله‌دان به طور دائم حذف خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1376 msgid "Transients Cleanup" msgstr "پاک‌سازی داده‌های گذرا" -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1378 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -1256,106 +1189,106 @@ msgstr "" "داده‌های گذرا تنظیمات موقتی هستند. حذف آن‌ها ایمن است. در صورتی که افزونه‌ها" " به این داده‌ها نیاز داشته باشند به صورت خودکار ایجاد خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1425 +#: inc/Engine/Admin/Settings/Page.php:1382 msgid "Database Cleanup" msgstr "پاک‌سازی پایگاه داده" -#: inc/Engine/Admin/Settings/Page.php:1427 +#: inc/Engine/Admin/Settings/Page.php:1384 msgid "Reduces overhead of database tables" msgstr "بهینه سازی جداول دیتابیس" -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1388 msgid "Automatic Cleanup" msgstr "پاک‌سازی خودکار" -#: inc/Engine/Admin/Settings/Page.php:1444 +#: inc/Engine/Admin/Settings/Page.php:1401 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "%s بازبینی در پایگاه داده شما وجود دارد." msgstr[1] "%s بازبینی در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1454 +#: inc/Engine/Admin/Settings/Page.php:1411 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "%s پیش‌نویس در پایگاه داده شما وجود دارد." msgstr[1] "%s پیش‌نویس در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1464 +#: inc/Engine/Admin/Settings/Page.php:1421 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "%s نوشته داخل زباله‌دان در پایگاه داده شما وجود دارد." msgstr[1] "%s نوشته داخل زباله‌دان در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1431 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "%s دیدگاه اسپم در پایگاه داده شما وجود دارد." msgstr[1] "%s دیدگاه اسپم در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1441 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "%s دیدگاه در زباله‌دان شما وجود دارد." msgstr[1] "%s دیدگاه در زباله‌دان شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1492 +#: inc/Engine/Admin/Settings/Page.php:1449 msgid "All transients" msgstr "همه داده‌های گذرا" -#: inc/Engine/Admin/Settings/Page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1451 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "%s داده گذرا در پایگاه داده شما وجود دارد." msgstr[1] "%s داده گذرا در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1459 msgid "Optimize Tables" msgstr "بهینه‌سازی جدول‌ها" -#: inc/Engine/Admin/Settings/Page.php:1504 +#: inc/Engine/Admin/Settings/Page.php:1461 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "%s جدول برای بهینه‌سازی در پایگاه داده شما وجود دارد." msgstr[1] "%s جدول برای بهینه‌سازی در پایگاه داده شما وجود دارد." -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1472 msgid "Schedule Automatic Cleanup" msgstr "برنامه‌ریزی پاک‌سازی خودکار" -#: inc/Engine/Admin/Settings/Page.php:1527 +#: inc/Engine/Admin/Settings/Page.php:1484 msgid "Frequency" msgstr "دوره تکرار" -#: inc/Engine/Admin/Settings/Page.php:1535 +#: inc/Engine/Admin/Settings/Page.php:1492 msgid "Daily" msgstr "روزانه" -#: inc/Engine/Admin/Settings/Page.php:1536 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "Weekly" msgstr "هفتگی" -#: inc/Engine/Admin/Settings/Page.php:1537 +#: inc/Engine/Admin/Settings/Page.php:1494 msgid "Monthly" msgstr "ماهیانه" -#: inc/Engine/Admin/Settings/Page.php:1553 -#: inc/Engine/Admin/Settings/Page.php:1564 inc/admin/ui/meta-boxes.php:79 +#: inc/Engine/Admin/Settings/Page.php:1510 +#: inc/Engine/Admin/Settings/Page.php:1521 inc/admin/ui/meta-boxes.php:79 #: inc/deprecated/deprecated.php:1773 msgid "CDN" msgstr "شبکه تحویل محتوا CDN" -#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1511 msgid "Integrate your CDN" msgstr "CDN خود را سازگار کنید" -#: inc/Engine/Admin/Settings/Page.php:1566 +#: inc/Engine/Admin/Settings/Page.php:1523 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -1363,7 +1296,7 @@ msgstr "" "آدرس همه فایل‌های استاتیک (CSS، JS، تصاویر) با استفاده از CNAME (هایی) که " "شما تعیین کرده‌اید بازنویسی خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1525 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " @@ -1372,11 +1305,11 @@ msgstr "" "برای سرویس هایی مانند Cloudflare و Sucuri ضروری نیست. لطفا " "%1$sافزودنی‌های%2$s موجود ما را مشاهده کنید." -#: inc/Engine/Admin/Settings/Page.php:1583 inc/admin/options.php:130 +#: inc/Engine/Admin/Settings/Page.php:1540 inc/admin/options.php:130 msgid "Exclude files from CDN" msgstr "مستثنی کردن فایل‌ها از CDN" -#: inc/Engine/Admin/Settings/Page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1566 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -1390,28 +1323,28 @@ msgstr[1] "" "%1$s%2$l افزودنی%3$s اکنون فعال است. پیکربندی تنظیمات CDN برای %2$l ضروری " "نیست." -#: inc/Engine/Admin/Settings/Page.php:1634 +#: inc/Engine/Admin/Settings/Page.php:1591 msgid "Enable Content Delivery Network" msgstr "فعالسازی شبکه تحویل محتوا" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1600 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" msgstr "CNAME (های) CDN" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1601 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" msgstr "CNAME (ها) را اینجا تعیین کنید" -#: inc/Engine/Admin/Settings/Page.php:1651 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "آدرس فایل‌(هایی) که نباید از طریق CDN بارگذاری شوند را تعیین کنید.(هرخط یک " "آدرس)" -#: inc/Engine/Admin/Settings/Page.php:1652 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -1420,16 +1353,16 @@ msgstr "" "قسمت نام دامنه آدرس به صورت خودکار حذف خواهد شد.
برای مستثنی کردن همه " "فایل‌های هم نوع موجود در یک مسیر از (.*) استفاده کنید." -#: inc/Engine/Admin/Settings/Page.php:1675 -#: inc/Engine/Admin/Settings/Page.php:1683 +#: inc/Engine/Admin/Settings/Page.php:1632 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Heartbeat" msgstr "ضربان Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1633 msgid "Control WordPress Heartbeat API" msgstr "کنترل API سرویس WordPress Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1641 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -1437,11 +1370,11 @@ msgstr "" "کاهش یا غیرفعال کردن فعالیت Heartbeat API می تواند به ذخیره برخی از منابع " "سرور شما کمک کند." -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1647 msgid "Reduce or disable Heartbeat activity" msgstr "کاهش یا غیرفعال کردن فعالیت Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -1449,55 +1382,55 @@ msgstr "" "با کاهش فعالیت ، فرکانس Heartbeat از یک ضربه در هر دقیقه به یک ضربه در هر 2 " "دقیقه تغییر می کند." -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "با غیرفعال کردن کامل Heartbeat ممکن است افزونه ها و قالب ها با استفاده از " "این API خراب شوند." -#: inc/Engine/Admin/Settings/Page.php:1705 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Do not limit" msgstr "محدود نکنید" -#: inc/Engine/Admin/Settings/Page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1663 msgid "Reduce activity" msgstr "کاهش فعالیت" -#: inc/Engine/Admin/Settings/Page.php:1707 +#: inc/Engine/Admin/Settings/Page.php:1664 msgid "Disable" msgstr "غیرفعال‌سازی" -#: inc/Engine/Admin/Settings/Page.php:1715 +#: inc/Engine/Admin/Settings/Page.php:1672 msgid "Control Heartbeat" msgstr "کنترل Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1724 +#: inc/Engine/Admin/Settings/Page.php:1681 msgid "Behavior in backend" msgstr "رفتار در پس زمینه" -#: inc/Engine/Admin/Settings/Page.php:1731 +#: inc/Engine/Admin/Settings/Page.php:1688 msgid "Behavior in post editor" msgstr "رفتار در ویرایشگر نوشته" -#: inc/Engine/Admin/Settings/Page.php:1737 +#: inc/Engine/Admin/Settings/Page.php:1694 msgid "Behavior in frontend" msgstr "رفتار در frontend" -#: inc/Engine/Admin/Settings/Page.php:1754 +#: inc/Engine/Admin/Settings/Page.php:1711 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "افزودنی‌ها" -#: inc/Engine/Admin/Settings/Page.php:1755 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "Add more features" msgstr "افزودن ویژگی‌های بیشتر" -#: inc/Engine/Admin/Settings/Page.php:1762 +#: inc/Engine/Admin/Settings/Page.php:1719 msgid "One-click Rocket Add-ons" msgstr "افزودنی‌های موشک با یک کلیک" -#: inc/Engine/Admin/Settings/Page.php:1763 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -1506,26 +1439,26 @@ msgstr "" "به تنظیمات جدید گسترش می‌دهند. برای فعال‌سازی گزینه \"فعال\" را از این صفحه " "فعال کنید." -#: inc/Engine/Admin/Settings/Page.php:1773 +#: inc/Engine/Admin/Settings/Page.php:1730 msgid "Rocket Add-ons" msgstr "افزودنی‌های موشک" -#: inc/Engine/Admin/Settings/Page.php:1774 +#: inc/Engine/Admin/Settings/Page.php:1731 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "افزودنی‌های موشک ویژگی‌های تکمیلی هستند که گزینه‌های موجود فعلی را گسترش " "می‌دهند." -#: inc/Engine/Admin/Settings/Page.php:1785 -#: inc/Engine/Admin/Settings/Page.php:1937 +#: inc/Engine/Admin/Settings/Page.php:1742 +#: inc/Engine/Admin/Settings/Page.php:1894 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1791 +#: inc/Engine/Admin/Settings/Page.php:1748 msgid "Integrate your Cloudflare account with this add-on." msgstr "حساب کاربری Cloudflare خود را با این افزودنی ادغام کنید." -#: inc/Engine/Admin/Settings/Page.php:1792 +#: inc/Engine/Admin/Settings/Page.php:1749 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -1535,16 +1468,16 @@ msgstr "" " موشک وردپرس آدرس ایمیل حساب کاربری خود، کلید عمومی وب سرویس و دامنه خود را " "تعیین کنید." -#: inc/Engine/Admin/Settings/Page.php:1826 +#: inc/Engine/Admin/Settings/Page.php:1783 msgid "Varnish" msgstr "وارنیش" -#: inc/Engine/Admin/Settings/Page.php:1832 +#: inc/Engine/Admin/Settings/Page.php:1789 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" "اگر بر روی سرور شما وارنیش اجرا شده است، باید این افزودنی را فعال کنید." -#: inc/Engine/Admin/Settings/Page.php:1834 +#: inc/Engine/Admin/Settings/Page.php:1791 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " @@ -1553,15 +1486,15 @@ msgstr "" "هر بار که موشک وردپرس کش خود را پاک‌سازی می‌کند، کش وارنیش هم به منظور " "اطمینان از به روز بودن محتوا، پاک خواهد شد.
%1$sکسب اطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:1869 +#: inc/Engine/Admin/Settings/Page.php:1826 msgid "WebP Compatibility" msgstr "سازگاری WebP" -#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:1832 msgid "Improve browser compatibility for WebP images." msgstr "بهبود سازگاری مرورگر با تصاویر WebP." -#: inc/Engine/Admin/Settings/Page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:1836 #, php-format msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " @@ -1574,11 +1507,11 @@ msgstr "" "WebP را برای شما ایجاد کند. برای ایجاد تصاویر WebP توصیه می کنیم از " "%1$sImagify%2$s استفاده کنید. %3$sراهنمایی%2$s" -#: inc/Engine/Admin/Settings/Page.php:1899 +#: inc/Engine/Admin/Settings/Page.php:1856 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "کش Sucuri را حذف کن هنگامی که کش موشک وردپرس را حذف می کنید." -#: inc/Engine/Admin/Settings/Page.php:1902 +#: inc/Engine/Admin/Settings/Page.php:1859 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -1586,48 +1519,48 @@ msgstr "" "کلید API خود را برای پاک کردن کش Sucuri هنگام پاک شدن کش موشک وردپرس ارائه " "دهید." -#: inc/Engine/Admin/Settings/Page.php:1910 -#: inc/Engine/Admin/Settings/Page.php:2054 +#: inc/Engine/Admin/Settings/Page.php:1867 +#: inc/Engine/Admin/Settings/Page.php:2011 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1916 +#: inc/Engine/Admin/Settings/Page.php:1873 msgid "Synchronize Sucuri cache with this add-on." msgstr "با این افزونه کش Sucuri را همگام سازی کنید." -#: inc/Engine/Admin/Settings/Page.php:1954 +#: inc/Engine/Admin/Settings/Page.php:1911 msgid "Cloudflare credentials" msgstr "اعتبارهای Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1963 +#: inc/Engine/Admin/Settings/Page.php:1920 msgid "Cloudflare settings" msgstr "تنظیمات Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1977 +#: inc/Engine/Admin/Settings/Page.php:1934 msgctxt "Cloudflare" msgid "Global API key:" msgstr "کلید API عمومی:" -#: inc/Engine/Admin/Settings/Page.php:1978 +#: inc/Engine/Admin/Settings/Page.php:1935 msgctxt "Cloudflare" msgid "Find your API key" msgstr "پیدا کردن کلید API شما" -#: inc/Engine/Admin/Settings/Page.php:1990 +#: inc/Engine/Admin/Settings/Page.php:1947 msgctxt "Cloudflare" msgid "Account email" msgstr "ایمیل حساب کاربری" -#: inc/Engine/Admin/Settings/Page.php:1999 +#: inc/Engine/Admin/Settings/Page.php:1956 msgctxt "Cloudflare" msgid "Zone ID" msgstr "شناسه ناحیه" -#: inc/Engine/Admin/Settings/Page.php:2009 +#: inc/Engine/Admin/Settings/Page.php:1966 msgid "Development mode" msgstr "حالت توسعه" -#: inc/Engine/Admin/Settings/Page.php:2011 +#: inc/Engine/Admin/Settings/Page.php:1968 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " @@ -1636,21 +1569,21 @@ msgstr "" "حالت توسعه به طور موقت بر روی وبسایت خود فعال کنید. این تنظیم بعد از گذشت 3 " "ساعت غیرفعال خواهد شد. %1$sکسب اطلاعات بیشتر%2$s" -#: inc/Engine/Admin/Settings/Page.php:2019 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "Optimal settings" msgstr "تنظیمات بهینه‌سازی" -#: inc/Engine/Admin/Settings/Page.php:2020 +#: inc/Engine/Admin/Settings/Page.php:1977 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." msgstr "افزایش خودکار تنظیمات Cloudflare جهت سرعت، بهره‌وری و هماهنگی بیشتر." -#: inc/Engine/Admin/Settings/Page.php:2028 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "Relative protocol" msgstr "پروتکل نسبی" -#: inc/Engine/Admin/Settings/Page.php:2029 +#: inc/Engine/Admin/Settings/Page.php:1986 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -1660,11 +1593,11 @@ msgstr "" "(CSS, JS, images) جهت استفاده از // به جای http:// یا https:// بازنویسی " "خواهند شد." -#: inc/Engine/Admin/Settings/Page.php:2067 +#: inc/Engine/Admin/Settings/Page.php:2024 msgid "Sucuri credentials" msgstr "اعتبارهای Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2080 +#: inc/Engine/Admin/Settings/Page.php:2037 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -1673,7 +1606,7 @@ msgstr "" "شناسه API فایروال (برای افزونه)، باید در فرمت {32 characters}/{32 " "characters}:" -#: inc/Engine/Admin/Settings/Page.php:2081 +#: inc/Engine/Admin/Settings/Page.php:2038 msgctxt "Sucuri" msgid "Find your API key" msgstr "پیدا کردن کلید API شما" @@ -1682,7 +1615,7 @@ msgstr "پیدا کردن کلید API شما" msgid "Upload file and import settings" msgstr "بارگذاری فایل و درون‌ریزی تنظیمات" -#: inc/Engine/Admin/Settings/Settings.php:391 +#: inc/Engine/Admin/Settings/Settings.php:375 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format " "{32 characters}/{32 characters}." @@ -1690,12 +1623,12 @@ msgstr "" "افزودنی Sucuri : شناسه API فایروال Sucuri باید به فرمت{32 " "characters}/{32 characters} باشد." -#: inc/Engine/Admin/Settings/Settings.php:482 +#: inc/Engine/Admin/Settings/Settings.php:466 #: inc/deprecated/deprecated.php:1245 msgid "Settings saved." msgstr "تنظیمات ذخیره شد." -#: inc/Engine/Admin/Settings/Settings.php:698 +#: inc/Engine/Admin/Settings/Settings.php:682 msgid "" "Sorry! Adding /(.*) in Advanced Rules > Never Cache URL(s) was not saved " "because it disables caching and optimizations for every page on your site." @@ -1892,7 +1825,7 @@ msgstr "" "با RocketCDN، شبکه تحویل محتوای WP Rocket سرعت سایت خود را افزایش دهید!" #: inc/Engine/Cache/AdminSubscriber.php:118 inc/admin/admin.php:75 -#: inc/admin/admin.php:97 inc/deprecated/3.5.php:908 +#: inc/admin/admin.php:97 inc/deprecated/3.5.php:898 msgid "Clear this cache" msgstr "خالی کردن این کش" @@ -1922,6 +1855,7 @@ msgstr "مقدار WP_CACHE تنظیم نشده است" msgid "WP_CACHE is set to false" msgstr "مقدار WP_CACHE به false تنظیم شده است" +#: inc/Engine/Common/Queue/PreloadQueueRunner.php:232 #: inc/Engine/Common/Queue/RUCSSQueueRunner.php:252 msgid "Every minute" msgstr "هر دقیقه" @@ -2020,12 +1954,11 @@ msgid "Critical CSS generation is currently running." msgstr "ایجاد CSS بحرانی در حال اجرا می باشد." #: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:159 -#: inc/Engine/Preload/PreloadSubscriber.php:234 #, php-format msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "به %1$sتنظیمات موشک وردپرس%2$s برای رهگیری پیشرفت مراجعه کنید." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:370 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" "Critical CSS generation is currently running: %1$d of %2$d page types " @@ -2034,16 +1967,16 @@ msgstr "" "تولید CSS‌بحرانی در حال اجرا است: %1$d از %2$d نوع صفحه کامل شده است. (برای " "مشاهده پیشرفت این صفحه را رفرش کنید)" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:442 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 #, php-format msgid "Critical CSS generation finished for %1$d of %2$d page types." msgstr "تولید CSS‌بحرانی برای %1$d از %2$d نوع صفحه کامل شد." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Critical CSS generation encountered one or more errors." msgstr "ایجاد CSS بحرانی یک یا چند خطا دارد." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Learn more." msgstr "اطلاعات بیشتر." @@ -2128,7 +2061,7 @@ msgstr "نوشته درخواست شده موجود نیست." msgid "Cannot generate CPCSS for unpublished post." msgstr "برای نوشته های منتشر نشده نمی توان CPCSS ایجاد کرد." -#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:868 +#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:858 msgid "" "The following scheduled event failed to run. This may indicate the CRON " "system is not running properly, which can prevent some WP Rocket features " @@ -2146,7 +2079,7 @@ msgstr[1] "" "درستی اجرا نمی شود ، که می تواند مانع از عملکرد برخی از ویژگی های موشک " "وردپرس شود:" -#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:877 +#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:867 msgid "Please contact your host to check if CRON is working." msgstr "لطفا با هاست خود جهت بررسی عملکرد CRON تماس بگیرید." @@ -2171,6 +2104,27 @@ msgstr "پیش بارگذاری" msgid "Critical Path CSS Generation Process" msgstr "پروسه تولید CSS بحرانی" +#: inc/Engine/License/Renewal.php:432 +#, php-format +msgid "" +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" +"برای استفاده از این ویژگی نیازمند لایسنس معتبر هستید.%1$sاکنون تمدید " +"کنید%2$sقبل از حذف دسترسیتان" + +#: inc/Engine/License/Renewal.php:453 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" +"برای فعالسازی این گزینه به لایسنس فعال نیاز دارید.%1$sاکنون تمدید کنید%2$s" + +#: inc/Engine/License/Renewal.php:481 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." +msgstr "" +"برای فعالسازی این گزینه به لایسنس فعال نیاز دارید.%1$sاطلاعات بیشتر%2$s" + #: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" @@ -2220,38 +2174,92 @@ msgid "Upgrade now" msgstr "اکنون ارتقاء دهید" #: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner.php:37 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 #: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 msgid "Dismiss this notice" msgstr "نادیده گرفتن این پیام." -#: inc/Engine/License/views/renewal-expired-banner.php:12 -msgid "Your WP Rocket license is expired!" -msgstr "لایسنس شما نامعتبر است!" +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." +msgstr "ویژگی Optimize CSS Delivery غیرفعال است." + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously " +"options." +msgstr "" +"دیگر نمی توانید از گزینه های Remove Unused CSS یا Load CSS Asynchronously " +"استفاده کنید." -#: inc/Engine/License/views/renewal-expired-banner.php:17 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"%1$sYour website could be much faster%2$s if it could take advantage of our " -"new features and enhancements. 🚀" +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " +"which addresses a PageSpeed Insights recommendation and improves your page " +"performance." msgstr "" -"عملکرد سایت شما می تواند سریعتر شود اگر از %1$sامکانات و بهبودهای جدید " -"ما%2$s استفاده کنید..🚀" +"شما به %1$sلایسنس فعال%2$sبرای قابلیت Optimize CSS Delivery نیاز دارید،که به" +" توصیه PageSpeed Insights پرداخته و عملکرد صفحه شما را بهبود می بخشد." -#: inc/Engine/License/views/renewal-expired-banner.php:27 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Renew your license to have access to the %1$slatest version of WP Rocket%2$s" -" and to the wonderful %1$sassistance of our Support Team%2$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: " +"you’ll only pay %1$s%4$s%2$s!" msgstr "" -"لایسنس خود را تمدید کنید تا به جدیدترین نسخه %1$s افزونه%2$s دسترسی داشته و " -"از %1$sپشتیبانی تیم فنی ما بهره مند شوید%2$s." +"مجوز خود را به مدت 1 سال تمدید کنید و دریافت کنید%1$s%3$sتخفیف%2$sسریعا: شما" +" فقط%1$s%4$s%2$sمیپردازید!" -#: inc/Engine/License/views/renewal-expired-banner.php:35 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 #: inc/Engine/License/views/renewal-soon-banner.php:46 msgid "Renew now" msgstr "تمدید کنید" +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "به زودی دسترسی به برخی از ویژگی ها را از دست خواهید داد" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#, php-format +msgid "" +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." +msgstr "" +"شما به لایسنس%1$sفعال نیاز دارید تا بهینه سازی تحویل css ادامه یابد%2$s." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options" +" to address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" +"ویژگی‌های Remove Unused CSS و بارگذاری css به صورت ناهمزمان گزینه‌های عالی " +"برای رسیدگی به توصیه‌های PageSpeed Insights و بهبود عملکرد وب‌سایت شما " +"هستند." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "آنها به طور خودکار%1$sغیرفعال میشوند در%3$s%2$s." + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "لایسنس شما نامعتبر است!" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 +#, php-format +msgid "" +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" +msgstr "" +"شما باید بتوانید سایت خود را خیلی سریعتر کنید. اگر شما به%1$sویژگی‌های " +"جدید%2$sدسترسی دارید.🚀" + #: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" @@ -2319,7 +2327,7 @@ msgstr "" " (فقط تفاوت قیمت بین لایسنس های فعلی و جدید خود را پرداخت خواهید کرد)." #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:120 -#: views/settings/page-sections/dashboard.php:206 +#: views/settings/page-sections/dashboard.php:188 msgid "Clear Used CSS" msgstr "پاکسازی CSSهای استفاده شده" @@ -2354,6 +2362,7 @@ msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "برای یادگیری پروسه %1$sمستندات%2$s مارا بخوانید." #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:291 +#: inc/Engine/Preload/Admin/Settings.php:94 #, php-format msgid "" "%1$s: We detected missing database table related to Action Scheduler. Please" @@ -2379,23 +2388,54 @@ msgstr "" msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "برای دریافت لایسنس %1$sتخفیفی اینجا کلیک کنید!" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:299 +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:554 +msgid "You are about to lose access to an important feature" +msgstr "شما در شرف از دست دادن دسترسی به یک ویژگی مهم هستید" + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:561 +#, php-format +msgid "" +"Rolling back to WP Rocket 3.10.10.1, the %1$sRemove Unused CSS%2$s feature " +"will not be available any longer in your file optimization tab." +msgstr "" +"بازگشت به نسخه 3.10.10.1،%1$sحذف Unused CSS%2$sاین ویژگی دیگر در برگه بهینه " +"سازی فایل شما در دسترس نخواهد بود." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:571 +#, php-format +msgid "" +"If you are encountering any issue related to this feature, you can simply " +"disable the option, or %1$scontact support for help%2$s." +msgstr "" +"اگر با مشکلی در رابطه با این ویژگی مواجه شدید، به سادگی می توانید این گزینه " +"را غیرفعال کنید،یا%1$sتماس با پشتیبانی%2$s." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:578 +#: views/deactivation-intent/form.php:63 +msgid "Cancel" +msgstr "انصراف" + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:579 +msgid "Confirm rollback" +msgstr "بازگشت به عقب را تأیید کنید" + +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:302 #, php-format msgid "%1$s: Used CSS option is not enabled!" msgstr "%1$s: قابلیت CSSهای استفاده شده فعال نیست!" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:320 +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:323 #, php-format msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: کش CSS استفاده شده پاک شد!" -#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:702 +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:704 msgid "Clear Used CSS of this URL" msgstr "پاکسازی CSS استفاده شده برای این URL" -#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 -msgid "WP Rocket RUCSS pending jobs" -msgstr "در انتظار انجام معلق WP Rocket RUCSS" +#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:144 +msgid "WP Rocket Remove Unused CSS pending jobs" +msgstr "WP Rocket حذف کارهای معلق Unused CSS" #: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 #: inc/deprecated/3.3.php:770 @@ -2409,162 +2449,32 @@ msgstr "" "سرور’s شما باشد. اگر مشکل شما ادامه داشت، با پشتیبانی " "تماس بگیرید." -#: inc/Engine/Preload/Homepage.php:153 -#, php-format -msgid "" -"Preload encountered an error. Could not gather links on %1$s because of the " -"following error: %2$s. %3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری با خطا مواجه شد. لینک ها در آن جمع آوری نشد %1$s به دلیل خطای " -"ذیل: %2$s. %3$sراهنمایی%4$s." - -#: inc/Engine/Preload/Homepage.php:166 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: %2$s. Security measures could be preventing access. " -"%3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری با خطایی مواجه شد.%1$sبه دلیل کد پاسخ زیر قابل دسترسی " -"نیست:%2$s.اقدامات امنیتی می تواند مانع دسترسی شود.%3$sراهنمایی%4$s." - -#: inc/Engine/Preload/Homepage.php:172 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 404. Please make sure your homepage is accessible in your " -"browser. %2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری با خطایی مواجه شد.%1$sبه دلیل کد پاسخ ذیل دردسترس نیست:404. " -"مطمئن شوید که صفحه اصلی سایت در مرورگر شما در دسترس باشد.%2$sراهنمایی%3$s." - -#: inc/Engine/Preload/Homepage.php:178 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 500. Please check with your web host about server access. " -"%2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری با خطایی مواجه شد.%1$sبه دلیل کد پاسخ ذیل دردسترس نیست:500.لطفا" -" با هاست خود درباره دسترسی سرور بررسی کنید.%2$sراهنمایی%3$s." - -#: inc/Engine/Preload/Homepage.php:184 -#, php-format -msgid "" -"Preload encountered an error. Could not gather links on %1$s because it " -"returned the following response code: %2$s. %3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری با خطایی مواجه شد. لینک ها در آن جمع آوری نشد %1$s زیرا کد پاسخ" -" زیر را برمی گرداند:%2$s. %3$sراهنمایی%4$s." - -#: inc/Engine/Preload/PreloadSubscriber.php:229 -msgid "Preload: WP Rocket has started preloading your website." -msgstr "پیش بارگذاری: موشک وردپرس پیش بارگذاری سایت شما را آغاز کرده است." - -#: inc/Engine/Preload/PreloadSubscriber.php:276 -#, php-format -msgid "" -"Preload: %1$s uncached page has now been preloaded. (refresh to see " -"progress)" -msgid_plural "" -"Preload: %1$s uncached pages have now been preloaded. (refresh to see " -"progress)" -msgstr[0] "" -"پیش بارگذاری: %1$s صفحه کش نشده اکنون بارگیری شده است. (برای مشاهده پیشرفت " -"صفحه را مجدد بارگذاری کنید)" -msgstr[1] "" -"پیش بارگذاری: %1$s صفحه کش نشده اکنون بارگیری شده است. (برای مشاهده پیشرفت " -"صفحه را مجدد بارگذاری کنید)" - -#: inc/Engine/Preload/PreloadSubscriber.php:285 -msgid "The following error happened during gathering of the URLs to preload:" -msgid_plural "" -"The following errors happened during gathering of the URLs to preload:" -msgstr[0] "خطای زیر هنگام جمع آوری URL ها برای پیش بارگذاری رخ داد:" -msgstr[1] "خطای زیر هنگام جمع آوری URL ها برای پیش بارگذاری رخ داد:" - -#: inc/Engine/Preload/PreloadSubscriber.php:338 -#, php-format -msgid "Preload complete: %d pages have been cached." -msgstr "پش بارگذاری کامل شد: %d صفحه کش شده است." - -#: inc/Engine/Preload/Sitemap.php:150 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" of the following error: %2$s. %3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد. لینک ها در آن جمع آوری نشد %1$s به" -" دلیل خطای ذیل رخ داده است: %2$s. %3$sراهنمایی%4$s." - -#: inc/Engine/Preload/Sitemap.php:165 -#, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: %2$s. Security measures could be preventing access." -" %3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد. %1$sبه دلیل کد پاسخ زیر قابل " -"دسترسی نیست:%2$s.اقدامات امنیتی می تواند مانع دسترسی شود.%3$sراهنمایی%4$s." - -#: inc/Engine/Preload/Sitemap.php:170 +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 #, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 404. Please make sure you entered the correct " -"sitemap URL and it is accessible in your browser. %2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد.%1$sبه دلیل کد پاسخ زیر قابل دسترسی" -" نیست: 404. لطفاً مطمئن شوید نشانی اینترنتی نقشه سایت صحیح را وارد کرده اید " -"و در مرورگر شما قابل دسترسی است.%2$sراهنمایی%3$s." +msgid "%s Update Rollback" +msgstr "%s بازگشتن به نسخه قبلی" -#: inc/Engine/Preload/Sitemap.php:175 +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 #, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 500. Please check with your web host about server " -"access. %2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد%1$s به دلیل کد پاسخ زیر قابل دسترسی" -" نیست: 500. لطفاً با میزبان وب خود در مورد دسترسی به سرور مشورت " -"کنید.%2$sراهنمایی%3$s." +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" +msgstr "%1$sبازگشت به موشک وردپرس%2$sیا %3$s رفتن به برگه افزونه‌ها%2$s" -#: inc/Engine/Preload/Sitemap.php:180 +#: inc/Engine/Preload/Admin/Settings.php:41 #, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" it returned the following response code: %2$s. %3$sLearn more%4$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد.لینک ها در آن جمع آوری نشد%1$s زیرا" -" کد پاسخ زیر را برمی گرداند:%2$s. %3$sراهنمایی%4$s." +msgid "%1$s: Please wait. The preload service is processing your pages." +msgstr "%1$s:لطفا صبر کنید. سرویس پیش بارگذاری صفحات شما را پردازش می کند." -#: inc/Engine/Preload/Sitemap.php:196 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because the file is empty. %2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد.لینک ها جمع آوری نشد از %1$s چون " -"فایل خالی بود. %2$sراهنمایی%3$s." +#: inc/Engine/Preload/Cron/Subscriber.php:129 +msgid "WP Rocket Preload pending jobs" +msgstr "کارهای معلق پیش بارگذاری" -#: inc/Engine/Preload/Sitemap.php:217 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because of an error during the XML sitemap parsing. %2$sLearn more%3$s." -msgstr "" -"پیش بارگذاری نقشه سایت با خطایی مواجه شد.لینک ها جمع آوری نشد از%1$s چون " -"هنگام اجرای نقشه سایت خطایی رخ داده است.%2$sراهنمایی%3$s." - -#: inc/Engine/Preload/SitemapPreloadSubscriber.php:122 -#, php-format -msgid "" -"%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please " -"contact your host to enable it before running sitemap-based cache " -"preloading." -msgstr "" -"%1$sافزودنی SimpleXML PHP %2$s در سرور شما فعال نشد. با هاست خود برای " -"فعالسازی قبل از اجرای پیش بارگذاری براساس نقشه سایت تماس بگیرید." +#: inc/Engine/Preload/Cron/Subscriber.php:157 +msgid "WP Rocket Preload revert stuck in-progress jobs" +msgstr "از پیش بارگذاری بازگرداندن کارهای در حال انجام گیر کرده است" #: inc/ThirdParty/Hostings/Cloudways.php:82 #, php-format @@ -2697,10 +2607,6 @@ msgstr "" "تاخیر JS اکنون در %1$s فعال است. اگر می خواهید از تاخیر JS افزونه استفاده " "کنید، %1$s غیرفعال کنید" -#: inc/ThirdParty/Plugins/SEO/Yoast.php:60 inc/deprecated/3.11.php:81 -msgid "Yoast SEO XML sitemap" -msgstr "نقشه سایت Yoast SEO" - #: inc/ThirdParty/Plugins/Smush.php:108 inc/ThirdParty/Plugins/Smush.php:126 msgid "Smush" msgstr "Smush" @@ -2709,7 +2615,7 @@ msgstr "Smush" msgid "Avada" msgstr "Avada" -#: inc/admin/admin.php:18 inc/common/admin-bar.php:333 +#: inc/admin/admin.php:18 inc/common/admin-bar.php:255 #: inc/deprecated/deprecated.php:1787 msgid "Support" msgstr "پشتیبانی" @@ -2718,7 +2624,7 @@ msgstr "پشتیبانی" msgid "Docs" msgstr "مستندات" -#: inc/admin/admin.php:22 inc/common/admin-bar.php:321 +#: inc/admin/admin.php:22 inc/common/admin-bar.php:243 msgid "FAQ" msgstr "سوالات متداول" @@ -2726,44 +2632,32 @@ msgstr "سوالات متداول" msgid "Settings" msgstr "تنظیمات" -#: inc/admin/admin.php:237 inc/admin/admin.php:252 -#: inc/classes/class-wp-rocket-requirements-check.php:203 -#: inc/classes/class-wp-rocket-requirements-check.php:214 -#, php-format -msgid "%s Update Rollback" -msgstr "%s بازگشتن به نسخه قبلی" - -#: inc/admin/admin.php:278 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" -msgstr "%1$sبازگشت به موشک وردپرس%2$sیا %3$s رفتن به برگه افزونه‌ها%2$s" - -#: inc/admin/admin.php:516 +#: inc/admin/admin.php:429 msgid "Settings import failed: you do not have the permissions to do this." msgstr "" "درون‌ریزی تنظیمات ناموفق بود: شما دسترسی کافی برای انجام این کار را ندارید." -#: inc/admin/admin.php:520 +#: inc/admin/admin.php:433 msgid "Settings import failed: no file uploaded." msgstr "درون‌ریزی تنظیمات ناموفق بود: فایلی بارگذاری نشد." -#: inc/admin/admin.php:524 +#: inc/admin/admin.php:437 msgid "Settings import failed: incorrect filename." msgstr "درون‌ریزی تنظیمات ناموفق بود: نام فایل اشتباه است." -#: inc/admin/admin.php:535 +#: inc/admin/admin.php:448 msgid "Settings import failed: incorrect filetype." msgstr "درون‌ریزی تنظیمات ناموفق بود: نوع فایل اشتباه است." -#: inc/admin/admin.php:545 +#: inc/admin/admin.php:458 msgid "Settings import failed: " msgstr "درون‌ریزی تنظیمات ناموفق بود: " -#: inc/admin/admin.php:561 +#: inc/admin/admin.php:474 msgid "Settings import failed: unexpected file content." msgstr "درون ریزی تنظیمات انجام نشد: محتوای فایل غیر منتظره بود." -#: inc/admin/admin.php:591 +#: inc/admin/admin.php:504 msgid "Settings imported and saved." msgstr "تنظیمات درون‌ریزی و ذخیره شد." @@ -2820,10 +2714,6 @@ msgstr "بارگذاری با تاخیر آی‌‌فریم‌ها\\ویدیوه msgid "Minify/combine CSS" msgstr "فشرده‌سازی\\ترکیب CSS" -#: inc/admin/ui/meta-boxes.php:77 -msgid "Remove Unused CSS" -msgstr "حذف CSS بدون استفاده" - #: inc/admin/ui/meta-boxes.php:78 msgid "Minify/combine JS" msgstr "فشرده‌سازی\\ترکیب JS" @@ -3100,7 +2990,7 @@ msgstr "لاگ فایل قابل خواندن نیست." msgid "The logs are not saved into a file." msgstr "لاگ ها درون فایل ذخیره نشده است." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:269 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:266 #, php-format msgid "" "You are using %1$s to serve WebP images so you do not need to enable this " @@ -3119,12 +3009,12 @@ msgstr[1] "" "نیست.%2$sاطلاعات بیشتر%3$s %4$sاگر ترجیح میدهید از این قابلیت افزونه موشک " "وردپرس استفاده کنید. لطفا تنظیمات مربوطه را در %1$s غیرفعال کنید." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:281 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:278 msgid "WebP cache is disabled by filter." msgstr "کش WebP با فیلتر غیرفعال است." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:291 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:317 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:288 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:314 #, php-format msgid "" "You are using %1$s to convert images to WebP. If you want WP Rocket to serve" @@ -3139,8 +3029,8 @@ msgstr[1] "" "برای تبدیل تصاویر به WebP شما از %1$s استفاده می کنید. اگر می خواهید از طریق" " موشک وردپرس اقدام کنید، این گزینه را فعال نمایید.%2$sراهنمایی%3$s" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:303 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:329 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:300 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:326 #, php-format msgid "" "You are using %1$s to convert images to WebP. WP Rocket will create separate" @@ -3155,7 +3045,7 @@ msgstr[1] "" "برای تبدیل تصاویر به WebP شما از %1$s استفاده می کنید. موشک وردپرس برای کش " "از فایل کش جداگانه استفاده می کند برای تصاویر WebP شما.%2$sراهنمایی%3$s" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:349 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:346 #, php-format msgid "" "%5$sWe have not detected any compatible WebP plugin!%6$s%4$s If you don’t " @@ -3168,7 +3058,7 @@ msgstr "" "پشتیبانی میکند. %1$sاطلاعات بیشتر%2$s %4$s اگر از WebP استفاده نمی کنید " "غیرفعال نمایید." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:361 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:358 msgid "WP Rocket will create separate cache files to serve your WebP images." msgstr "" "موشک وردپرس فایل های کش جداگانه ای را برای ارائه تصاویر WebP شما ایجاد می " @@ -3191,8 +3081,13 @@ msgstr "" "https://docs.wp-rocket.me/article/99-pages-not-cached-or-minify-cssjs-not-" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" -#: inc/common/admin-bar.php:124 inc/common/admin-bar.php:259 -#: inc/functions/i18n.php:41 inc/functions/i18n.php:51 +#: inc/common/admin-bar.php:84 inc/common/admin-bar.php:136 +#: views/settings/page-sections/dashboard.php:150 +msgid "Clear and preload cache" +msgstr "حذف و پیش بارگذاری مجدد کش" + +#: inc/common/admin-bar.php:124 inc/functions/i18n.php:41 +#: inc/functions/i18n.php:51 msgid "All languages" msgstr "همه‌ی زبان‌ها" @@ -3208,16 +3103,11 @@ msgstr "پاک‌سازی این لینک" msgid "Purge Sucuri cache" msgstr "تخلیه کش Sucuri" -#: inc/common/admin-bar.php:217 inc/common/admin-bar.php:271 -#: views/settings/page-sections/dashboard.php:170 -msgid "Preload cache" -msgstr "پیش‌بارگذاری کش" - -#: inc/common/admin-bar.php:296 views/settings/fields/rocket-cdn.php:55 +#: inc/common/admin-bar.php:218 views/settings/fields/rocket-cdn.php:55 msgid "Purge RocketCDN cache" msgstr "تخلیه کش RocketCDN" -#: inc/common/admin-bar.php:309 views/settings/partials/documentation.php:14 +#: inc/common/admin-bar.php:231 views/settings/partials/documentation.php:14 msgid "Documentation" msgstr "مستندات" @@ -3229,6 +3119,45 @@ msgstr "تخلیه کش OPcache شکست خورد." msgid "OPcache successfully purged" msgstr "OPcache با موفقیت تخلیه شد" +#: inc/deprecated/3.11.php:81 +msgid "Yoast SEO XML sitemap" +msgstr "نقشه سایت Yoast SEO" + +#: inc/deprecated/3.11.php:83 inc/deprecated/3.12.php:58 +#: inc/deprecated/3.12.php:87 inc/deprecated/3.12.php:186 +#: inc/deprecated/3.12.php:253 inc/deprecated/3.12.php:342 +#, php-format +msgid "" +"We automatically detected the sitemap generated by the %s plugin. You can " +"check the option to preload it." +msgstr "" +"ما به طور خودکار نقشه سایت تولید شده توسط پلاگین %s را تشخیص می‌دهیم. شما می" +" توانید این گزینه را برای بارگذاری اولیه آن تیک بزنید." + +#: inc/deprecated/3.12.php:56 +msgid "All in One SEO XML sitemap" +msgstr "نقشه سایت All in One SEO" + +#: inc/deprecated/3.12.php:85 +msgid "Rank Math XML sitemap" +msgstr "نقشه سایت Rank Math" + +#: inc/deprecated/3.12.php:184 +msgid "SEOPress XML sitemap" +msgstr "نقشه سایت Rank Math" + +#: inc/deprecated/3.12.php:251 +msgid "The SEO Framework XML sitemap" +msgstr "نقشه سایت SEO Framework" + +#: inc/deprecated/3.12.php:332 +msgid "Jetpack XML Sitemaps" +msgstr "نقشه سایت جت‌پک" + +#: inc/deprecated/3.12.php:334 +msgid "Preload the sitemap from the Jetpack plugin" +msgstr "پیش‌بارگذاری نقشه سایت از افزونه جت‌پک" + #: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 msgid "Activate Imagify" msgstr "فعال‌سازی Imagify" @@ -3271,7 +3200,7 @@ msgstr "یک دامنه را از لیست انتخاب کنید" msgid "No domain available in your Cloudflare account" msgstr "دامنه‌ای در حساب Cloudflare شما موجود نیست" -#: inc/deprecated/3.5.php:81 inc/deprecated/3.5.php:205 +#: inc/deprecated/3.5.php:71 inc/deprecated/3.5.php:195 msgid "" "Curl is disabled on your server. Please ask your host to enable it. This is " "required for the Cloudflare Add-on to work correctly." @@ -3279,7 +3208,7 @@ msgstr "" "Curl در سرور شما غیرفعال است. لطفاً از میزبان خود بخواهید آن را فعال کند. " "این مورد برای عملکرد صحیح افزونه Cloudflare ضروری است." -#: inc/deprecated/3.5.php:89 +#: inc/deprecated/3.5.php:79 #, php-format msgid "" "Cloudflare email, API key and Zone ID are not set. Read the " @@ -3288,7 +3217,7 @@ msgstr "" "Cloudflare email, API key and Zone ID تنظیم نشده است. برای " "راهنمایی%1$sمستندات%2$s را بخوانید." -#: inc/deprecated/3.5.php:216 +#: inc/deprecated/3.5.php:206 #, php-format msgid "" "Cloudflare email and API key are not set. Read the %1$sdocumentation%2$s for" @@ -3297,7 +3226,7 @@ msgstr "" "Cloudflare email and API key تنظیم نشده است. برای راهنمایی%1$sمستندات%2$s را" " بخوانید." -#: inc/deprecated/3.5.php:281 +#: inc/deprecated/3.5.php:271 msgid "Connection to Cloudflare failed" msgstr "اتصال به Cloudflare انجام نشد" @@ -3485,23 +3414,23 @@ msgstr "تنظیمات ناشناس موشک وردپرس:" msgid "Which WP Rocket settings are active" msgstr "کدام تنظیمات موشک وردپرس فعال هستند" -#: inc/functions/options.php:471 +#: inc/functions/options.php:473 msgid "The provided license data are not valid." msgstr "داده لایسنس شما معتبر نیست." -#: inc/functions/options.php:474 +#: inc/functions/options.php:476 #, php-format msgid "To resolve, please %1$scontact support%2$s." msgstr "برای رفع مشکل، لطفا با %1$sپشتیبانی%2$s تماس بگیرید." -#: inc/functions/options.php:533 inc/functions/options.php:572 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from " "your website." msgstr "" "اعتبارسنجی لایسنس انجام نشد. سرور ما نتوانست درخواست وب سایت شما را حل کند." -#: inc/functions/options.php:533 +#: inc/functions/options.php:535 #, php-format msgid "" "Try clicking %1$sValidate License%2$s below. If the error persists, follow " @@ -3510,7 +3439,7 @@ msgstr "" "سعی کنید روی%1$sذخیره تغییرات%2$s در زیر کلیک کنید. اگر همچنان خطا وجود " "داشت، %3$sراهنمایی%4$s را دنبال کنید." -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" @@ -3518,45 +3447,45 @@ msgstr "" "اعتبارسنجی لایسنس شکست خورد. شاید شما از نسخه نال استفاده می کنید. لطفا " "موارد زیر را انجام دهید:" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" msgstr "وارد شدن به %1$sحساب کاربری%2$s موشک وردپرس" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" msgstr "دانلود فایل فشرده" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" msgstr "نصب مجدد" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 #, php-format msgid "" "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." msgstr "اگر حساب کاربری موشک وردپرس ندارید، لطفا %1$sخرید کنید%2$s." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" "اعتبارسنجی لایسنس شکست خورد. این حساب کاربری در پایگاه داده ما وجود ندارد." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." msgstr "برای رفع مشکل با پشتیبانی تماس بگیرید." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 msgid "License validation failed. This user account is blocked." msgstr "اعتبارسنجی لایسنس شکست خورد. این حساب کاربری بلاک شده است." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." msgstr "برای کسب اطلاعات بیشتر%1$sراهنمایی%2$s را مطالعه کنید." -#: inc/functions/options.php:572 +#: inc/functions/options.php:574 #, php-format msgid "" "Try clicking %1$sSave Changes%2$s below. If the error persists, follow " @@ -3565,20 +3494,20 @@ msgstr "" "سعی کنید روی%1$sذخیره تغییرات%2$s در زیر کلیک کنید. اگر همچنان خطا وجود " "داشت، %3$sراهنمایی%4$s را دنبال کنید." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 msgid "Your license is not valid." msgstr "لایسنس شما نامعتبر است." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." msgstr "مطمئن شوید که %1$sلایسنس موشک وردپرس%2$s فعال دارید." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "شما به اندازه لایسنس فعلی سایت اضافه کرده اید." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this " @@ -3587,25 +3516,25 @@ msgstr "" "حساب کاربری%1$sخودرا%2$sارتقاء دهید یا%3$sلایسنس خود را به دامنه فعلی %2$s " "منتقل کنید." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 msgid "This website is not allowed." msgstr "این وب سایت مجاز نمی باشد." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." msgstr "با %1$sپشتیبانی%2$sتماس بگیرید." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 msgid "This license key is not recognized." msgstr "این لایسنس شناسایی نشد." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "اگر مشکل همچنان برقرار بود با %1$sپشتیبانی%2$s تماس بگیرید." -#: inc/functions/options.php:597 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" msgstr "اعتبارسنجی لایسنس شکست خورد: %s" @@ -3736,10 +3665,6 @@ msgstr "30 روز" msgid "Forever" msgstr "همیشگی" -#: views/deactivation-intent/form.php:63 -msgid "Cancel" -msgstr "انصراف" - #: views/deactivation-intent/form.php:64 msgid "Confirm" msgstr "تایید" @@ -3898,32 +3823,28 @@ msgid "Remove all cached files" msgstr "حذف همه فایل‌های کش شده" #: views/settings/page-sections/dashboard.php:164 -msgid "Start cache preloading" -msgstr "شروع پیش بارگذاری کش" - -#: views/settings/page-sections/dashboard.php:182 -#: views/settings/page-sections/dashboard.php:188 +#: views/settings/page-sections/dashboard.php:170 msgid "Regenerate Critical CSS" msgstr "بازسازی مسیر قطعی CSS" -#: views/settings/page-sections/dashboard.php:200 +#: views/settings/page-sections/dashboard.php:182 msgid "Remove Used CSS Cache" msgstr "حذف کش CSS استفاده شده" -#: views/settings/page-sections/dashboard.php:223 +#: views/settings/page-sections/dashboard.php:205 msgid "Frequently Asked Questions" msgstr "سوالات متداول" -#: views/settings/page-sections/dashboard.php:237 +#: views/settings/page-sections/dashboard.php:219 msgid "Still cannot find a solution?" msgstr "هنوز مشکل شما حل نشده است؟" -#: views/settings/page-sections/dashboard.php:238 +#: views/settings/page-sections/dashboard.php:220 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "تیکی ارسال کنید و از پشتیبان‌های با دانش ما کمک بگیرید." -#: views/settings/page-sections/dashboard.php:246 +#: views/settings/page-sections/dashboard.php:228 msgid "Ask support" msgstr "درخواست پشتیبانی" @@ -4057,11 +3978,11 @@ msgstr "" msgid "Reinstall version %s" msgstr "نصب دوباره نسخه %s" -#: views/settings/page-sections/tools.php:106 +#: views/settings/page-sections/tools.php:108 msgid "Debug mode" msgstr "حالت اشکال زدایی" -#: views/settings/page-sections/tools.php:111 +#: views/settings/page-sections/tools.php:113 msgid "Create a debug log file." msgstr "یک فایل گزارش اشکال زدایی ایجاد کنید." diff --git a/languages/rocket-hu_HU.mo b/languages/rocket-hu_HU.mo index 2b84c36f83..4d5099b937 100644 Binary files a/languages/rocket-hu_HU.mo and b/languages/rocket-hu_HU.mo differ diff --git a/languages/rocket-hu_HU.po b/languages/rocket-hu_HU.po index a3c0353337..12b7632014 100644 --- a/languages/rocket-hu_HU.po +++ b/languages/rocket-hu_HU.po @@ -1,12 +1,16 @@ # Copyright (C) 2016 WP Rocket # This file is distributed under the same license as the WP Rocket package. +# Translators: +# Oliver Kardos, 2022 +# #, fuzzy msgid "" msgstr "" -"Project-Id-Version: WP Rocket 3.3.7\n" +"Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2019-08-26 11:14-0400\n" +"POT-Creation-Date: 2022-07-28 14:01-0400\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" +"Last-Translator: Oliver Kardos, 2022\n" "Language-Team: Hungarian (Hungary) (https://www.transifex.com/wp-media/teams/18133/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -22,2122 +26,3600 @@ msgstr "" "X-Poedit-SearchPathExcluded-2: vendor\n" "X-Poedit-SearchPathExcluded-3: node_modules\n" "X-Poedit-SearchPathExcluded-4: tests\n" +"X-Poedit-SearchPathExcluded-5: inc/Dependencies\n" "X-Poedit-SourceCharset: UTF-8\n" "X-Textdomain-Support: yes\n" -#: inc/3rd-party/hosting/flywheel.php:15 inc/3rd-party/hosting/godaddy.php:15 -#: inc/3rd-party/hosting/o2switch.php:15 -#: inc/3rd-party/hosting/pressidium.php:15 inc/3rd-party/hosting/savvii.php:15 -#: inc/3rd-party/hosting/wp-serveur.php:24 -#: inc/3rd-party/hosting/wpengine.php:15 +#: inc/3rd-party/hosting/flywheel.php:18 +#: inc/3rd-party/hosting/pressidium.php:18 +#: inc/3rd-party/hosting/wp-serveur.php:27 +#: inc/ThirdParty/Hostings/Cloudways.php:90 +#: inc/ThirdParty/Hostings/Dreampress.php:44 +#: inc/ThirdParty/Hostings/Godaddy.php:63 +#: inc/ThirdParty/Hostings/O2Switch.php:49 +#: inc/ThirdParty/Hostings/Savvii.php:50 +#: inc/ThirdParty/Hostings/WPEngine.php:47 inc/deprecated/3.6.php:698 +#: inc/deprecated/3.6.php:998 inc/deprecated/3.9.php:22 #, php-format msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for " "compatibility." msgstr "" - -#: inc/3rd-party/hosting/kinsta.php:150 -#, php-format -msgid "" -"Your installation seems to be missing core Kinsta files managing Cache " -"clearing and CDN, which will prevent your Kinsta installation and WP Rocket " -"from working correctly. Please get in touch with Kinsta support through your" -" %1$sMyKinsta%2$s account to resolve this issue." -msgstr "" +"Az oldalad a %stárhelyen van, bekapcsoltuk a Varnish gyorsítótár automata " +"ürítését kompatibilitási okokból." #: inc/3rd-party/plugins/jetpack.php:86 msgid "Jetpack XML Sitemaps" -msgstr "" +msgstr "Jetpack XML Oldaltérképek" #: inc/3rd-party/plugins/jetpack.php:88 msgid "Preload the sitemap from the Jetpack plugin" -msgstr "" +msgstr "Oldaltérkép előtöltése a Jetpack pluginból" #: inc/3rd-party/plugins/jetpack.php:96 -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:88 +#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:118 #: inc/3rd-party/plugins/seo/rank-math-seo.php:34 -#: inc/3rd-party/plugins/seo/seopress.php:85 -#: inc/3rd-party/plugins/seo/the-seo-framework.php:123 -#: inc/3rd-party/plugins/seo/yoast-seo.php:86 +#: inc/3rd-party/plugins/seo/seopress.php:86 +#: inc/3rd-party/plugins/seo/the-seo-framework.php:144 +#: inc/ThirdParty/Plugins/SEO/Yoast.php:62 inc/deprecated/3.11.php:83 #, php-format msgid "" "We automatically detected the sitemap generated by the %s plugin. You can " "check the option to preload it." msgstr "" +"Megtaláltuk az oldaltérképet, amit %s bővítmény készített. Ha szeretnéd ezt " +"előtölteni akkor pipáld be az erre való opciót." -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:86 +#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:116 msgid "All in One SEO XML sitemap" -msgstr "" +msgstr "All in One SEO XML oldaltérkép" #: inc/3rd-party/plugins/seo/rank-math-seo.php:32 msgid "Rank Math XML sitemap" -msgstr "" +msgstr "Rank Math XML oldaltérkép" -#: inc/3rd-party/plugins/seo/seopress.php:83 +#: inc/3rd-party/plugins/seo/seopress.php:84 msgid "SEOPress XML sitemap" -msgstr "" +msgstr "SEOPress XML oldaltérkép" -#: inc/3rd-party/plugins/seo/the-seo-framework.php:121 +#: inc/3rd-party/plugins/seo/the-seo-framework.php:142 msgid "The SEO Framework XML sitemap" -msgstr "" - -#: inc/3rd-party/plugins/seo/yoast-seo.php:84 -msgid "Yoast SEO XML sitemap" -msgstr "" - -#: inc/admin/admin.php:13 inc/common/admin-bar.php:311 -#: inc/deprecated/deprecated.php:1789 -msgid "Support" -msgstr "" - -#: inc/admin/admin.php:15 -msgid "Docs" -msgstr "" +msgstr "The SEO Framework XML oldaltérkép" -#: inc/admin/admin.php:17 inc/common/admin-bar.php:299 -msgid "FAQ" -msgstr "" - -#: inc/admin/admin.php:19 inc/common/admin-bar.php:46 -msgid "Settings" +#: inc/Addon/Cloudflare/APIClient.php:309 +msgid "Cloudflare did not provide any reply. Please try again later." msgstr "" +"A Cloudflare semmilyen választ nem küldött. Kérjük próbáld újra később." -#: inc/admin/admin.php:64 inc/admin/admin.php:86 inc/admin/admin.php:105 -msgid "Clear this cache" -msgstr "" +#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:122 +#: inc/deprecated/3.5.php:179 +msgid "Incorrect Cloudflare email address or API key." +msgstr "Téves Cloudflare email cím vagy API kulcs." -#: inc/admin/admin.php:249 inc/admin/admin.php:264 -#: inc/classes/class-wp-rocket-requirements-check.php:204 -#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/Addon/Cloudflare/APIClient.php:322 +#: inc/Addon/Cloudflare/APIClient.php:335 +#: inc/Addon/Cloudflare/Cloudflare.php:112 +#: inc/Addon/Cloudflare/Cloudflare.php:144 +#: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:157 +#: inc/deprecated/3.5.php:102 inc/deprecated/3.5.php:126 +#: inc/deprecated/3.5.php:139 inc/deprecated/3.5.php:167 +#: inc/deprecated/3.5.php:183 #, php-format -msgid "%s Update Rollback" -msgstr "" +msgid "Read the %1$sdocumentation%2$s for further guidance." +msgstr "Olvasd el a %1$sdokumentációt %2$s további segítségért. " -#: inc/admin/admin.php:290 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" +#: inc/Addon/Cloudflare/APIClient.php:324 +#: inc/Addon/Cloudflare/APIClient.php:337 +#: inc/Addon/Cloudflare/Cloudflare.php:101 +#: inc/Addon/Cloudflare/Cloudflare.php:114 +#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:91 +#: inc/deprecated/3.5.php:104 inc/deprecated/3.5.php:128 +#: inc/deprecated/3.5.php:141 inc/deprecated/3.5.php:169 +#: inc/deprecated/3.5.php:185 inc/deprecated/3.5.php:218 +msgid "" +"https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" +"cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" msgstr "" +"https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" +"cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" -#: inc/admin/admin.php:529 -msgid "Settings import failed: you do not have the permissions to do this." -msgstr "" +#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:135 +msgid "Incorrect Cloudflare Zone ID." +msgstr "Hibás Cloudflare Zóna azonosító azaz Zone ID" -#: inc/admin/admin.php:533 -msgid "Settings import failed: no file uploaded." +#: inc/Addon/Cloudflare/Cloudflare.php:99 +#, php-format +msgid "" +"Cloudflare email and/or API key are not set. Read the %1$sdocumentation%2$s " +"for further guidance." msgstr "" +"Nincs beállítva a Cloudflare email vagy API kulcs. Olvasd el a %1$s " +"dokumentációt %2$s további részletekért." -#: inc/admin/admin.php:537 -msgid "Settings import failed: incorrect filename." -msgstr "" +#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:98 +msgid "Missing Cloudflare Zone ID." +msgstr "Hiányzó Cloudflare zóna azonosító." -#: inc/admin/admin.php:546 -msgid "Settings import failed: incorrect filetype." -msgstr "" +#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:163 +msgid "It looks like your domain is not set up on Cloudflare." +msgstr "Úgy tűnik hogy a domain neved nincs beállítva a Cloudflare oldalán." -#: inc/admin/admin.php:554 -msgid "Settings import failed: " -msgstr "" +#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:597 +#, php-format +msgid "WP Rocket: %s" +msgstr "WP Rocket: %s" -#: inc/admin/admin.php:571 -msgid "Settings import failed: unexpected file content." -msgstr "" +#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:602 +msgid "WP Rocket: Cloudflare cache successfully purged." +msgstr "WP Rocket: Cloudflare gyorsítótár sikeresen ürítve." -#: inc/admin/admin.php:592 -msgid "Settings imported and saved." -msgstr "" +#: inc/Addon/Cloudflare/Subscriber.php:364 +#: inc/Addon/Cloudflare/Subscriber.php:370 +#: inc/Addon/Cloudflare/Subscriber.php:390 +#: inc/Addon/Cloudflare/Subscriber.php:401 +#: inc/Addon/Cloudflare/Subscriber.php:420 +#: inc/Addon/Cloudflare/Subscriber.php:426 +#: inc/Addon/Cloudflare/Subscriber.php:445 +#: inc/Addon/Cloudflare/Subscriber.php:451 +#: inc/Addon/Cloudflare/Subscriber.php:470 +#: inc/Addon/Cloudflare/Subscriber.php:476 +#: inc/Addon/Cloudflare/Subscriber.php:558 inc/admin/options.php:182 +#: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:148 +msgid "WP Rocket: " +msgstr "WP Rocket: " -#: inc/admin/options.php:101 +#: inc/Addon/Cloudflare/Subscriber.php:364 #, php-format msgid "Cloudflare development mode error: %s" -msgstr "" +msgstr "Cloudflare fejlesztői üzemmód hiba: %s" -#: inc/admin/options.php:107 +#: inc/Addon/Cloudflare/Subscriber.php:370 #, php-format msgid "Cloudflare development mode %s" -msgstr "" +msgstr "Cloudflare fejlesztői üzemmód %s" -#: inc/admin/options.php:124 +#: inc/Addon/Cloudflare/Subscriber.php:390 #, php-format msgid "Cloudflare cache level error: %s" -msgstr "" +msgstr "Cloudflare gyorsítótár szint hiba:%s" -#: inc/admin/options.php:128 +#: inc/Addon/Cloudflare/Subscriber.php:395 msgctxt "Cloudflare caching level" msgid "Standard" -msgstr "" +msgstr "Standard" -#: inc/admin/options.php:134 +#: inc/Addon/Cloudflare/Subscriber.php:401 #, php-format msgid "Cloudflare cache level set to %s" -msgstr "" +msgstr "Cloudflare gyorsítótár szint beállítva %s-re" -#: inc/admin/options.php:146 +#: inc/Addon/Cloudflare/Subscriber.php:420 #, php-format msgid "Cloudflare minification error: %s" -msgstr "" +msgstr "Cloudflare minification hiba: %s" -#: inc/admin/options.php:152 +#: inc/Addon/Cloudflare/Subscriber.php:426 #, php-format msgid "Cloudflare minification %s" -msgstr "" +msgstr "Cloudflare minification %s" -#: inc/admin/options.php:164 +#: inc/Addon/Cloudflare/Subscriber.php:445 #, php-format msgid "Cloudflare rocket loader error: %s" -msgstr "" +msgstr "Cloudflare rocket loader hiba: %s" -#: inc/admin/options.php:170 +#: inc/Addon/Cloudflare/Subscriber.php:451 #, php-format msgid "Cloudflare rocket loader %s" -msgstr "" +msgstr "Cloudflare rocket loader %s" -#: inc/admin/options.php:182 +#: inc/Addon/Cloudflare/Subscriber.php:470 #, php-format msgid "Cloudflare browser cache error: %s" -msgstr "" +msgstr "Cloudflare böngésző gyorsítótár hiba: %s" -#: inc/admin/options.php:188 +#: inc/Addon/Cloudflare/Subscriber.php:476 #, php-format msgid "Cloudflare browser cache set to %s seconds" -msgstr "" +msgstr "Cloudflare böngésző gyorsítótár %s másodpercre állítva" -#: inc/admin/options.php:241 inc/classes/admin/settings/class-page.php:692 -msgid "Excluded CSS Files" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:95 +#, php-format +msgid "Sucuri cache purge error: %s" +msgstr "Sucuri gyorsítótár ürítési hiba: %s" -#: inc/admin/options.php:242 inc/classes/admin/settings/class-page.php:784 -msgid "Excluded Inline JavaScript" +#: inc/Addon/Sucuri/Subscriber.php:100 +msgid "" +"The Sucuri cache is being cleared. Note that it may take up to two minutes " +"for it to be fully flushed." msgstr "" +"A Sucuri gyorsítótár ürítése folyamatban. Tipp: ez akár két percet is " +"igénybe vehet." -#: inc/admin/options.php:243 inc/classes/admin/settings/class-page.php:802 -msgid "Excluded JavaScript Files" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:217 +msgid "Sucuri firewall API key was not found." +msgstr "A Sucuri tűzfal API kulcsa nem található." -#: inc/admin/options.php:244 inc/classes/admin/settings/class-page.php:1128 -msgid "Never Cache URL(s)" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:230 +msgid "Sucuri firewall API key is invalid." +msgstr "A Sucuri tűzfal API kulcsa érvénytelen." -#: inc/admin/options.php:245 inc/classes/admin/settings/class-page.php:1144 -msgid "Never Cache User Agent(s)" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:285 +#, php-format +msgid "Error when contacting Sucuri firewall API. Error message was: %s" +msgstr "Nem sikerült elérni a Sucuri tűzfal API-ját. A hibaüzenet: %s" -#: inc/admin/options.php:246 inc/classes/admin/settings/class-page.php:1149 -msgid "Always Purge URL(s)" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:300 +msgid "Could not get a response from the Sucuri firewall API." +msgstr "Nem kaptunk választ a Sucuri tűzfal API-jától." -#: inc/admin/options.php:247 inc/classes/admin/settings/class-page.php:1443 -msgid "Exclude files from CDN" -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:315 +msgid "Got an invalid response from the Sucuri firewall API." +msgstr "Érvénytelen válaaszt kaptunk a Sucuri tűzfal API-jától." -#: inc/admin/options.php:265 -#, php-format -msgid "%1$s: %2$s." -msgstr "" +#: inc/Addon/Sucuri/Subscriber.php:329 +msgid "The Sucuri firewall API returned an unknown error." +msgstr "A Sucuri tűzfal API-ja ismeretlen hibát jelzett." -#: inc/admin/options.php:275 -msgid "The following pattern is invalid and has been removed:" -msgid_plural "The following patterns are invalid and have been removed:" -msgstr[0] "" -msgstr[1] "" +#: inc/Addon/Sucuri/Subscriber.php:333 +#, php-format +msgid "The Sucuri firewall API returned the following error: %s" +msgid_plural "The Sucuri firewall API returned the following errors: %s" +msgstr[0] "A Sucuri tűzfal API-ja az alábbi hibát jelezte: %s" +msgstr[1] "A Sucuri tűzfal API-ja az alábbi hibákat jelezte.%s" -#: inc/admin/ui/meta-boxes.php:14 inc/admin/ui/notices.php:955 -#: inc/common/admin-bar.php:65 inc/common/admin-bar.php:118 -#: views/settings/page-sections/dashboard.php:115 -msgid "Clear cache" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:30 +#: inc/Engine/Admin/Settings/Page.php:1443 +msgid "Revisions" +msgstr "Változatok" -#: inc/admin/ui/meta-boxes.php:36 -msgid "WP Rocket Options" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:31 +#: inc/Engine/Admin/Settings/Page.php:1453 +msgid "Auto Drafts" +msgstr "Automatikus piszkozatok" -#: inc/admin/ui/meta-boxes.php:66 -msgid "Never cache this page" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:32 +#: inc/Engine/Admin/Settings/Page.php:1463 +msgid "Trashed Posts" +msgstr "Lomtárba helyezett bejegyzések" -#: inc/admin/ui/meta-boxes.php:70 -msgid "Activate these options on this post:" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:33 +#: inc/Engine/Admin/Settings/Page.php:1473 +msgid "Spam Comments" +msgstr "Spam kommentek" -#: inc/admin/ui/meta-boxes.php:73 -msgid "LazyLoad for images" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:34 +#: inc/Engine/Admin/Settings/Page.php:1483 +msgid "Trashed Comments" +msgstr "Lomtárba helyezett hozzászólások" -#: inc/admin/ui/meta-boxes.php:74 -msgid "LazyLoad for iframes/videos" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:35 +msgid "Transients" +msgstr "Tranziens-ek" -#: inc/admin/ui/meta-boxes.php:75 -#: inc/classes/admin/settings/class-page.php:615 -msgid "Minify HTML" -msgstr "" +#: inc/Engine/Admin/Database/Optimization.php:36 +msgid "Tables" +msgstr "Táblák" -#: inc/admin/ui/meta-boxes.php:76 -msgid "Minify/combine CSS" -msgstr "" +#: inc/Engine/Admin/Database/Subscriber.php:79 +#: inc/Engine/HealthCheck/CacheDirSizeCheck.php:88 +#: inc/deprecated/Engine/Addon/FacebookTracking/Subscriber.php:92 +#: inc/deprecated/Engine/Addon/GoogleTracking/Subscriber.php:137 +msgid "weekly" +msgstr "heti" -#: inc/admin/ui/meta-boxes.php:77 -msgid "Minify/combine JS" -msgstr "" +#: inc/Engine/Admin/Database/Subscriber.php:85 +msgid "monthly" +msgstr "havi" -#: inc/admin/ui/meta-boxes.php:78 -#: inc/classes/admin/settings/class-page.php:1413 -#: inc/classes/admin/settings/class-page.php:1424 -#: inc/deprecated/deprecated.php:1775 -msgid "CDN" -msgstr "" +#: inc/Engine/Admin/Database/Subscriber.php:194 +msgid "Database optimization process is running" +msgstr "Adatbázis optimizálás folyamatban" -#: inc/admin/ui/meta-boxes.php:79 -msgid "Optimize CSS Delivery" -msgstr "" +#: inc/Engine/Admin/Database/Subscriber.php:224 +msgid "" +"Database optimization process is complete. Everything was already optimized!" +msgstr "Adatbázis optimizálás kész. Már minden optimizálva van!" -#: inc/admin/ui/meta-boxes.php:80 -msgid "Defer JS" -msgstr "" +#: inc/Engine/Admin/Database/Subscriber.php:227 +msgid "" +"Database optimization process is complete. List of optimized items below:" +msgstr "Adatbázis optimizálás kész. Az alábbi elemek lettek optimizálva:" -#: inc/admin/ui/meta-boxes.php:86 +#: inc/Engine/Admin/Database/Subscriber.php:235 #, php-format -msgid "Activate first the %s option." -msgstr "" +msgid "%1$d %2$s optimized." +msgstr "%1$d %2$s optimizálva lett." + +#: inc/Engine/Admin/Settings/Page.php:191 +msgid "Save Changes" +msgstr "Módosítások mentése" + +#: inc/Engine/Admin/Settings/Page.php:191 +msgid "Validate License" +msgstr "Licenc ellenőrzése" + +#: inc/Engine/Admin/Settings/Page.php:247 +#: inc/Engine/Admin/Settings/Page.php:248 +msgid "Unavailable" +msgstr "Nem elérhető" + +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 +#: views/settings/page-sections/dashboard.php:80 +msgid "License" +msgstr "Licenc" + +#: inc/Engine/Admin/Settings/Page.php:359 +msgid "API key" +msgstr "API kulcs" + +#: inc/Engine/Admin/Settings/Page.php:374 +msgid "Email address" +msgstr "Email cím" + +#: inc/Engine/Admin/Settings/Page.php:400 +msgid "Dashboard" +msgstr "Vezérlőpult" + +#: inc/Engine/Admin/Settings/Page.php:401 +msgid "Get help, account info" +msgstr "Segítség, fiók-információ" + +#: inc/Engine/Admin/Settings/Page.php:410 +msgid "My Status" +msgstr "Állapotom" + +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 +msgid "Rocket Analytics" +msgstr "Rocket Analytics" -#: inc/admin/ui/meta-boxes.php:102 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" -"%1$sNote:%2$s None of these options will be applied if this post has been " -"excluded from cache in the global cache settings." +"I agree to share anonymous data with the development team to help improve WP" +" Rocket. %1$sWhat info will we collect?%2$s" msgstr "" +"Hozzájárulok ahhoz, hogy névtelen adatokat osszunk meg a fejlesztőcsapat " +"felé, segítve ezzel a WP Rocket továbbfejlesztését. %1$sMilyen adatokat " +"gyűjtünk?%2$s" -#: inc/admin/ui/notices.php:24 inc/admin/ui/notices.php:34 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 +msgid "Cache" +msgstr "Gyorsítótár" + +#: inc/Engine/Admin/Settings/Page.php:447 +msgid "Basic cache options" +msgstr "Alapvető gyorsítótár beállítások" + +#: inc/Engine/Admin/Settings/Page.php:454 +msgid "Mobile Cache" +msgstr "Mobil gyorsítótár" + +#: inc/Engine/Admin/Settings/Page.php:456 +msgid "Speed up your site for mobile visitors." +msgstr "Gyorsítsd fel az oldaladat a mobilról érkező látogatók számára" + +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" -"%1$s has not been deactivated due to missing writing permissions.
\n" -"Make %2$s writeable and retry deactivation, or force deactivation now:" +"We detected you use a plugin that requires a separate cache for mobile, and " +"automatically enabled this option for compatibility." msgstr "" +"Azt vettük észre, hogy olyan bővítményt használsz ami miatt kötelező külön " +"gyorsítótárat használnod a mobileszközökhöz és így automatikusan be is " +"kapcsoltuk ezt a lehetőséget a kompatibilitás érdekében." -#: inc/admin/ui/notices.php:83 +#: inc/Engine/Admin/Settings/Page.php:465 +msgid "User Cache" +msgstr "Bejelentkezett felhasználói gyorsítótár" + +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" -"%s: One or more plugins have been enabled or disabled, " -"clear the cache if they affect the front end of your site." +"%1$sUser cache%2$s is great when you have user-specific or restricted " +"content on your website." msgstr "" +"%1$sA felhasználói gyorsítótár%2$s nagyszerű lehetőség, ha vannak csak " +"(bejelentkezett) felhasználók számára elérhető, vagy zárolt tartalmak az " +"oldaladon." + +#: inc/Engine/Admin/Settings/Page.php:476 +msgid "Cache Lifespan" +msgstr "Gyorsítótár élettartama" -#: inc/admin/ui/notices.php:196 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" -"%s: The following plugins are not compatible with this " -"plugin and may cause unexpected results:" +"Cache files older than the specified lifespan will be deleted.
Enable " +"%1$spreloading%2$s for the cache to be rebuilt automatically after lifespan " +"expiration." msgstr "" +"Törlésre kerülnek az olyan gyorsítótárbeli fájlok amik ettől a megadott " +"élettartamnál régebbiek.
Engedélyezd %1$saz előtöltést vagyis a " +"preloadingot%2$s annak érdekében, hogy a gyorsítótárat automatikusan " +"újraépíthessük ha lejárt az élettartama." -#: inc/admin/ui/notices.php:202 -msgid "Deactivate" +#: inc/Engine/Admin/Settings/Page.php:493 +msgid "Enable caching for logged-in WordPress users" +msgstr "" +"Gyorsítótárazás bekapcsolása bejelentkezett WordPress felhasználók számára " +"is" + +#: inc/Engine/Admin/Settings/Page.php:501 +msgid "Enable caching for mobile devices" +msgstr "Gyorsítótárazás engedélyezése mobileszközök számára" + +#: inc/Engine/Admin/Settings/Page.php:516 +msgid "Separate cache files for mobile devices" +msgstr "Külön gyorsítótár-fájlok fenntartása a mobileszközökhöz" + +#: inc/Engine/Admin/Settings/Page.php:518 +#, php-format +msgid "" +"Most modern themes are responsive and should work without a separate cache. " +"Enable this only if you have a dedicated mobile theme or plugin. %1$sMore " +"info%2$s" msgstr "" +"A legtöbb modern téma már reszponzív és ezért működnie kellene külön " +"gyorsítótár nélkül is. Ezért csak akkor kapcsold ezt be, ha a rendes témádon" +" felül van egy KÜLÖN mobiltémád vagy bővítményed is. %1$sTovábbi " +"információ%2$s" -#: inc/admin/ui/notices.php:243 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "" -"WP Rocket Footer JS is not an official add-on. It prevents some options in " -"WP Rocket from working correctly. Please deactivate it if you have problems." +"Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" +"Add meg, hogy mennyi idő után legyen ürítve a globális " +"gyorsítótár
(0=soha)" -#: inc/admin/ui/notices.php:283 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" -"Endurance Cache is currently enabled, which will conflict with WP Rocket " -"Cache. Please set the Endurance Cache cache level to Off (Level 0) on the " -"%1$sSettings > General%2$s page to prevent any issues." +"Reduce lifespan to 10 hours or less if you notice issues that seem to appear" +" periodically. %1$sWhy?%2$s" msgstr "" +"Csökkentsd 10 órára vagy kevesebbre az élettartamot, ha olyan problémákat " +"tapasztalsz ami csak időnként, de rendszeresen előfordul. %1$sMiért?%2$s" + +#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/License/views/promo-banner.php:30 +#: inc/Engine/License/views/renewal-soon-banner.php:13 +msgid "Hours" +msgstr "Órák" + +#: inc/Engine/Admin/Settings/Page.php:543 +#: inc/Engine/License/views/promo-banner.php:29 +#: inc/Engine/License/views/renewal-soon-banner.php:12 +msgid "Days" +msgstr "Napok" -#: inc/admin/ui/notices.php:305 +#: inc/Engine/Admin/Settings/Page.php:578 +msgid "File Optimization" +msgstr "Fájl optimizálás" + +#: inc/Engine/Admin/Settings/Page.php:579 +msgid "Optimize CSS & JS" +msgstr "CSS & JS optimizálás" + +#: inc/Engine/Admin/Settings/Page.php:586 +msgid "CSS Files" +msgstr "CSS fájlok" + +#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" -"%1$s: A custom permalink structure is required for the plugin to work " -"properly. %2$sGo to permalinks settings%3$s" +"%1$s Minification is currently activated in Autoptimize. If" +" you want to use %2$s’s minification, disable those options in Autoptimize." msgstr "" +"%1$s a minification jelenleg aktiválva van a " +"Autoptimize-ban. Ha szeretnéd használni a %2$sminification-" +"jét, akkor tiltsd le az erre vonatkozó opciókat az Autoptimize-ban először." + +#: inc/Engine/Admin/Settings/Page.php:596 +msgid "JavaScript Files" +msgstr "JavaScript fájlok" -#: inc/admin/ui/notices.php:442 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" -"%s could not modify the .htaccess file due to missing writing permissions." +"If you have problems after activating this option, copy and paste the " +"default exclusions to quickly resolve " +"issues:
%1$s

Also, please check our " +"%2$sdocumentation%3$s for a list of compatibility exclusions." msgstr "" +"Ha problémákat tapasztalsz miután bekapcsolod ezt az opciót, akkor másold be" +" ezeket az alapértelmezett kizárásokat a hibák gyors " +"megoldásához:
%1$s

Továbbá kérlek tekintsd meg" +" a %2$sdokumentációnkat%3$s az ilyesmi kompatibilitást segítő kizárások " +"listájáért." -#: inc/admin/ui/notices.php:448 inc/admin/ui/notices.php:1032 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format -msgid "Troubleshoot: %1$sHow to make system files writeable%2$s" +msgid "" +"Internal scripts are excluded by default to prevent issues. Remove them to " +"take full advantage of this option.
If this causes trouble, restore the " +"default exclusions, found %1$shere%2$s" msgstr "" +"A beépített scriptek alapértelmezetten ki vannak hagyva, hogy megelőzzük a " +"problémákat. Távolítsd el őket hogy maximálisan kihasználhasd ennek a " +"funkciónak az előnyeit.
Ha ez problémát okoz akkor állítsd vissza az " +"alapértelmezett kizárásokat, amik megtalálhatóak %1$sitt%2$s" -#: inc/admin/ui/notices.php:450 inc/admin/ui/notices.php:1034 -msgid "" -"https://docs.wp-rocket.me/article/626-how-to-make-system-files-htaccess-wp-" -"config-writeable/?utm_source=wp_plugin&utm_medium=wp_rocket" +#: inc/Engine/Admin/Settings/Page.php:626 +msgid "Minify CSS files" +msgstr "CSS fájlok miniatűrizálása" + +#: inc/Engine/Admin/Settings/Page.php:627 +msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" +"A CSS miniatűrizálás kiszedi a felesleges szóközöket és kommenteket, ezáltal" +" csökkenti a fájlméretet." + +#: inc/Engine/Admin/Settings/Page.php:640 +#: inc/Engine/Admin/Settings/Page.php:664 +#: inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:818 +msgid "This could break things!" +msgstr "Ez elronthat dolgokat az oldalon!" -#: inc/admin/ui/notices.php:456 +#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" -"Don’t worry, WP Rocket’s page caching and settings will still function " -"correctly." +"If you notice any errors on your website after having activated this " +"setting, just deactivate it again, and your site will be back to normal." msgstr "" +"Ha bármilyen hibát tapasztalsz a weblapodon miután bekapcsoltad ezt az " +"opciót, akkor egyszerűen kapcsold ki itt és az oldalad újra rendesen fog " +"működni." -#: inc/admin/ui/notices.php:456 -msgid "" -"For optimal performance, adding the following lines into your .htaccess is " -"recommended (not required):" +#: inc/Engine/Admin/Settings/Page.php:642 +msgid "Activate minify CSS" +msgstr "CSS miniatűrizálás bekapcsolása" + +#: inc/Engine/Admin/Settings/Page.php:647 +msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" +"CSS fájlok összevonása(Kapcsold be a CSS miniatűrizálást először)" -#: inc/admin/ui/notices.php:600 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" -"%1$s is good to go! %2$sTest your load time%4$s, or visit your " -"%3$ssettings%4$s." +"Combine CSS merges all your files into 1, reducing HTTP requests. Not " +"recommended if your site uses HTTP/2. %1$sMore info%2$s" msgstr "" +"A CSS egyesítése funkció összevonja a CSS fájljaidat egy darabbá, csökkentve" +" a HTTP kéréseket. Nem ajánlott ha az oldalad HTTP/2-t használ. %1$sTovábbi " +"információ%2$s" -#: inc/admin/ui/notices.php:721 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" -"Would you allow WP Rocket to collect non-sensitive diagnostic data from this" -" website?" +"For compatibility and best results, this option is disabled when Remove " +"unused CSS is enabled." msgstr "" +"Kompatibilitási okokból ez az opció le van tiltva, ha a Nem-használt CSS " +"eltávolítása engedélyezve van." -#: inc/admin/ui/notices.php:722 -msgid "This would help us to improve WP Rocket for you in the future." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:666 +msgid "Activate combine CSS" +msgstr "CSS egyesítés bekapcsolása" -#: inc/admin/ui/notices.php:728 -msgid "What info will we collect?" +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 +msgid "Excluded CSS Files" +msgstr "Kizárt CSS fájlok" + +#: inc/Engine/Admin/Settings/Page.php:672 +msgid "" +"Specify URLs of CSS files to be excluded from minification and concatenation" +" (one per line)." msgstr "" +"Add meg itt azon CSS fájlok URLjeit amik ki lesznek hagyva a " +"miniatűrizálásból és összevonásból (soronként egyet írj)." -#: inc/admin/ui/notices.php:733 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" -"Below is a detailed view of all data WP Rocket will collect if granted " -"permission. WP Rocket will never transmit any domain names or email " -"addresses (except for license validation), IP addresses, or third-party API " -"keys." +"Internal: The domain part of the URL will be stripped " +"automatically. Use (.*).css wildcards to exclude all CSS files located at a " +"specific path." msgstr "" +"Belső: Az URL-ből a domain-részz automatikusan ki lesz " +"dobva. Ezért használj (.*).css wildcard jelöléseket ha minden CSS fájlt " +"szeretnéd kizárni egy bizonyos útvonalon." -#: inc/admin/ui/notices.php:742 -msgid "Yes, allow" +#: inc/Engine/Admin/Settings/Page.php:675 +#, php-format +msgid "" +"3rd Party: Use either the full URL path or only the domain " +"name, to exclude external CSS. %1$sMore info%2$s" msgstr "" +"Külsős forrás: Vagy a teljes elérési útvonalat (URL-t) add " +"meg, vagy csak a domain nevet ahhoz, hogy kizárhasd a külső féltől származó " +"CSS-t. %1$sTovábbi információ%2$s" -#: inc/admin/ui/notices.php:745 -msgid "No, thanks" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:688 +#: inc/Engine/Admin/Settings/Page.php:710 +msgid "Optimize CSS delivery" +msgstr "CSS kiküldés optimizálása" -#: inc/admin/ui/notices.php:783 -msgid "Thank you!" +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"Optimize CSS delivery eliminates render-blocking CSS on your website. Only " +"one method can be selected. Remove Unused CSS is recommended for optimal " +"performance, but limited only to the users with active license." msgstr "" +"Az optimizált CSS kiküldés megszünteti a renderelést lassító CSS kódokat az " +"oldaladon. Csak az egyik módszer használható. A Nem-használt CSS kódok " +"eltávolítása opciót javasoljuk inkább a jobb teljesítmény érdekében, de az " +"csak az aktív licensszel rendelkező felhasználóknak elérhető." -#: inc/admin/ui/notices.php:788 -msgid "WP Rocket now collects these metrics from your website:" +#: inc/Engine/Admin/Settings/Page.php:693 +msgid "" +"Optimize CSS delivery eliminates render-blocking CSS on your website. Only " +"one method can be selected. Remove Unused CSS is recommended for optimal " +"performance." msgstr "" +"A CSS-küldés optimizáció megszünteti az úgynevezett render-blocking CSS " +"problémákat a weboldalon, amikor valamelyik CSS fájl feldolgozására várni " +"kellene, mielőtt az oldal betöltése folytatódhatna. Csak egy módszer " +"választható. A \"Távolítsa el a nem-használt CSS kódokat\" opciót ajánljuk a" +" legjobb teljesítmény érdekében." -#: inc/admin/ui/notices.php:825 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format -msgid "%s: Cache cleared." +msgid "" +"Optimize CSS Delivery features are disabled on local environments. %1$sLearn" +" more%2$s" msgstr "" +"Az optimizált CSS kiküldés funkciók nem elérhetőek helyi környezetben. " +"%1$sTudj meg többet%2$s" -#: inc/admin/ui/notices.php:830 -#, php-format -msgid "%s: Post cache cleared." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:723 +msgid "Remove Unused CSS (Beta)" +msgstr "Nem-használt CSS kódok eltávolítása (Béta állapotú funkció)" -#: inc/admin/ui/notices.php:835 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format -msgid "%s: Term cache cleared." +msgid "" +"Removes unused CSS per page and helps to reduce page size and HTTP requests." +" Recommended for best performance. Test thoroughly! %1$sMore info%2$s" msgstr "" +"Eltávolítja a használaton kívüli CSS-t oldalanként és ezáltal segít " +"csökkenteni az oldal méretét és a HTTP kérések számát. Ajánlott funkció a " +"legjobb teljesítmény érdekében, azonban alaposan teszteld! %1$sTovábbi " +"információ%2$s" -#: inc/admin/ui/notices.php:840 -#, php-format -msgid "%s: User cache cleared." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:728 +msgid "We’re still working on it!" +msgstr "Még mindig dolgozunk rajta!" -#: inc/admin/ui/notices.php:910 +#: inc/Engine/Admin/Settings/Page.php:729 msgid "" -"The following scheduled event failed to run. This may indicate the CRON " -"system is not running properly, which can prevent some WP Rocket features " -"from working as intended:" -msgid_plural "" -"The following scheduled events failed to run. This may indicate the CRON " -"system is not running properly, which can prevent some WP Rocket features " -"from working as intended:" -msgstr[0] "" -msgstr[1] "" - -#: inc/admin/ui/notices.php:919 -msgid "Please contact your host to check if CRON is working." +"This is a beta feature. We’re providing you early access but some changes " +"might be added later on. If you notice any errors on your website, simply " +"deactivate the feature." msgstr "" +"Ez egy béta funkció. Korai hozzáférést kínálunk, de ez azt jelenti hogy " +"néhány dolog megváltozhat ennél a funkciónál a jövőben. Ha bármilyen " +"problémát tapasztalsz a weboldaladon akkor egyszerűen kapcsold ki ezt a " +"funkciót." -#: inc/admin/ui/notices.php:958 -msgid "Stop Preload" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:730 +msgid "Activate Remove Unused CSS" +msgstr "Aktiváld a nem-használt CSS eltávolító funkciót" -#: inc/admin/ui/notices.php:976 -msgid "Force deactivation " -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:736 +msgid "CSS safelist" +msgstr "Védett/biztonságos CSS kódok listája" -#: inc/admin/ui/notices.php:989 -msgid "The following code should have been written to this file:" +#: inc/Engine/Admin/Settings/Page.php:737 +msgid "" +"Specify CSS filenames, IDs or classes that should not be removed (one per " +"line)." msgstr "" +"Add meg a CSS fájlok fájlneveit vagy az azokban szereplő ID-ket vagy class-" +"ek nevét, amiket nem szabad eltávolítanunk ezen funkció keretében. (Minden " +"sorba egyet írj)" -#: inc/admin/ui/notices.php:999 views/settings/page-sections/dashboard.php:45 -msgid "Dismiss this notice." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 +msgid "Load CSS asynchronously" +msgstr "Aszinkron CSS betöltés" -#: inc/admin/ui/notices.php:1020 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format -msgid "%s cannot configure itself due to missing writing permissions." +msgctxt "WP Critical CSS compatibility" +msgid "" +"Load CSS asynchronously is currently handled by the %1$s plugin. If you want" +" to use WP Rocket’s load CSS asynchronously option, disable the %1$s plugin." msgstr "" +"Az aszinkron CSS betöltést jelenleg a %1$s bővítmény végzi. Ha szeretnéd " +"erre a célra inkább a WP Rocket aszinkron CSS funkcióját használni akkor " +"tiltsd le az %1$s bővítményt." -#: inc/admin/ui/notices.php:1026 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format -msgid "Affected file/folder: %s" +msgid "" +"Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" +"Létrehozza a kritikus útvonalú CSS-eket és aszinkron módon tölti be a CSS-" +"eket. %1$sTovábbi információ%2$s" -#: inc/classes/admin/Database/class-optimization.php:41 -#: inc/classes/admin/settings/class-page.php:1289 -msgid "Revisions" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:763 +msgid "Fallback critical CSS" +msgstr "Tartalék kritikus CSS" -#: inc/classes/admin/Database/class-optimization.php:42 -#: inc/classes/admin/settings/class-page.php:1299 -msgid "Auto Drafts" +#: inc/Engine/Admin/Settings/Page.php:765 +#, php-format +msgid "" +"Provides a fallback if auto-generated critical path CSS is incomplete. " +"%1$sMore info%2$s" msgstr "" +"Tartalék lehetőséget biztosít arra az esetre, ha az automatikusan generált " +"kritikus útvonalú CSS lista nem megfelelő, vagy hiányos. %1$sTovábbi " +"információ%2$s" -#: inc/classes/admin/Database/class-optimization.php:43 -#: inc/classes/admin/settings/class-page.php:1309 -msgid "Trashed Posts" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:780 +msgid "Minify JavaScript files" +msgstr "JavaScript fájlok miniatűrizálása" -#: inc/classes/admin/Database/class-optimization.php:44 -#: inc/classes/admin/settings/class-page.php:1319 -msgid "Spam Comments" +#: inc/Engine/Admin/Settings/Page.php:781 +msgid "" +"Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" +"A Javascript miniatűrizálás kiszedi a felesleges szóközöket és kommenteket, " +"ezáltal csökkenti a fájlméretet." -#: inc/classes/admin/Database/class-optimization.php:45 -#: inc/classes/admin/settings/class-page.php:1329 -msgid "Trashed Comments" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:796 +msgid "Activate minify JavaScript" +msgstr "Javascript miniatűrizálás bekapcsolása" -#: inc/classes/admin/Database/class-optimization.php:46 -#: inc/classes/admin/settings/class-page.php:1339 -msgid "Expired transients" +#: inc/Engine/Admin/Settings/Page.php:801 +msgid "" +"Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" +"Javascript fájlok összevonása(Kapcsold be a Javasript miniatűrizálást is" +" ehhez)" -#: inc/classes/admin/Database/class-optimization.php:47 -msgid "Transients" +#: inc/Engine/Admin/Settings/Page.php:803 +#, php-format +msgid "" +"Combine JavaScript files combines your site’s internal, 3rd party and inline" +" JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " +"%1$sMore info%2$s" msgstr "" +"A Javascript fájlok egyesítése funkció összevonja az oldaladon lévő helyi, a" +" harmadik féltől származó és a beágyazott fájljaidat egyetlen darabbá, " +"csökkentve a HTTP kéréseket. Ez nem ajánlott ha az oldalad HTTP/2-t használ." +" %1$sbővebb információ%2$s" -#: inc/classes/admin/Database/class-optimization.php:48 -msgid "Tables" +#: inc/Engine/Admin/Settings/Page.php:804 +msgid "" +"For compatibility and best results, this option is disabled when delay " +"javascript execution is enabled." msgstr "" +"A legjobb kompatibilitás érdekében ez az opció le van tiltva, ha a " +"javascript késleltetett futtatása funkció engedélyezve van." -#: inc/classes/admin/class-logs.php:124 -msgid "The debug file could not be deleted." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:820 +msgid "Activate combine JavaScript" +msgstr "Aktiváld a Javascript fájlok összevonását" -#: inc/classes/admin/settings/class-page.php:212 -#: inc/classes/admin/settings/class-page.php:213 -msgid "Unavailable" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 +msgid "Excluded Inline JavaScript" +msgstr "Kihagyott beágyazott JavaScript kódok" -#: inc/classes/admin/settings/class-page.php:327 -#: inc/deprecated/deprecated.php:1791 -#: views/settings/page-sections/dashboard.php:72 -msgid "License" +#: inc/Engine/Admin/Settings/Page.php:827 +#, php-format +msgid "" +"Specify patterns of inline JavaScript to be excluded from concatenation (one" +" per line). %1$sMore info%2$s" msgstr "" +"Adj meg beágyazott JavaScript mintákat amiket kizárunk az összevonásból. " +"(soronként egyet) %1$sTovábbi információ%2$s" -#: inc/classes/admin/settings/class-page.php:344 -msgid "API key" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 +msgid "Excluded JavaScript Files" +msgstr "Kihagyott javascript fájlok" -#: inc/classes/admin/settings/class-page.php:359 -msgid "Email address" +#: inc/Engine/Admin/Settings/Page.php:844 +msgid "" +"Specify URLs of JavaScript files to be excluded from minification and " +"concatenation (one per line)." msgstr "" +"Itt adhatod meg azon JavaScript fájlok elérési útvonalát (URL-t) amiket ki " +"szeretnél zárni a miniatűrizálásból és összevonásból. (Soronként egyet írj)" -#: inc/classes/admin/settings/class-page.php:388 -msgid "Dashboard" +#: inc/Engine/Admin/Settings/Page.php:845 +msgid "" +"Internal: The domain part of the URL will be stripped " +"automatically. Use (.*).js wildcards to exclude all JS files located at a " +"specific path." msgstr "" +"Helyi: Az URL domain-része automatikusan le lesz vágva. " +"Használj helyettesítőkarakterket (.*).js ha minden JS fájlt ki szeretnél " +"zárni az adott elérési útvonalon." -#: inc/classes/admin/settings/class-page.php:389 -msgid "Get help, account info" +#: inc/Engine/Admin/Settings/Page.php:847 +#, php-format +msgid "" +"3rd Party: Use either the full URL path or only the domain " +"name, to exclude external JS. %1$sMore info%2$s" msgstr "" +" Idegen forrásból származó: Adj meg vagy teljes URL címet " +"vagy csak a domain nevet, hogy kizárd a külső forrásból származó JS. " +"%1$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:398 -msgid "My Status" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:863 +msgid "Load JavaScript deferred" +msgstr "JavaScript párhuzamos betöltése" -#: inc/classes/admin/settings/class-page.php:408 views/settings/page.php:71 -msgid "Rocket Tester" +#: inc/Engine/Admin/Settings/Page.php:865 +#, php-format +msgid "" +"Load JavaScript deferred eliminates render-blocking JS on your site and can " +"improve load time. %1$sMore info%2$s" msgstr "" +"Ha párhuzamosan töltődik be a JavaScript (deferred), akkor a böngészőnek nem" +" kell megvárnia az egyes JavaScript kód lefutását, hanem azzal egyidőben az " +"oldal többi részét már betölti, ezáltal javulhat a betöltési idő. %1$sBővebb" +" információ%2$s" -#: inc/classes/admin/settings/class-page.php:409 -msgid "I am part of the WP Rocket Beta Testing Program." +#: inc/Engine/Admin/Settings/Page.php:878 +#, php-format +msgid "" +"Specify URLs or keywords of JavaScript files to be excluded from defer (one " +"per line). %1$sMore info%2$s" msgstr "" +"Adj meg JavaScript fájlokhoz vezető URL-eket vagy kulcsszavakat amiket ki " +"szeretnél zárni a párhuzamos betöltésből. (Soronként egyet írj). %1$sBővebb " +"információ%2$s" -#: inc/classes/admin/settings/class-page.php:417 views/settings/page.php:89 -msgid "Rocket Analytics" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 +msgid "Delay JavaScript execution" +msgstr "Késleltesd a JavaScript futtatását" -#: inc/classes/admin/settings/class-page.php:419 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" -"I agree to share anonymous data with the development team to help improve WP" -" Rocket. %1$sWhat info will we collect?%2$s" +"Improves performance by delaying the loading of JavaScript files until user " +"interaction (e.g. scroll, click). %1$sMore info%2$s" msgstr "" +"Javítja a teljesítményt azáltal hogy késlelteti a JavaScript fájlok " +"betöltését egészen addig amíg nem történik valamilyen felhasználói " +"interakció (pl. kattintás, görgetés). %1$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:447 -msgid "Cache" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:448 -msgid "Basic cache options" +#: inc/Engine/Admin/Settings/Page.php:906 +msgid "" +"Specify URLs or keywords that can identify inline or JavaScript files to be " +"excluded from delaying execution (one per line)." msgstr "" +"Adj meg URL-eket vagy kulcsszavakat amikkel beazonosíthatóak a kódba " +"ágyazott JavaScript fájlok vagy kódrészletek, amiket ki szeretnél zárni a " +"késleltetett betöltésből. (soronként egy)" -#: inc/classes/admin/settings/class-page.php:455 -msgid "Mobile Cache" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:937 +msgid "Media" +msgstr "Média" -#: inc/classes/admin/settings/class-page.php:457 -msgid "Speed up your site for mobile visitors." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:938 +msgid "LazyLoad, image dimensions" +msgstr "LazyLoad, képméretek" -#: inc/classes/admin/settings/class-page.php:462 -msgid "" -"We detected you use a plugin that requires a separate cache for mobile, and " -"automatically enabled this option for compatibility." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:947 +msgid "Autoptimize" +msgstr "Autoptimize" -#: inc/classes/admin/settings/class-page.php:466 -msgid "User Cache" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:992 +msgid "LazyLoad" +msgstr "LazyLoad" -#: inc/classes/admin/settings/class-page.php:469 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" -"%1$sUser cache%2$s is great when you have user-specific or restricted " -"content on your website." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:477 -msgid "Cache Lifespan" +"It can improve actual and perceived loading time as images, iframes, and " +"videos will be loaded only as they enter (or about to enter) the viewport " +"and reduces the number of HTTP requests. %1$sMore Info%2$s" msgstr "" +"Javítani tudja a valódi és vélt betöltési időt mivel a képek, iframek és " +"videók csak akkor lesznek betöltve amikor belépnek (vagy be fognak lépni) a " +"látható területre és csökkenti a HTTP kérések számát. %1$sBővebb " +"információ%2$s" -#: inc/classes/admin/settings/class-page.php:480 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" -"Cache lifespan is the period of time after which all cache files are " -"removed.
Enable %1$spreloading%2$s for the cache to be rebuilt " -"automatically after lifespan expiration." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:494 -msgid "Enable caching for logged-in WordPress users" +"LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " +"LazyLoad, disable this option in %2$s." msgstr "" +"LazyLoad jelenleg aktiválva van a(z) %2$s-ben. Ha szeretnéd inkább a WP " +"Rocket LazyLoad-ját használni akkor tiltsd le ezt az opciót a %2$s-ben." -#: inc/classes/admin/settings/class-page.php:502 -msgid "Enable caching for mobile devices" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:517 -msgid "Separate cache files for mobile devices" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1005 +msgid "Image Dimensions" +msgstr "Képméretek" -#: inc/classes/admin/settings/class-page.php:519 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" -"%1$sMobile cache%2$s works safest with both options enabled. When in doubt, " -"keep both." +"Add missing width and height attributes to images. Helps prevent layout " +"shifts and improve the reading experience for your visitors. %1$sMore " +"info%2$s" msgstr "" +"Automatikusan adjuk hozzá a szélesség és magasság attribútomokat a képekhez," +" ahonnan ezek hiányoznak. Segít megelőzni az oldalszerkezet elmozdulását és " +"ezáltal javítja az olvasási élményt a látogatóid számára. %1$sBővebb " +"információ%2$s" -#: inc/classes/admin/settings/class-page.php:535 -msgid "" -"Specify time after which the global cache is cleared
(0 = unlimited )" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1027 +msgid "Enable for images" +msgstr "Engedélyezés képek számára" -#: inc/classes/admin/settings/class-page.php:537 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" -"Reduce lifespan to 10 hours or less if you notice issues that seem to appear" -" periodically. %1$sWhy?%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:543 -msgid "Minutes" +"LazyLoad for images is currently activated in %2$s. If you want to use " +"%1$s’s LazyLoad, disable this option in %2$s." msgstr "" +"A LazyLoad képekhez engedélyezve van itt: %2$s. Ha inkább a %1$s LazyLoad-" +"ját szeretnéd használni akkor tiltsd le ezt az opciót itt: %2$s." -#: inc/classes/admin/settings/class-page.php:544 -msgid "Hours" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1047 +msgid "Enable for iframes and videos" +msgstr "Engedélyezés iframe-k és videók számára" -#: inc/classes/admin/settings/class-page.php:545 -msgid "Days" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1062 +msgid "Replace YouTube iframe with preview image" +msgstr "Cseréld ki a YouTube iframe-eket egy előnézeti képpel" -#: inc/classes/admin/settings/class-page.php:571 -msgid "File Optimization" +#: inc/Engine/Admin/Settings/Page.php:1064 +#, php-format +msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" +"A YouTube iframe előnézeti képre való kicserélése nem kompatibilis ezzel: " +"%2$s." -#: inc/classes/admin/settings/class-page.php:572 -msgid "Optimize CSS & JS" +#: inc/Engine/Admin/Settings/Page.php:1064 +msgid "" +"This can significantly improve your loading time if you have a lot of " +"YouTube videos on a page." msgstr "" +"Ez jelentősen javíthatja a betöltési idődet, ha sok YouTube videód van egy " +"oldalon." -#: inc/classes/admin/settings/class-page.php:579 -msgid "Basic Settings" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1079 +msgid "Excluded images or iframes" +msgstr "Kizárt/kihagyott képek és iframek" -#: inc/classes/admin/settings/class-page.php:586 -#: inc/classes/admin/settings/class-page.php:596 -#: inc/classes/admin/settings/class-page.php:606 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" -"%1$s Minification is currently activated in Autoptimize. If" -" you want to use %2$s’s minification, disable those options in Autoptimize." +"Specify keywords (e.g. image filename, CSS class, domain) from the image or " +"iframe code to be excluded (one per line). %1$sMore info%2$s" msgstr "" +"Adj meg kulcsszavakat (pl. képek fájlneveit, CSS osztályokat, domain " +"neveket) a kép vagy iframe kódjából a kizáráshoz/kihagyáshoz (soronként " +"egyet írj). %1$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:589 -msgid "CSS Files" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1089 +msgid "Add missing image dimensions" +msgstr "Hiányzó képméretek beírása" -#: inc/classes/admin/settings/class-page.php:599 -msgid "JavaScript Files" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 +msgid "Preload" +msgstr "Előtöltés" -#: inc/classes/admin/settings/class-page.php:619 -msgid "Minifying HTML removes whitespace and comments to reduce the size." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1109 +msgid "Generate cache files, preload fonts" +msgstr "Gyorsítótár fájlok generálása valamint betűtípus fájlok előtöltése" -#: inc/classes/admin/settings/class-page.php:630 -msgid "Combine Google Fonts files" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1120 +msgid "Preload Cache" +msgstr "Gyorsítótár előtöltése" -#: inc/classes/admin/settings/class-page.php:631 -msgid "Combining Google Fonts will reduce the number of HTTP requests." +#: inc/Engine/Admin/Settings/Page.php:1123 +#, php-format +msgid "" +"When you enable preloading WP Rocket will generate the cache starting with " +"the links on your homepage followed by the sitemaps you specify. Preloading " +"is automatically triggered when you add or update content and can also be " +"manually triggered from the admin bar or from the %1$sWP Rocket " +"Dashboard%2$s." msgstr "" +"Ha engedélyezed az előtöltést akkor a WP Rocket automatikusan létre fogja " +"hozni a gyorsítótárat a kezdőlapodon található linkek alapján, ezután pedig " +"végigmegy azokon az oldaltérképeken, amiket megadtál. Az előtöltés " +"automatikusan elindul amikor új tartalmat hozol létre, vagy módosítassz az " +"oldalon, de kézzel is elindíthatod az admin menüből vagy a WP Rocket " +"menüjéből. %1$sWP Rocket Menü%2$s." -#: inc/classes/admin/settings/class-page.php:639 -msgid "Remove query strings from static resources" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1131 +msgid "Preload Links" +msgstr "Linkek előtöltése" -#: inc/classes/admin/settings/class-page.php:641 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" -"Removes the version query string from static files (e.g. style.css?ver=1.0) " -"and encodes it into the filename instead (e.g. style-1.0.css). Can improve " -"your GTMetrix score. %1$sMore info%2$s" +"Link preloading improves the perceived load time by downloading a page when " +"a user hovers over the link. %1$sMore info%2$s" msgstr "" +"A linkek előtöltése javítja a felhasználók számára látható betöltési időt " +"azáltal, hogy már akkor letölti az oldalt amikor a felhasználó ráviszi az " +"egerét a linkre. %1$sTovábbi információ%2$s" -#: inc/classes/admin/settings/class-page.php:649 -msgid "Minify CSS files" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1142 +msgid "Prefetch DNS Requests" +msgstr "DNS kérések előtöltése" -#: inc/classes/admin/settings/class-page.php:650 -msgid "Minify CSS removes whitespace and comments to reduce the file size." +#: inc/Engine/Admin/Settings/Page.php:1144 +msgid "" +"DNS prefetching can make external files load faster, especially on mobile " +"networks" msgstr "" +"A DNS előtöltéssel a külső forrásból származó fájlok gyorsabban töltődhetnek" +" be, különösen mobilhálózatokon" -#: inc/classes/admin/settings/class-page.php:663 -#: inc/classes/admin/settings/class-page.php:685 -#: inc/classes/admin/settings/class-page.php:755 -#: inc/classes/admin/settings/class-page.php:777 -msgid "This could break things!" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1149 +msgid "Preload Fonts" +msgstr "Betűtípusok előtöltése" -#: inc/classes/admin/settings/class-page.php:664 -#: inc/classes/admin/settings/class-page.php:686 -#: inc/classes/admin/settings/class-page.php:756 -#: inc/classes/admin/settings/class-page.php:778 +#: inc/Engine/Admin/Settings/Page.php:1152 +#, php-format msgid "" -"If you notice any errors on your website after having activated this " -"setting, just deactivate it again, and your site will be back to normal." +"Improves performance by helping browsers discover fonts in CSS files. " +"%1$sMore info%2$s" msgstr "" +"Javítja a teljesítményt azáltal, hogy segít a böngészőknek megtalálni a CSS " +"fájlokban szereplő betűtípusokat.%1$sTovábbi információ%2$s" -#: inc/classes/admin/settings/class-page.php:665 -msgid "Activate minify CSS" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1166 +msgid "Activate Preloading" +msgstr "Előtöltés aktiválása" -#: inc/classes/admin/settings/class-page.php:670 -msgid "Combine CSS files (Enable Minify CSS files to select)" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1185 +msgid "Activate sitemap-based cache preloading" +msgstr "Aktiváld az oldaltérkép-alapú gyorsítótár előtöltést" -#: inc/classes/admin/settings/class-page.php:672 -#, php-format -msgid "" -"Combine CSS merges all your files into 1, reducing HTTP requests. Not " -"recommended if your site uses HTTP/2. %1$sMore info%2$s" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1204 +msgid "Sitemaps for preloading" +msgstr "Oldaltérképek az előtöltés funkció számára" -#: inc/classes/admin/settings/class-page.php:687 -msgid "Activate combine CSS" +#: inc/Engine/Admin/Settings/Page.php:1208 +msgid "Specify XML sitemap(s) to be used for preloading" msgstr "" +"Add meg itt azokat az oldaltérkép(eke)t amikre szeretnéd hogy előtöltés " +"történjen" -#: inc/classes/admin/settings/class-page.php:693 -msgid "" -"Specify URLs of CSS files to be excluded from minification and concatenation" -" (one per line)." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1218 +msgid "URLs to prefetch" +msgstr "Előtöltendő URL-ek" -#: inc/classes/admin/settings/class-page.php:694 +#: inc/Engine/Admin/Settings/Page.php:1219 msgid "" -"The domain part of the URL will be stripped automatically.
Use (.*).css " -"wildcards to exclude all CSS files located at a specific path." +"Specify external hosts to be prefetched (no http:, one per " +"line)" msgstr "" +"Add meg itt azokat a külső szervereket amiket szeretnél előtölteni (ne " +"írjhttp:-t, soronként egyet írj)" -#: inc/classes/admin/settings/class-page.php:707 -msgid "Optimize CSS delivery" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1228 +msgid "Fonts to preload" +msgstr "Előtöltendő betűtípusok" -#: inc/classes/admin/settings/class-page.php:714 -#, php-format -msgctxt "WP Critical CSS compatibility" +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "" -"Optimize CSS Delivery is currently handled by the %1$s plugin. If you want " -"to use WP Rocket’s Optimize CSS Delivery option, disable the %1$s plugin." +"Specify urls of the font files to be preloaded (one per line). Fonts must be" +" hosted on your own domain, or the domain you have specified on the CDN tab." msgstr "" +"Add meg azon betútípus fájlok URL-jeit amiket elő szeretnél tölteni " +"(soronként egyet írj). A betűtípusoknak muszáj a saját domaineden lenniük, " +"vagy azon a domainen amit a CDN fülön adtál meg." -#: inc/classes/admin/settings/class-page.php:716 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1230 msgid "" -"Optimize CSS delivery eliminates render-blocking CSS on your website for " -"faster perceived load time. %1$sMore info%2$s" +"The domain part of the URL will be stripped automatically.
Allowed font " +"extensions: otf, ttf, svg, woff, woff2." msgstr "" +"Az URL-ből a domain rész automatikusan törölve lesz.
Támogatott font " +"kiterjesztések: otf, ttf, svg, woff, woff2." -#: inc/classes/admin/settings/class-page.php:727 -msgid "Fallback critical CSS" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1239 +msgid "Enable link preloading" +msgstr "Link előtöltés engedélyezése" -#: inc/classes/admin/settings/class-page.php:732 -#, php-format -msgid "" -"Provides a fallback if auto-generated critical path CSS is incomplete. " -"%1$sMore info%2$s" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1258 +msgid "Advanced Rules" +msgstr "Haladó beállítások" -#: inc/classes/admin/settings/class-page.php:741 -msgid "Minify JavaScript files" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1259 +msgid "Fine-tune cache rules" +msgstr "Gyorsítótár szabályok finomhangolása" -#: inc/classes/admin/settings/class-page.php:742 +#: inc/Engine/Admin/Settings/Page.php:1270 msgid "" -"Minify JavaScript removes whitespace and comments to reduce the file size." +"Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" +"Az érzékeny adatokkal dolgozó oldalakat, mint pl. az egyéni " +"bejelentkező/kijelentkező URL-eket célszerű kizárni a gyorsítótárazásból." -#: inc/classes/admin/settings/class-page.php:757 -msgid "Activate minify JavaScript" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1273 +msgctxt "plugin name" +msgid "WooCommerce" +msgstr "WooCommerce" -#: inc/classes/admin/settings/class-page.php:762 -msgid "" -"Combine JavaScript files (Enable Minify JavaScript files to select)" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1275 +msgctxt "plugin name" +msgid "Easy Digital Downloads" +msgstr "Easy Digital Downloads" -#: inc/classes/admin/settings/class-page.php:764 -#, php-format -msgid "" -"Combine JavaScript files combines your site’s internal, 3rd party and inline" -" JS reducing HTTP requests. Not recommended if your site uses HTTP/2. " -"%1$sMore info%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:779 -msgid "Activate combine JavaScript" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:786 -#, php-format -msgid "" -"Specify patterns of inline JavaScript to be excluded from concatenation (one" -" per line). %1$sMore info%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:803 -msgid "" -"Specify URLs of JavaScript files to be excluded from minification and " -"concatenation (one per line)." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:804 -msgid "" -"Internal: The domain part of the URL will be stripped " -"automatically. Use (.*).js wildcards to exclude all JS files located at a " -"specific path." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:806 -#, php-format -msgid "" -"3rd Party: Use either the full URL path or only the domain " -"name, to exclude external JS. %1$sMore info%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:822 -msgid "Load JavaScript deferred" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:824 -#, php-format -msgid "" -"Load JavaScript deferred eliminates render-blocking JS on your site and can " -"improve load time. %1$sMore info%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:835 -msgid "Safe Mode for jQuery (recommended)" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:836 -msgid "" -"Safe mode for jQuery for deferred JS ensures support for inline jQuery " -"references from themes and plugins by loading jQuery at the top of the " -"document as a render-blocking script.
Deactivating may result in " -"broken functionality, test thoroughly!" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:861 -msgid "Media" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:862 -msgid "LazyLoad, emojis, embeds" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:869 -msgid "LazyLoad" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:872 -#, php-format -msgid "" -"It can improve actual and perceived loading time as images, iframes, and " -"videos will be loaded only as they enter (or about to enter) the viewport " -"and reduces the number of HTTP requests. %1$sMore Info%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:879 -#, php-format -msgid "" -"Lazyload is currently activated in Autoptimize. If you want" -" to use %1$s’s lazyload, disable this option in Autoptimize." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:882 -msgid "Emoji 👻" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:884 -msgid "" -"Use default emoji of visitor's browser instead of loading emoji from " -"WordPress.org" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:888 -msgid "Embeds" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:890 -msgid "" -"Prevents others from embedding content from your site, prevents you from " -"embedding content from other (non-whitelisted) sites, and removes JavaScript" -" requests related to WordPress embeds" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:900 -msgid "Enable for images" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:911 -msgctxt "Avada" -msgid "" -"Lazyload for images is currently activated in Avada. If you want to use WP " -"Rocket’s LazyLoad, disable this option in Avada." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:919 -msgid "Enable for iframes and videos" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:934 -msgid "Replace YouTube iframe with preview image" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:935 -msgid "" -"This can significantly improve your loading time if you have a lot of " -"YouTube videos on a page." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:947 -msgid "Disable Emoji" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:948 -msgid "Disable Emoji will reduce the number of external HTTP requests." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:956 -msgid "Disable WordPress embeds" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:978 -#: inc/classes/admin/settings/class-page.php:988 -#: inc/deprecated/deprecated.php:1778 -msgid "Preload" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:979 -msgid "Generate cache files" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:991 -#, php-format -msgid "" -"When you enable preloading WP Rocket will generate the cache starting with " -"the links on your homepage followed by the sitemaps you specify. Preloading " -"is automatically triggered when you add or update content and can also be " -"manually triggered from the admin bar or from the %1$sWP Rocket " -"Dashboard%2$s." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:999 -msgid "Prefetch DNS Requests" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1001 -msgid "" -"DNS prefetching can make external files load faster, especially on mobile " -"networks" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1015 -msgid "Activate Preloading" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1034 -msgid "Activate sitemap-based cache preloading" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1053 -msgid "Sitemaps for preloading" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1057 -msgid "Specify XML sitemap(s) to be used for preloading" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1067 -msgid "URLs to prefetch" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1068 -msgid "" -"Specify external hosts to be prefetched (no http:, one per " -"line)" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1091 -msgid "Advanced Rules" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1092 -msgid "Fine-tune cache rules" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1101 -msgid "" -"Sensitive pages like custom login/logout URLs should be excluded from cache." -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1104 -msgctxt "plugin name" -msgid "WooCommerce" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1106 -msgctxt "plugin name" -msgid "Easy Digital Downloads" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1277 msgctxt "plugin name" msgid "iThemes Exchange" -msgstr "" +msgstr "iThemes Exchange" -#: inc/classes/admin/settings/class-page.php:1110 +#: inc/Engine/Admin/Settings/Page.php:1279 msgctxt "plugin name" msgid "Jigoshop" -msgstr "" +msgstr "Jigoshop" -#: inc/classes/admin/settings/class-page.php:1112 +#: inc/Engine/Admin/Settings/Page.php:1281 msgctxt "plugin name" msgid "WP-Shop" -msgstr "" +msgstr "WP-Shop" -#: inc/classes/admin/settings/class-page.php:1118 +#: inc/Engine/Admin/Settings/Page.php:1287 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in " "%1$s%2$s%3$s will be detected and never cached by default." msgstr "" +"
Kosár, fizetés és \"saját fiókom\" oldalak beállítva itt: " +"%1$s%2$s%3$s automatikusan érzékelve vannak és nem lesznek " +"soha gyorsítótárazva alapbeállításként." + +#: inc/Engine/Admin/Settings/Page.php:1297 inc/admin/options.php:127 +msgid "Never Cache URL(s)" +msgstr "Soha ne gyorsítótárazzuk az alábbi URL(eke)t" -#: inc/classes/admin/settings/class-page.php:1139 +#: inc/Engine/Admin/Settings/Page.php:1305 msgid "Never Cache Cookies" -msgstr "" +msgstr "Soha ne gyorsítótárazzuk ezeket a sütiket" + +#: inc/Engine/Admin/Settings/Page.php:1311 inc/admin/options.php:128 +msgid "Never Cache User Agent(s)" +msgstr "Soha ne gyorsítótárazzunk az alábbi user agent-eknél" -#: inc/classes/admin/settings/class-page.php:1158 +#: inc/Engine/Admin/Settings/Page.php:1317 inc/admin/options.php:129 +msgid "Always Purge URL(s)" +msgstr "Mindig ürítsd az alábbi URL(ek) gyorsítótárát" + +#: inc/Engine/Admin/Settings/Page.php:1323 msgid "Cache Query String(s)" -msgstr "" +msgstr "Gyorsítótár lekérő sztring(ek)" -#: inc/classes/admin/settings/class-page.php:1161 +#: inc/Engine/Admin/Settings/Page.php:1326 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " "GET parameters." msgstr "" +"%1$sGyorsítótár az alábbi lekérő sztringekhez%2$s lehetővé teszi számodra " +"hogy kényszerítsd a gyorsítótárazást bizonyos GET paraméterek esetén." -#: inc/classes/admin/settings/class-page.php:1175 +#: inc/Engine/Admin/Settings/Page.php:1337 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" +"Add meg bejegyzések vagy oldalak URL-jeit amiket soha nem szeretnél " +"gyorsítótárazni (soronként egyet)" -#: inc/classes/admin/settings/class-page.php:1176 -#: inc/classes/admin/settings/class-page.php:1204 +#: inc/Engine/Admin/Settings/Page.php:1338 +#: inc/Engine/Admin/Settings/Page.php:1366 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." msgstr "" +"Az URL domain-része automatikusan törölve lesz.
Használj (.*) wildcard-" +"okat hogy több URL-t is érvényesíthess egy elérési útvonal alatt." -#: inc/classes/admin/settings/class-page.php:1185 +#: inc/Engine/Admin/Settings/Page.php:1347 msgid "" -"Specify the IDs of cookies that, when set in the visitor's browser, should " -"prevent a page from getting cached (one per line)" +"Specify full or partial IDs of cookies that, when set in the visitor's " +"browser, should prevent a page from getting cached (one per line)" msgstr "" +"Adj meg teljesen vagy részleges ID-t azon cookiekból, amik ha be vannak " +"állíva a látogató böngészőjében akkor meg szretnéd akadályozni az adott " +"oldal gyorsítótárazását (soronként egyet írj)" -#: inc/classes/admin/settings/class-page.php:1193 +#: inc/Engine/Admin/Settings/Page.php:1355 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" +"Adj meg user agent string-eket itt, amiknél nem szeretnéd ha gyorítótárazás " +"lenne. (soronként egy)" -#: inc/classes/admin/settings/class-page.php:1194 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Use (.*) wildcards to detect parts of UA strings." -msgstr "" +msgstr "Használj (.*) wildcardokat hogy UA sztringek részleteit ismerd fel. " -#: inc/classes/admin/settings/class-page.php:1203 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" msgstr "" +"Adj meg URL-eket amiket mindig üríteni szeretnél a gyorsítótárazásból amikor" +" frissítessz bármilyen bejegyzést vagy oldalt. (soronként egyet)" -#: inc/classes/admin/settings/class-page.php:1212 +#: inc/Engine/Admin/Settings/Page.php:1374 msgid "Specify query strings for caching (one per line)" -msgstr "" +msgstr "Adj meg lekérdező sztringeket a gyorsítótárazáshoz (soronként egyet)" -#: inc/classes/admin/settings/class-page.php:1240 -#: inc/deprecated/deprecated.php:1777 +#: inc/Engine/Admin/Settings/Page.php:1399 inc/deprecated/deprecated.php:1775 msgid "Database" -msgstr "" +msgstr "Adatbázis" -#: inc/classes/admin/settings/class-page.php:1241 +#: inc/Engine/Admin/Settings/Page.php:1400 msgid "Optimize, reduce bloat" -msgstr "" +msgstr "Optimizálás, szemetek törlése" -#: inc/classes/admin/settings/class-page.php:1250 +#: inc/Engine/Admin/Settings/Page.php:1407 msgid "Post Cleanup" -msgstr "" +msgstr "Bejegyzés takarítás" -#: inc/classes/admin/settings/class-page.php:1252 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." msgstr "" +"A bejegyzés változatok és piszkozatok végleg törölve lesznek. Ne használd " +"ezt az opciót, ha meg szeretnéd tartani a bejegyzések előző verziót vagy a " +"piszkozatokat." -#: inc/classes/admin/settings/class-page.php:1260 +#: inc/Engine/Admin/Settings/Page.php:1414 msgid "Comments Cleanup" -msgstr "" +msgstr "Kommentek takarítása" -#: inc/classes/admin/settings/class-page.php:1262 +#: inc/Engine/Admin/Settings/Page.php:1416 msgid "Spam and trashed comments will be permanently deleted." -msgstr "" +msgstr "A spam és lomtárba helyezett kommentek végleg törölve lesznek" -#: inc/classes/admin/settings/class-page.php:1266 +#: inc/Engine/Admin/Settings/Page.php:1420 msgid "Transients Cleanup" -msgstr "" +msgstr "Tranziensek törlése" -#: inc/classes/admin/settings/class-page.php:1268 +#: inc/Engine/Admin/Settings/Page.php:1422 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." msgstr "" +"A tranziensek ideiglenes opciók, biztonságosan törölhetőek. Automatikusan " +"újra lesznek generálva ha a pluginjaidnak kellenek." -#: inc/classes/admin/settings/class-page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1426 msgid "Database Cleanup" -msgstr "" +msgstr "Adatbázis takarítás" -#: inc/classes/admin/settings/class-page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1428 msgid "Reduces overhead of database tables" -msgstr "" +msgstr "Törli a felesleges adatokat az adatbázis táblából" -#: inc/classes/admin/settings/class-page.php:1278 -msgid "Automatic cleanup" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1432 +msgid "Automatic Cleanup" +msgstr "Automatikus takarítás" -#: inc/classes/admin/settings/class-page.php:1291 +#: inc/Engine/Admin/Settings/Page.php:1445 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s változat van az adatbázisodban." +msgstr[1] "%s változat van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1301 +#: inc/Engine/Admin/Settings/Page.php:1455 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%spiszkozat van az adatbázisodban." +msgstr[1] "%s piszkozat van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1311 +#: inc/Engine/Admin/Settings/Page.php:1465 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s törölt bejegyzés van az adatbázisodban." +msgstr[1] "%s törölt bejegyzés van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1321 +#: inc/Engine/Admin/Settings/Page.php:1475 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%sspam komment van az adatbázisodban." +msgstr[1] "%s spam komment van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1331 +#: inc/Engine/Admin/Settings/Page.php:1485 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." -msgstr[0] "" -msgstr[1] "" - -#: inc/classes/admin/settings/class-page.php:1341 -#, php-format -msgid "%s expired transient in your database." -msgid_plural "%s expired transients in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%slomtárba helyezett komment van az adatbázisodban." +msgstr[1] "%slomtárba helyezett komment van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1349 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "All transients" -msgstr "" +msgstr "Minden tranziens" -#: inc/classes/admin/settings/class-page.php:1351 +#: inc/Engine/Admin/Settings/Page.php:1495 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%stranziens van az adatbázisodban." +msgstr[1] "%s tranziens van az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1359 +#: inc/Engine/Admin/Settings/Page.php:1503 msgid "Optimize Tables" -msgstr "" +msgstr "Táblák optimizálása" -#: inc/classes/admin/settings/class-page.php:1361 +#: inc/Engine/Admin/Settings/Page.php:1505 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%s táblát kell optimizálni az adatbázisodban." +msgstr[1] "%s táblát kell optimizálni az adatbázisodban." -#: inc/classes/admin/settings/class-page.php:1372 +#: inc/Engine/Admin/Settings/Page.php:1516 msgid "Schedule Automatic Cleanup" -msgstr "" +msgstr "Ütemezd az automatikus takarítást" -#: inc/classes/admin/settings/class-page.php:1384 +#: inc/Engine/Admin/Settings/Page.php:1528 msgid "Frequency" -msgstr "" +msgstr "Gyakoriság" -#: inc/classes/admin/settings/class-page.php:1392 +#: inc/Engine/Admin/Settings/Page.php:1536 msgid "Daily" -msgstr "" +msgstr "Naponta" -#: inc/classes/admin/settings/class-page.php:1393 +#: inc/Engine/Admin/Settings/Page.php:1537 msgid "Weekly" -msgstr "" +msgstr "Hetente" -#: inc/classes/admin/settings/class-page.php:1394 +#: inc/Engine/Admin/Settings/Page.php:1538 msgid "Monthly" -msgstr "" +msgstr "Havonta" + +#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1565 inc/admin/ui/meta-boxes.php:79 +#: inc/deprecated/deprecated.php:1773 +msgid "CDN" +msgstr "CDN" -#: inc/classes/admin/settings/class-page.php:1414 +#: inc/Engine/Admin/Settings/Page.php:1555 msgid "Integrate your CDN" -msgstr "" +msgstr "Integráld a CDN-edet" -#: inc/classes/admin/settings/class-page.php:1426 +#: inc/Engine/Admin/Settings/Page.php:1567 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." msgstr "" +"Minden statikus fájl (CSS, JS, képek) URL-je át lesz írva arra a " +"CNAME(ek)-re amit itt megadsz." -#: inc/classes/admin/settings/class-page.php:1428 +#: inc/Engine/Admin/Settings/Page.php:1569 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " "available %1$sAdd-ons%2$s." msgstr "" +"Nem szükséges olyan szolgáltatók esetén mint a Cloudflare és Sucuri. Kérlek " +"nézd meg az elérhető %1$skiegészítőinket%2$s." -#: inc/classes/admin/settings/class-page.php:1469 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1584 inc/admin/options.php:130 +msgid "Exclude files from CDN" +msgstr "Zárj ki fájlokat a CDN-ről" + +#: inc/Engine/Admin/Settings/Page.php:1610 msgid "" -"%1$s%2$s Add-on%3$s is currently enabled. Configuration of the CDN settings " -"is not required for %2$s to work on your site." +"%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " +"is not required for %2$l to work on your site." msgid_plural "" -"%1$s%2$s Add-ons%3$s are currently enabled. Configuration of the CDN " -"settings is not required for %2$s to work on your site." +"%1$s%2$l Add-ons%3$s are currently enabled. Configuration of the CDN " +"settings is not required for %2$l to work on your site." msgstr[0] "" +"%1$s%2$l Kiegészítő%3$s van jelenleg engedélyezve. A CDN beállítása nem " +"szükséges a %2$l -hez hogy működjön az oldaladon" msgstr[1] "" +"%1$s%2$l Kiegészítők%3$svannak jelenleg engedélyezve. A CDN beállítása nem " +"szükséges a %2$l -hez hogy működjön az oldaladon" -#: inc/classes/admin/settings/class-page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1635 msgid "Enable Content Delivery Network" -msgstr "" +msgstr "Engedélyezd a CDN-t" -#: inc/classes/admin/settings/class-page.php:1493 +#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" -msgstr "" +msgstr "CDN CNAME(ek)" -#: inc/classes/admin/settings/class-page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1645 +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" -msgstr "" +msgstr "Add meg a CNAME(eket) alább" -#: inc/classes/admin/settings/class-page.php:1501 +#: inc/Engine/Admin/Settings/Page.php:1652 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" +"Add meg azon fájl(ok) URL-jeit amit nem szeretnél a CDN-en keresztül " +"kiszolgálni (soronként egyet)." -#: inc/classes/admin/settings/class-page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1653 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " "path." msgstr "" +"Az URL domain-része automatikusan törölve lesz.
Használj (.*) wildcard-" +"okat hogy minden fájlt kizárj egy bizonyos fájltípusból a megadott elérési " +"útvonalon." -#: inc/classes/admin/settings/class-page.php:1525 -#: inc/classes/admin/settings/class-page.php:1533 +#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1684 msgid "Heartbeat" -msgstr "" +msgstr "Heartbeat" -#: inc/classes/admin/settings/class-page.php:1526 +#: inc/Engine/Admin/Settings/Page.php:1677 msgid "Control WordPress Heartbeat API" -msgstr "" +msgstr "Vezéreld a WordPress Heartbeat API-t" -#: inc/classes/admin/settings/class-page.php:1534 +#: inc/Engine/Admin/Settings/Page.php:1685 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." msgstr "" +"A Heartbeat API aktivitásának csökkentése vagy letiltása segíthet némiképp " +"spórolni a szervered erőforrásaival." -#: inc/classes/admin/settings/class-page.php:1543 +#: inc/Engine/Admin/Settings/Page.php:1691 msgid "Reduce or disable Heartbeat activity" -msgstr "" +msgstr "Csökkentsd vagy tiltsd le a Heartbeat működését" -#: inc/classes/admin/settings/class-page.php:1544 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." msgstr "" +"Az aktivitás csökkentése megváltoztatja a Heartbeat frekvenciáját " +"percenkénti egy ütemről, 2 percenként egyre." -#: inc/classes/admin/settings/class-page.php:1544 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" +"Ha teljesen letiltod a Heartbeat-et, akkor működésképtelenné válhat néhány " +"bővítmény és téma am iezt az API-t használja." -#: inc/classes/admin/settings/class-page.php:1558 +#: inc/Engine/Admin/Settings/Page.php:1706 msgid "Do not limit" -msgstr "" +msgstr "Ne legyen korlátozva" -#: inc/classes/admin/settings/class-page.php:1559 +#: inc/Engine/Admin/Settings/Page.php:1707 msgid "Reduce activity" -msgstr "" +msgstr "Aktivitás csökkentése" -#: inc/classes/admin/settings/class-page.php:1560 +#: inc/Engine/Admin/Settings/Page.php:1708 msgid "Disable" -msgstr "" +msgstr "Letiltás" -#: inc/classes/admin/settings/class-page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1716 msgid "Control Heartbeat" -msgstr "" +msgstr "Heartbeat szabályzása" -#: inc/classes/admin/settings/class-page.php:1577 +#: inc/Engine/Admin/Settings/Page.php:1725 msgid "Behavior in backend" -msgstr "" +msgstr "Viselkedés a backenden" -#: inc/classes/admin/settings/class-page.php:1584 +#: inc/Engine/Admin/Settings/Page.php:1732 msgid "Behavior in post editor" -msgstr "" +msgstr "Viselkedés a bejegyzés-szerkesztőben" -#: inc/classes/admin/settings/class-page.php:1590 +#: inc/Engine/Admin/Settings/Page.php:1738 msgid "Behavior in frontend" -msgstr "" +msgstr "Viselkedés a frontenden" -#: inc/classes/admin/settings/class-page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1755 +#: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" -msgstr "" +msgstr "Bővítmények" -#: inc/classes/admin/settings/class-page.php:1610 +#: inc/Engine/Admin/Settings/Page.php:1756 msgid "Add more features" -msgstr "" +msgstr "Több funkció hozzáadása" -#: inc/classes/admin/settings/class-page.php:1617 +#: inc/Engine/Admin/Settings/Page.php:1763 msgid "One-click Rocket Add-ons" -msgstr "" +msgstr "Egy kattintásos Rocket bővítmények" -#: inc/classes/admin/settings/class-page.php:1618 +#: inc/Engine/Admin/Settings/Page.php:1764 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." msgstr "" +"Az egykattintásos bővítmények olyan funkciók amik kibővítik az elérhető " +"lehetőségeidet úgy, hogy semmilyen konfigurációt nem igényelnek. Egyszerűen " +"állítsd \"be\" állásra a kapcsolót a bekapcsoláshoz ezen a képernyőn." -#: inc/classes/admin/settings/class-page.php:1628 +#: inc/Engine/Admin/Settings/Page.php:1774 msgid "Rocket Add-ons" -msgstr "" +msgstr "Rocket bővítmények" -#: inc/classes/admin/settings/class-page.php:1629 +#: inc/Engine/Admin/Settings/Page.php:1775 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" +"A Rocket bővítmények ajándék funkciók, amik plusz funkciókat nyújtanak a " +"Rocket szolgáltatásain felül." -#: inc/classes/admin/settings/class-page.php:1642 -msgid "Google Tracking" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1648 -msgid "Improve browser caching for Google Analytics" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1650 -#, php-format -msgid "" -"WP Rocket will host these Google scripts locally on your server to help " -"satisfy the PageSpeed recommendation for Leverage browser " -"caching.
%1$sLearn more%2$s" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1665 -msgid "Facebook Pixel" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1786 +#: inc/Engine/Admin/Settings/Page.php:1938 +msgid "Cloudflare" +msgstr "Cloudflare" -#: inc/classes/admin/settings/class-page.php:1671 -msgid "Improve browser caching for Facebook Pixel" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1792 +msgid "Integrate your Cloudflare account with this add-on." +msgstr "Integráld a Cloudflare fiókodat ezen bővítménnyel." -#: inc/classes/admin/settings/class-page.php:1673 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1793 msgid "" -"WP Rocket will host these Facebook Pixels locally on your server to help " -"satisfy the PageSpeed recommendation for Leverage browser " -"caching.
%1$sLearn more%2$s" +"Provide your account email, global API key, and domain to use options such " +"as clearing the Cloudflare cache and enabling optimal settings with WP " +"Rocket." msgstr "" +"Add meg a fiókodhoz tartozó email címet, a global API kulcsot és a domaint " +"olyan funkciók eléréséhez, mint pl. a Cloudflare gyosítótár ürítése és hogy " +"optimálisra beállíthassuk az együttműködését a WP Rockettel." -#: inc/classes/admin/settings/class-page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1827 msgid "Varnish" -msgstr "" +msgstr "Varnish" -#: inc/classes/admin/settings/class-page.php:1712 +#: inc/Engine/Admin/Settings/Page.php:1833 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" +"Ha a Varnish üzemel a szervereden akkor mindenképp engedélyezned kell ezt a " +"bővítményt." -#: inc/classes/admin/settings/class-page.php:1714 +#: inc/Engine/Admin/Settings/Page.php:1835 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" msgstr "" +"A Varnish gyorsítótár minden alkalommal törölve lesz, amikor a WP Rocket " +"üríti a saját gyorsítótárát, ezáltal biztosítva hogy mindig naprakész legyen" +" a tartalom.
%1$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:1729 -#: inc/classes/admin/settings/class-page.php:1789 -msgid "Cloudflare" -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1870 +msgid "WebP Compatibility" +msgstr "WebP kompatibilitás" -#: inc/classes/admin/settings/class-page.php:1735 -msgid "Integrate your Cloudflare account with this add-on." -msgstr "" +#: inc/Engine/Admin/Settings/Page.php:1876 +msgid "Improve browser compatibility for WebP images." +msgstr "Javítja a böngészők kompatibitását a WebP bővítményekhez" -#: inc/classes/admin/settings/class-page.php:1736 +#: inc/Engine/Admin/Settings/Page.php:1880 +#, php-format msgid "" -"Provide your account email, global API key, and domain to use options such " -"as clearing the Cloudflare cache and enabling optimal settings with WP " -"Rocket." +"Enable this option if you would like WP Rocket to serve WebP images to " +"compatible browsers. Please note that WP Rocket cannot create WebP images " +"for you. To create WebP images we recommend %1$sImagify%2$s. %3$sMore " +"info%2$s" msgstr "" +"Engedélyezd ezt az opciót ha szeretnéd hogy a WP Rocket szolgálja fel a WebP" +" képeket az ezzel kompatibilis böngészőknek. Ne felejtsd hogy a WP Rocket " +"nem tud létrehozni WebP képeket Neked. WebP képek létrehozásához az " +"%1$sImagify%2$s-t ajánljuk. %3$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:1748 +#: inc/Engine/Admin/Settings/Page.php:1900 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "" +"Ürítsd a Sucuri gyorsítótárt amikor a WP Rocket gyorsítótára ürítve van." -#: inc/classes/admin/settings/class-page.php:1751 +#: inc/Engine/Admin/Settings/Page.php:1903 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." msgstr "" +"Add meg az API kulcsodat hogy üríteni tudjuk a Sucuri gyorsítótáradat is, " +"amikor a WP Rocket gyorsítótára ürítve lesz." -#: inc/classes/admin/settings/class-page.php:1759 -#: inc/classes/admin/settings/class-page.php:1907 +#: inc/Engine/Admin/Settings/Page.php:1911 +#: inc/Engine/Admin/Settings/Page.php:2055 msgid "Sucuri" -msgstr "" +msgstr "Sucuri" -#: inc/classes/admin/settings/class-page.php:1765 +#: inc/Engine/Admin/Settings/Page.php:1917 msgid "Synchronize Sucuri cache with this add-on." -msgstr "" +msgstr "Szinkronizáld a Sucuri gyorsítótáradat ezzel a bővítménnyel." -#: inc/classes/admin/settings/class-page.php:1805 +#: inc/Engine/Admin/Settings/Page.php:1955 msgid "Cloudflare credentials" -msgstr "" +msgstr "Cloudflare belépési adatok" -#: inc/classes/admin/settings/class-page.php:1814 +#: inc/Engine/Admin/Settings/Page.php:1964 msgid "Cloudflare settings" -msgstr "" +msgstr "Cloudflare beállítások" -#: inc/classes/admin/settings/class-page.php:1828 +#: inc/Engine/Admin/Settings/Page.php:1978 msgctxt "Cloudflare" msgid "Global API key:" -msgstr "" - -#: inc/classes/admin/settings/class-page.php:1829 -msgid "" -"https://support.cloudflare.com/hc/en-us/articles/200167836-Where-do-I-find-" -"my-Cloudflare-API-key-" -msgstr "" +msgstr "Globális API kulcs" -#: inc/classes/admin/settings/class-page.php:1829 +#: inc/Engine/Admin/Settings/Page.php:1979 msgctxt "Cloudflare" msgid "Find your API key" -msgstr "" +msgstr "Találd meg az API kulcsodat" -#: inc/classes/admin/settings/class-page.php:1841 +#: inc/Engine/Admin/Settings/Page.php:1991 msgctxt "Cloudflare" msgid "Account email" -msgstr "" +msgstr "A fiókhoz tartozó email" -#: inc/classes/admin/settings/class-page.php:1850 +#: inc/Engine/Admin/Settings/Page.php:2000 msgctxt "Cloudflare" msgid "Zone ID" -msgstr "" +msgstr "Zóna azonosító" -#: inc/classes/admin/settings/class-page.php:1860 +#: inc/Engine/Admin/Settings/Page.php:2010 msgid "Development mode" -msgstr "" +msgstr "Fejlesztői üzemmód" -#: inc/classes/admin/settings/class-page.php:1862 +#: inc/Engine/Admin/Settings/Page.php:2012 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" msgstr "" +"Aktiválhatod ideiglenesen a fejlesztői módot a weboldaladon. Ez 3 óra múlva " +"magától kikapcsol. %1$sBővebb információ%2$s" -#: inc/classes/admin/settings/class-page.php:1870 +#: inc/Engine/Admin/Settings/Page.php:2020 msgid "Optimal settings" -msgstr "" +msgstr "Optimális beállítások" -#: inc/classes/admin/settings/class-page.php:1871 +#: inc/Engine/Admin/Settings/Page.php:2021 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." msgstr "" +"Automatikusan javítja a Cloudflare beállításaidat a legjobb sebesség, " +"teljesítmény, osztályzat és kompatibilitás érdekében." -#: inc/classes/admin/settings/class-page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:2029 msgid "Relative protocol" -msgstr "" +msgstr "Relatív protokoll" -#: inc/classes/admin/settings/class-page.php:1880 +#: inc/Engine/Admin/Settings/Page.php:2030 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " "https://." msgstr "" +"Ezt csak a Cloudflare flexible SSL funkciójával szabad használni. A statikus" +" fájlok URLjei (pl. CSS, JS, és képek) át lesznek írva úgy, hogy // t " +"használjanak a http:// vagy https:// helyett." -#: inc/classes/admin/settings/class-page.php:1920 +#: inc/Engine/Admin/Settings/Page.php:2068 msgid "Sucuri credentials" -msgstr "" +msgstr "Sucuri belépési adatok" -#: inc/classes/admin/settings/class-page.php:1933 +#: inc/Engine/Admin/Settings/Page.php:2081 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " "characters}:" msgstr "" +"Tűzfal API kulcs (a bővítményhez) az alábbi formátumban kell hogy legyen: " +"{32 karakter}/(32 karakter)" -#: inc/classes/admin/settings/class-page.php:1934 +#: inc/Engine/Admin/Settings/Page.php:2082 msgctxt "Sucuri" msgid "Find your API key" -msgstr "" +msgstr "Találd meg az API kulcsodat" -#: inc/classes/admin/settings/class-render.php:486 -#: inc/deprecated/deprecated.php:1296 +#: inc/Engine/Admin/Settings/Render.php:409 inc/deprecated/deprecated.php:1294 msgid "Upload file and import settings" -msgstr "" +msgstr "Fájl feltöltés és importálás beállítások" -#: inc/classes/admin/settings/class-settings.php:385 +#: inc/Engine/Admin/Settings/Settings.php:391 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format " "{32 characters}/{32 characters}." msgstr "" +"Sucuri bővítmény: a Sucuri tűzfalhoz tartozó API kulcsnak az alábbi " +"formátumban kell lennie: {32 karakter}/{32 karakter}" -#: inc/classes/admin/settings/class-settings.php:462 -#: inc/deprecated/deprecated.php:1247 +#: inc/Engine/Admin/Settings/Settings.php:482 +#: inc/deprecated/deprecated.php:1245 msgid "Settings saved." +msgstr "Beállítások elmentve." + +#: inc/Engine/Admin/Settings/Settings.php:698 +msgid "" +"Sorry! Adding /(.*) in Advanced Rules > Never Cache URL(s) was not saved " +"because it disables caching and optimizations for every page on your site." +msgstr "" +"Elnézést, a /(.*) beállítást nem tudtuk elmenteni a haladó szabályok > Soha " +"Ne Gyorsítótárazd Ezeket az URL-eket menüben mert ez letiltaná a " +"gyorsítótárazást és az optimalizálást az egész weboldaladon." + +#: inc/Engine/Admin/Settings/Subscriber.php:150 +#: inc/deprecated/deprecated.php:1786 +#: views/settings/page-sections/tools.php:33 +msgid "Tools" +msgstr "Eszközök" + +#: inc/Engine/Admin/Settings/Subscriber.php:151 +msgid "Import, Export, Rollback" +msgstr "Import, Export, Visszaállítás" + +#: inc/Engine/Admin/Settings/Subscriber.php:176 +#: views/settings/page-sections/imagify.php:14 +msgid "Image Optimization" +msgstr "Kép optimalizálás" + +#: inc/Engine/Admin/Settings/Subscriber.php:177 +msgid "Compress your images" +msgstr "Képek tömörítése" + +#: inc/Engine/Admin/Settings/Subscriber.php:194 +#: views/settings/page-sections/tutorials.php:48 +msgid "Tutorials" +msgstr "Útmutatók" + +#: inc/Engine/Admin/Settings/Subscriber.php:195 +msgid "Getting started and how to videos" +msgstr "Tananyagok, segítő videók" + +#: inc/Engine/CDN/RocketCDN/APIClient.php:134 +msgid "" +"We could not fetch the current price because RocketCDN API returned an " +"unexpected error code." +msgstr "" +"Nem tudtuk lekérdezni az aktuális árat mert a RocketCDN API váratlan " +"hibakódot adott vissza." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:140 +msgid "RocketCDN is not available at the moment. Please retry later." +msgstr "A RocketCDN nem elérhető jelenleg. Kérlek próbáld újra később." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:177 +msgid "RocketCDN cache purge failed: Missing identifier parameter." +msgstr "RocketCDN gyorsítótár ürítés sikertelen: hiányzó azonosító paraméter." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:186 +msgid "RocketCDN cache purge failed: Missing user token." +msgstr "RocketCDN gyorsítótár ürítés sikertelen: hiányzó felhasználói token." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:212 +msgid "" +"RocketCDN cache purge failed: The API returned an unexpected response code." +msgstr "" +"RocketCDN gyorsítótár ürítés sikertelen: az API váratlan hibakódot adott " +"vissza." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:221 +msgid "RocketCDN cache purge failed: The API returned an empty response." +msgstr "RocketCDN gyorsítótár ürítés sikertelen: az API üres választ küldött." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:230 +msgid "RocketCDN cache purge failed: The API returned an unexpected response." msgstr "" +"RocketCDN gyorsítótár ürítés sikertelen: az API váratlan választ küldött." -#: inc/classes/class-wp-rocket-requirements-check.php:148 +#: inc/Engine/CDN/RocketCDN/APIClient.php:239 #, php-format -msgid "To function properly, %1$s %2$s requires at least:" +msgid "RocketCDN cache purge failed: %s." +msgstr "RocketCDN gyorsítótár ürítés sikertelen: %s." + +#: inc/Engine/CDN/RocketCDN/APIClient.php:247 +msgid "RocketCDN cache purge successful." +msgstr "RocketCDN gyorsítótár ürítés sikeres volt." + +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:81 +msgid "Next Billing Date" +msgstr "Következő számla dátuma:" + +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:90 +msgid "No Subscription" +msgstr "Nincs előfizetésed" + +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:126 +msgid "Your RocketCDN subscription is currently active." +msgstr "A RocketCDN előfizetésed aktív" + +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:132 +#, php-format +msgid "To use RocketCDN, replace your CNAME with %1$s%2$s%3$s." msgstr "" +"A RocketCDN használatához kérlek cseréld le a CNAME-det erre: %1$s%2$s%3$s." + +#: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:143 +#: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:208 +#: inc/Engine/CDN/RocketCDN/NoticesSubscriber.php:306 +#, php-format +msgid "%1$sMore Info%2$s" +msgstr "%1$sBővebb információ%2$s" + +#: inc/Engine/CDN/RocketCDN/RESTSubscriber.php:137 +msgid "RocketCDN enabled" +msgstr "RocketCDN engedélyezve" -#: inc/classes/class-wp-rocket-requirements-check.php:152 +#: inc/Engine/CDN/RocketCDN/RESTSubscriber.php:160 +msgid "RocketCDN disabled" +msgstr "RocketCDN letiltva" + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:27 +#, php-format +msgid "Valid until %s only!" +msgstr "Csak %s -ig érvényes!" + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:36 +msgid "Speed up your website thanks to:" +msgstr "Gyorsítsd fel a weboldaladat köszönhetően: " + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:42 #, php-format msgid "" -"PHP %1$s. To use this WP Rocket version, please ask your web host how to " -"upgrade your server to PHP %1$s or higher." +"High performance Content Delivery Network (CDN) with %1$sunlimited " +"bandwith%2$s" msgstr "" +"Nagy teljesítményű Content Delivery Network (CDN) %1$skorlátlan " +"sávszélességgel%2$s" -#: inc/classes/class-wp-rocket-requirements-check.php:157 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:48 #, php-format msgid "" -"WordPress %1$s. To use this WP Rocket version, please upgrade WordPress to " -"version %1$s or higher." +"Easy configuration: the %1$sbest CDN settings%2$s are automatically applied" msgstr "" +"Könnyű konfigurálás: a %1$slegjobb CDN beállítások%2$sautomatikusan " +"alkalmazva lesznek" -#: inc/classes/class-wp-rocket-requirements-check.php:160 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:54 +#, php-format msgid "" -"If you are not able to upgrade, you can rollback to the previous version by " -"using the button below." +"WP Rocket integration: the CDN option is %1$sautomatically configured%2$s in" +" our plugin" msgstr "" +"WP Rocket integráció: a CDN opció %1$sautomatikusan be lesz állítva%2$s a " +"bővítményünkben" + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:58 +msgid "Learn more about RocketCDN" +msgstr "Tudj meg többet a RocketCDN-ről" -#: inc/classes/class-wp-rocket-requirements-check.php:162 -#: inc/deprecated/deprecated.php:1949 +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:65 #, php-format -msgid "Re-install version %s" +msgid "" +"*$%1$s/month for 12 months then $%2$s/month. You can cancel your " +"subscription at any time." msgstr "" +"*$%1$s/hónap 12 hónapon keresztül, ezután $%2$s/hónap. Bármikor lemondhatod " +"az előfizetést." -#: inc/classes/logger/class-logger.php:253 -#: inc/classes/logger/class-logger.php:285 -msgid "The log file does not exist." +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:86 +msgid "Billed monthly" +msgstr "Havonta számlázva" + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:87 +msgid "Get Started" +msgstr "Kezdjük el" + +#: inc/Engine/CDN/RocketCDN/views/cta-big.php:92 +msgid "Reduce this banner" +msgstr "Zárd be ezt a feliratot" + +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:17 +msgid "" +"Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network." msgstr "" +"Gyorsítsd fel a weboldaladat a RocketCDN-nel, a WP Rocket Content Delivery " +"Network-jével." -#: inc/classes/logger/class-logger.php:259 -#: inc/classes/logger/class-logger.php:291 -msgid "The log file could not be read." +#: inc/Engine/CDN/RocketCDN/views/cta-small.php:20 +#: inc/Engine/CDN/RocketCDN/views/promote-notice.php:13 +msgid "Learn More" +msgstr "Tudj meg többet" + +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:23 +msgid "RocketCDN is unavailable on local domains and staging sites." +msgstr "RocketCDN nem elérhető helyi domaineken és tesztoldalakon." + +#: inc/Engine/CDN/RocketCDN/views/dashboard-status.php:32 +msgid "Get RocketCDN" +msgstr "Fizess elő a RocketCDN-re" + +#: inc/Engine/CDN/RocketCDN/views/promote-notice.php:11 +msgid "New!" +msgstr "Újdonság!" + +#: inc/Engine/CDN/RocketCDN/views/promote-notice.php:12 +msgid "" +"Speed up your website with RocketCDN, WP Rocket’s Content Delivery Network!" msgstr "" +"Gyorsítsd fel a weboldaladat a RocketCDN-nel, a WP Rocket Content Delivery " +"Network-jével!" -#: inc/classes/logger/class-logger.php:278 -msgid "The logs are not saved into a file." +#: inc/Engine/Cache/AdminSubscriber.php:118 inc/admin/admin.php:75 +#: inc/admin/admin.php:97 inc/deprecated/3.5.php:908 +msgid "Clear this cache" +msgstr "Ürítsd ezt a gyorsítótárat" + +#: inc/Engine/Cache/PurgeExpired/Subscriber.php:75 +msgid "WP Rocket Expired Cache Interval" +msgstr "WP Rocket gyorsítótár lejárat időköze" + +#: inc/Engine/Cache/WPCache.php:337 +msgid "WP_CACHE value" +msgstr "WP_CACHE értéke" + +#: inc/Engine/Cache/WPCache.php:358 +msgid "" +"The WP_CACHE constant needs to be set to true for WP Rocket cache to work " +"properly" msgstr "" +"A WP_CACHE konstanst true -ra kell állítani ahhoz hogy a WP ROCKET " +"megfelelően működjön" -#: inc/classes/optimization/CSS/class-critical-css-generation.php:88 -#: inc/classes/optimization/CSS/class-critical-css-generation.php:99 -#: inc/classes/optimization/CSS/class-critical-css-generation.php:110 -#: inc/classes/optimization/CSS/class-critical-css-generation.php:120 -#: inc/classes/optimization/CSS/class-critical-css-generation.php:142 +#: inc/Engine/Cache/WPCache.php:367 +msgid "WP_CACHE is set to true" +msgstr "WP_CACHE igazra van állítva" + +#: inc/Engine/Cache/WPCache.php:375 +msgid "WP_CACHE is not set" +msgstr "WP_CACHE nincs beállítva" + +#: inc/Engine/Cache/WPCache.php:383 +msgid "WP_CACHE is set to false" +msgstr "WP_CACHE false -ra van állítva" + +#: inc/Engine/Common/Queue/RUCSSQueueRunner.php:252 +msgid "Every minute" +msgstr "Minden percben" + +#: inc/Engine/CriticalPath/APIClient.php:64 #, php-format msgid "Critical CSS for %1$s not generated. Error: %2$s" +msgstr "Critical CSS a %1$s számára nincs létrehozva. Hibakód: %2$s" + +#: inc/Engine/CriticalPath/APIClient.php:170 +#, php-format +msgid "" +"Critical CSS for %1$s on mobile not generated. Error: The API returned an " +"empty response." msgstr "" +"Critical CSS a %1$s számára mobilhoz nincs létrehozva. HIbakód: az API üres " +"választ adott." -#: inc/classes/optimization/CSS/class-critical-css-generation.php:99 -msgid "The API returned an invalid response code." +#: inc/Engine/CriticalPath/APIClient.php:173 +#, php-format +msgid "" +"Critical CSS for %1$s not generated. Error: The API returned an empty " +"response." msgstr "" +"Critical CSS a %1$s számára nincs létrehozva. Hibakód: az API üres választ " +"adott." + +#: inc/Engine/CriticalPath/APIClient.php:185 +#, php-format +msgid "Critical CSS for %1$s on mobile not generated." +msgstr "Critical CSS a %1$s számára mobilon nincs létrehozva." + +#: inc/Engine/CriticalPath/APIClient.php:187 +#: inc/Engine/CriticalPath/ProcessorService.php:194 +#, php-format +msgid "Critical CSS for %1$s not generated." +msgstr "Critical CSS a %1$s számára nincs létrehozva." -#: inc/classes/optimization/CSS/class-critical-css-generation.php:110 -msgid "The API returned an empty response." +#: inc/Engine/CriticalPath/APIClient.php:195 +#, php-format +msgid "" +"Critical CSS for %1$s on mobile not generated. Error: The API returned an " +"invalid response code." msgstr "" +"Critical CSS a %1$s számára mobilon nincs létrehozva. Hibakód: az API " +"érvénytelen választ adott." -#: inc/classes/optimization/CSS/class-critical-css-generation.php:145 +#: inc/Engine/CriticalPath/APIClient.php:197 #, php-format -msgid "The critical CSS content could not be saved as a file in %s." +msgid "" +"Critical CSS for %1$s not generated. Error: The API returned an invalid " +"response code." msgstr "" +"Critical CSS a %1$s számára nincs létrehozva. Hibakód: az API érvénytelen " +"választ adott." -#: inc/classes/optimization/CSS/class-critical-css-generation.php:154 +#: inc/Engine/CriticalPath/APIClient.php:205 +#: inc/Engine/CriticalPath/ProcessorService.php:201 #, php-format -msgid "Critical CSS for %s generated." +msgid "Error: %1$s" +msgstr "Hiba: %1$s" + +#: inc/Engine/CriticalPath/Admin/Admin.php:264 +msgid "Regenerate Critical Path CSS" +msgstr "Kritikus útvonalak CSS újragenerálása" + +#: inc/Engine/CriticalPath/Admin/Post.php:144 +#: views/cpcss/metabox/generate.php:47 +msgid "Generate Specific CPCSS" +msgstr "Generálj bizonyos CPCSS-eket" + +#: inc/Engine/CriticalPath/Admin/Post.php:145 +#: views/cpcss/metabox/generate.php:45 +msgid "Regenerate specific CPCSS" +msgstr "Generáld újra bizonyos CPCSS-eket" + +#: inc/Engine/CriticalPath/Admin/Post.php:216 +msgid "This feature is not available for non-public post types." +msgstr "Ez a funkció nem elérhető a nem publikus bejegyzés típusoknál." + +#: inc/Engine/CriticalPath/Admin/Post.php:219 +msgid "%l to use this feature." +msgstr "%l a funkció használatához." + +#: inc/Engine/CriticalPath/Admin/Post.php:222 +#, php-format +msgid "Publish the %s" +msgstr "Publikáld a %s-t" + +#: inc/Engine/CriticalPath/Admin/Post.php:223 +msgid "Enable Load CSS asynchronously in WP Rocket settings" +msgstr "Engedélyezd a CSS aszinkron betöltését a WP Rocket beállításaiban" + +#: inc/Engine/CriticalPath/Admin/Post.php:224 +msgid "Enable Load CSS asynchronously in the options above" +msgstr "Engedélyezd a CSS aszinkron betöltését a fenti opciókban" + +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:154 +msgid "Critical CSS generation is currently running." +msgstr "A kritikus CSS generálása épp zajlik." + +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:159 +#: inc/Engine/Preload/PreloadSubscriber.php:234 +#, php-format +msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "" +"Menj a %1$sWP Rocket beállításai%2$s oldalra hogy kövesd a folyamatot." -#: inc/classes/preload/class-homepage.php:83 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" -"Preload encountered an error. Could not gather links on %1$s because of the " -"following error: %2$s. %3$sLearn more%4$s." +"Critical CSS generation is currently running: %1$d of %2$d page types " +"completed. (Refresh this page to view progress)" msgstr "" +"Kritikus CSS generálása jelenleg zajlik: %1$d/%2$d oldaltípusok kész. " +"(Frissítsd ezt az oldalt hogy kövesd a folyamatot)" + +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 +#, php-format +msgid "Critical CSS generation finished for %1$d of %2$d page types." +msgstr "A kritikus CSS generálása kész az %1$d/%2$d oldaltípusokhoz." + +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 +msgid "Critical CSS generation encountered one or more errors." +msgstr "A kritikus CSS generálása egy vagy több hibát talált." + +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 +msgid "Learn more." +msgstr "Tudj meg többet." -#: inc/classes/preload/class-homepage.php:96 +#: inc/Engine/CriticalPath/DataManager.php:68 #, php-format msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: %2$s. Security measures could be preventing access. " -"%3$sLearn more%4$s." +"Critical CSS for %1$s on mobile not generated. Error: The destination folder" +" could not be created." msgstr "" +"Kritikus CSS a %1$s számára mobilon nem lett létrehozva. Hibakód: a célmappa" +" nem volt létrehozható." -#: inc/classes/preload/class-homepage.php:102 +#: inc/Engine/CriticalPath/DataManager.php:71 #, php-format msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 404. Please make sure your homepage is accessible in your " -"browser. %2$sLearn more%3$s." +"Critical CSS for %1$s not generated. Error: The destination folder could not" +" be created." +msgstr "" +"Kritikus CSS a %1$s számára nem lett létrehozva. Hibakód: a célmappa nem " +"volt létrehozható." + +#: inc/Engine/CriticalPath/DataManager.php:106 +msgid "Critical CSS file for mobile does not exist" +msgstr "Kritikus CSS fájl mobil számára nem létezik." + +#: inc/Engine/CriticalPath/DataManager.php:108 +msgid "Critical CSS file does not exist" +msgstr "A kritikus CSS fájl nem létezik" + +#: inc/Engine/CriticalPath/DataManager.php:120 +msgid "Critical CSS file for mobile cannot be deleted" +msgstr "Kritikus CSS fájl mobilon nem törölhető" + +#: inc/Engine/CriticalPath/DataManager.php:122 +msgid "Critical CSS file cannot be deleted" +msgstr "Kritikus CSS fájl nem törölhető" + +#: inc/Engine/CriticalPath/ProcessorService.php:187 +#, php-format +msgid "Mobile Critical CSS for %1$s not generated." +msgstr "Mobile Critical CSS a %1$s számára nem lett létrehozva. " + +#: inc/Engine/CriticalPath/ProcessorService.php:228 +#, php-format +msgid "Critical CSS for %s in progress." +msgstr "Critical CSS generálása %s számára folyamatban. " + +#: inc/Engine/CriticalPath/ProcessorService.php:262 +#, php-format +msgid "Mobile Critical CSS for %s generated." +msgstr "Mobil kritikus CSS %s számára létrehozva. " + +#: inc/Engine/CriticalPath/ProcessorService.php:273 +#, php-format +msgid "Critical CSS for %s generated." +msgstr "Kritikus CSS %s számára létrehozva." + +#: inc/Engine/CriticalPath/ProcessorService.php:295 +msgid "Critical CSS file deleted successfully." +msgstr "Kritikus CSS fájl sikeresen törölve." + +#: inc/Engine/CriticalPath/ProcessorService.php:317 +#, php-format +msgid "Mobile Critical CSS for %1$s timeout. Please retry a little later." msgstr "" +"Mobil kritikus CSS a %1$s számára: időtúllépés történt. Kérlek kicsit később" +" próbáld újra." -#: inc/classes/preload/class-homepage.php:108 +#: inc/Engine/CriticalPath/ProcessorService.php:330 #, php-format +msgid "Critical CSS for %1$s timeout. Please retry a little later." +msgstr "" +"Kritikus CSS a %1$s számára: időtúllépés történt. Kérlek kicsit később " +"próbáld újra." + +#: inc/Engine/CriticalPath/RESTWP.php:141 +msgid "Mobile CPCSS generation not enabled." +msgstr "Mobil CPCSS generálás nincs engedélyezve." + +#: inc/Engine/CriticalPath/RESTWPPost.php:36 +#: inc/Engine/CriticalPath/RESTWPPost.php:69 +msgid "Requested post does not exist." +msgstr "A kért bejegyzés nem létezik." + +#: inc/Engine/CriticalPath/RESTWPPost.php:46 +msgid "Cannot generate CPCSS for unpublished post." +msgstr "Nem lehet CPCSS -t generálni a nem publikált bejegyzésekhez." + +#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:868 msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 500. Please check with your web host about server access. " -"%2$sLearn more%3$s." +"The following scheduled event failed to run. This may indicate the CRON " +"system is not running properly, which can prevent some WP Rocket features " +"from working as intended:" +msgid_plural "" +"The following scheduled events failed to run. This may indicate the CRON " +"system is not running properly, which can prevent some WP Rocket features " +"from working as intended:" +msgstr[0] "" +"Az alábbi ütemezett esemény nem tudott elindulni. Ez CRON rendszerhibára " +"utal, ami megakadályozza a WP Rocket bizonyos funkcióinak megfelelő " +"működését:" +msgstr[1] "" +"Az alábbi ütemezett események nem tudtak elindulni. Ez CRON rendszerhibára " +"utal, ami megakadályozza a WP Rocket bizonyos funkcióinak megfelelő " +"működését:" + +#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:877 +msgid "Please contact your host to check if CRON is working." msgstr "" +"Kérlek vedd fel a kapcsolatot a tárhelyszolgáltatóddal, hogy kiderítsék, " +"megfelelően működik-e a CRON." + +#: inc/Engine/HealthCheck/HealthCheck.php:142 +msgid "Scheduled Cache Purge" +msgstr "Ütemezett gyorsítótár ürítés" + +#: inc/Engine/HealthCheck/HealthCheck.php:143 +msgid "Scheduled Database Optimization" +msgstr "Ütemezett adatbázis optimizálás" + +#: inc/Engine/HealthCheck/HealthCheck.php:144 +msgid "Database Optimization Process" +msgstr "Adatbázis optimizálás állapota" + +#: inc/Engine/HealthCheck/HealthCheck.php:145 +msgctxt "noun" +msgid "Preload" +msgstr "Előtöltés" -#: inc/classes/preload/class-homepage.php:114 +#: inc/Engine/HealthCheck/HealthCheck.php:146 +msgid "Critical Path CSS Generation Process" +msgstr "Kritikus útvonalú CSS generálásának állapota" + +#: inc/Engine/License/Renewal.php:401 #, php-format msgid "" -"Preload encountered an error. Could not gather links on %1$s because it " -"returned the following response code: %2$s. %3$sLearn more%4$s." +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" +"Érvényes licenszre van szükséged hogy tovább használhasd ezt a funckiót. " +"%1$sÚjítsd meg most%2$s hogy ne veszítsd el a hozzáférést!" + +#: inc/Engine/License/Renewal.php:412 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" +"Érvényes licenszre van szükséged ezen funkció engedélyezéséhez.%1$sÚjítsd " +"meg most%2$s" + +#: inc/Engine/License/Renewal.php:423 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." msgstr "" +"Érvényes licenszre van szükséged ezen funkció engedélyezéséhez. %1$sBővebb " +"információ%2$s" -#: inc/classes/preload/class-sitemap.php:138 +#: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" of the following error: %2$s. %3$sLearn more%4$s." +"Take advantage of %1$s to speed up more websites:%2$s get a %3$s%4$s off%5$s" +" for %3$supgrading your license to Plus or Infinite!%5$s" +msgid_plural "" +"Take advantage of %1$s to speed up more websites:%2$s get a %3$s%4$s off%5$s" +" for %3$supgrading your license to Infinite!%5$s" +msgstr[0] "" +"Használd ki a%1$s-t hogy mégtöbb weboldalt felgyorsíthass: %2$s szerezz egy " +"%3$s%4$s kedvezményt %5$s ig%3$s, válts Plus előfizetésre! %5$s" +msgstr[1] "" +"Használd ki a %1$s -t hogy mégtöbb weboldalt felgyorsíthass: %2$sszerezz " +"%3$s%4$s kedvezményt %5$s ig%3$s, válts Infinite előfizetésre! %5$s" + +#: inc/Engine/License/Upgrade.php:382 inc/Engine/License/Upgrade.php:405 +msgid "Unlimited" +msgstr "Korlátlan" + +#: inc/Engine/License/views/promo-banner.php:16 +#, php-format +msgid "%s off" +msgstr "%skedvezmény" + +#: inc/Engine/License/views/promo-banner.php:21 +#, php-format +msgid "%s promotion is live!" +msgstr "%s akció!" + +#: inc/Engine/License/views/promo-banner.php:27 +msgid "Hurry Up! Deal ends in:" +msgstr "Siess! Az ajánlat csak eddig tart:" + +#: inc/Engine/License/views/promo-banner.php:31 +#: inc/Engine/License/views/renewal-soon-banner.php:14 +msgid "Minutes" +msgstr "Perc" + +#: inc/Engine/License/views/promo-banner.php:32 +#: inc/Engine/License/views/renewal-soon-banner.php:15 +msgid "Seconds" +msgstr "Másodperc" + +#: inc/Engine/License/views/promo-banner.php:34 +#: inc/Engine/License/views/upgrade-section.php:11 +msgid "Upgrade now" +msgstr "Válts most" + +#: inc/Engine/License/views/promo-banner.php:36 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 +#: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 +msgid "Dismiss this notice" +msgstr "Tüntesd el ezt az értesítést" + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." +msgstr "Az optimizált CSS kiküldés funkció le van tiltva." + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously " +"options." msgstr "" +"Nem használhatod többé a Nem-használt CSS eltávolítása vagy a CSS aszinkron " +"betöltése opciókat." -#: inc/classes/preload/class-sitemap.php:153 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: %2$s. Security measures could be preventing access." -" %3$sLearn more%4$s." +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " +"which addresses a PageSpeed Insights recommendation and improves your page " +"performance." msgstr "" +"%1$sÉrvényes licenszre%2$s van szükség a CSS kézbesítés optimizáláshoz, ami " +"javítja a PageSpeed Insight ajánlásokat és javítja az oldalad " +"teljesítményét." -#: inc/classes/preload/class-sitemap.php:158 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 404. Please make sure you entered the correct " -"sitemap URL and it is accessible in your browser. %2$sLearn more%3$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: " +"you’ll only pay %1$s%4$s%2$s!" msgstr "" +"Újítsd meg a licenszedet most és szerezz %1$s%3$s kedvezményt %2$sazonnal: " +"csak %1$s%4$s%2$s -t kell fizetned!" + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 +#: inc/Engine/License/views/renewal-soon-banner.php:46 +msgid "Renew now" +msgstr "Újítsd meg most" -#: inc/classes/preload/class-sitemap.php:163 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "Hamarosan elveszted az alábbi funkciókat" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 #, php-format msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 500. Please check with your web host about server " -"access. %2$sLearn more%3$s." +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." msgstr "" +"Szükség van %1$sérvényes licenszre hogy ezentúl is optimizálva legyen " +"kézbesítve a CSS-ed%2$s." -#: inc/classes/preload/class-sitemap.php:168 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options" +" to address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" +"A nem-használt CSS és az aszinkron CSS betöltés funkciók nagyszerű " +"lehetőségek a PageSpeed Insight ajánlások javítására, valamint javítják a " +"weboldalad teljesítményét." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "Ezek %1$sautomatikusan le lesnek tiltva %3$s%2$s-kor." + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "A WP Rocket licenszed lejárt!" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 #, php-format msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" it returned the following response code: %2$s. %3$sLearn more%4$s." +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" msgstr "" +"Sokkal gyorsabbá tehetnéd a weboldalad, ha hozzáférésed lenne a %1$slegújabb" +" új funkcióinkhoz és fejlesztéseinkhez%2$s 🚀" -#: inc/classes/preload/class-sitemap.php:184 +#: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because the file is empty. %2$sLearn more%3$s." +"Your %1$sWP Rocket license is about to expire%2$s: you will soon lose access" +" to product updates and support." msgstr "" +"A %1$sWP Rocket licenszed hamarosan lejár%2$s: hamarosan elveszted a " +"hozzáférést a frissítésekhez és a támogatáshoz." + +#: inc/Engine/License/views/renewal-soon-banner.php:31 +msgid "Renew before it is too late!" +msgstr "Újítsd meg mielőtt túl késő!" -#: inc/classes/preload/class-sitemap.php:205 +#: inc/Engine/License/views/renewal-soon-banner.php:35 #, php-format msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because of an error during the XML sitemap parsing. %2$sLearn more%3$s." +"Renew with a %1$s%2$s discount%3$s before it is too late, you will only pay " +"%1$s%4$s%3$s!" msgstr "" +"Újítsd meg most egy %1$s%2$skedvezménnyel%3$s mielőtt túl késő, csak " +"%1$s%4$s%3$s-t kellene fizetned!" -#: inc/classes/subscriber/Optimization/class-critical-css-subscriber.php:138 +#: inc/Engine/License/views/upgrade-popin.php:12 +msgid "Speed Up More Websites" +msgstr "Gyorsíts fel mégtöbb weboldalt!" + +#: inc/Engine/License/views/upgrade-popin.php:19 #, php-format msgid "" -"Critical CSS generation is currently running: %1$d of %2$d page types " -"completed. (Refresh this page to view progress)" +"You can use WP Rocket on more websites by upgrading your license. To " +"upgrade, simply pay the %1$sprice difference%2$s between your current and " +"new licenses, as shown below." msgstr "" +"A WP Rocket-et több weboldalon is használhatod ha bővíted a licenszedet. " +"Ehhez csak fizess %1$sárkülönbözetet%2$s a mostani és az új licenszed " +"között, ahogy lejjebb látható:" -#: inc/classes/subscriber/Optimization/class-critical-css-subscriber.php:189 +#: inc/Engine/License/views/upgrade-popin.php:25 #, php-format -msgid "Critical CSS generation finished for %1$d of %2$d page types." +msgid "" +"%1$sN.B.%2$s: Upgrading your license does not change your expiration date" msgstr "" +"%1$sTipp:%2$s: A licenszed megújítása nem hosszabbítja meg a lejárati " +"dátumot" -#: inc/classes/subscriber/Optimization/class-critical-css-subscriber.php:203 -msgid "Critical CSS generation encountered one or more errors." +#: inc/Engine/License/views/upgrade-popin.php:35 +#, php-format +msgid "Save $%s" +msgstr "Spórolj $%s-t" + +#: inc/Engine/License/views/upgrade-popin.php:48 +#, php-format +msgid "%s websites" +msgstr "%s weboldalak" + +#: inc/Engine/License/views/upgrade-popin.php:54 +#, php-format +msgid "Upgrade to %s" +msgstr "Válts %s-ra" + +#: inc/Engine/License/views/upgrade-section.php:11 +msgid "" +"You can use WP Rocket on more websites by upgrading your license (you will " +"only pay the price difference between your current and new licenses)." msgstr "" +"A WP Rocket-et több weboldalon is használhatod ha bővíted a licenszedet. " +"(Csak az árkülönbözetet kell fizetned a mostani és az új licenszed között)" -#: inc/classes/subscriber/Optimization/class-critical-css-subscriber.php:203 -msgid "Learn more." +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:120 +#: views/settings/page-sections/dashboard.php:206 +msgid "Clear Used CSS" +msgstr "Ürítsd a használt CSS-ek gyorsítótárát" + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:204 +#, php-format +msgid "" +"%1$s: Please wait %2$s seconds. The Remove Unused CSS service is processing " +"your pages." msgstr "" +"%1$s: Kérlek várj %2$s másodpercet. A Nemhasznált CSS törlése szolgáltatás " +"épp feldolgozza az oldalaidat." -#: inc/classes/subscriber/Tools/class-cache-dir-size-check-subscriber.php:51 -#: inc/classes/subscriber/class-facebook-tracking-cache-busting-subscriber.php:97 -#: inc/classes/subscriber/class-google-tracking-cache-busting-subscriber.php:154 -#: inc/common/cron.php:33 -msgid "weekly" +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:245 +#, php-format +msgid "" +"%1$s: The Used CSS of your homepage has been processed. WP Rocket will " +"continue to generate Used CSS for up to %2$s URLs per %3$s second(s)." msgstr "" +"%1$s: A kezdőlapodon felhasznált CSS-ek fel lettek dolgozva. A WP Rocket " +"folytatja a felhasznált CSS-ek feldolgozását, %2$s URL/%3$smásodpercenként." -#: inc/classes/subscriber/admin/Database/class-optimization-subscriber.php:148 -msgid "Database optimization process is running" +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:254 +#, php-format +msgid "We suggest enabling %1$sSitemap Preload%2$s for the fastest results." +msgstr "" +"Javasoljuk engedélyezni az %1$sOldaltérkép alapú előtöltést%2$sa leggyorsabb" +" betöltés érdekében." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:264 +#, php-format +msgid "To learn more about the process check our %1$sdocumentation%2$s." +msgstr "" +"Hogy megtudhass többet a folyamatról, nézd meg a %1$sdokumentációnkat%2$s." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:291 +#, php-format +msgid "" +"%1$s: We detected missing database table related to Action Scheduler. Please" +" visit the following %2$sURL%3$s to recreate it, as it is needed for WP " +"Rocket to work correctly." msgstr "" +"%1$s: Hiányzó adatbázis táblát találtunk a feladatütemezőhöz kapcsolódóan. " +"Kérlek látogasd meg az %2$salábbi weblapot%3$s-t hogy újra létrehozhasd ezt," +" mert a WP Rocket-nek szüksége van erre a helyes működéshez." -#: inc/classes/subscriber/admin/Database/class-optimization-subscriber.php:179 +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:488 msgid "" -"Database optimization process is complete. Everything was already optimized!" +"We couldn't generate the used CSS because you're using a nulled version of " +"WP Rocket. You need an active license to use the Remove Unused CSS feature " +"and further improve your website's performance." +msgstr "" +"Nem tudtuk létrehozni a felhasznált CSS-ek listáját mert kalózverziót " +"használsz a WP Rocket-ből. Aktív előfizetésre van szükség ahhoz, hogy a " +"nemhasznált CSS-ek törlése funkciót használhasd, valamint hogy " +"továbbfejleszthesd a weboldalad teljesítményét." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:491 +#, php-format +msgid "Click here to get a WP Rocket single license at %1$s off!" +msgstr "" +"Kattints ide és megvásárolhatod a WP Rocket single licenszét " +"%1$skedvezménnyel!" + +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:299 +#, php-format +msgid "%1$s: Used CSS option is not enabled!" +msgstr "%1$sA felhasznált CSS opció nincs engedélyezve!" + +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:320 +#, php-format +msgid "%1$s: Used CSS cache cleared!" +msgstr "%1$s: A felhasznált CSS gyorsítótára ürítve!" + +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:713 +msgid "Clear Used CSS of this URL" +msgstr "Ürítsd ezen URL felhasznált CSS-eit" + +#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 +msgid "WP Rocket Remove Unused CSS pending jobs" +msgstr "WP Rocket Nem-használt CSS eltávolítása sorban álló feladatok" + +#: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 +#: inc/deprecated/3.3.php:770 +#, php-format +msgid "" +"An unexpected error occurred. Something may be wrong with WP-Rocket.me or " +"this server’s configuration. If you continue to have problems, contact support." +msgstr "" +"Váratlan hiba történt. Valami hiba lehet a WP-Rocket.me -vel vagy ezen " +"szerver konfigurációjával. Ha továbbra is problémákat tapasztalsz, vedd fel a támogatásunkkal a kapcsolatot." + +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 +#, php-format +msgid "%s Update Rollback" +msgstr "%s Régi verzióra visszaállítás" + +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 +#, php-format +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" +msgstr "" +"%1$sVálts vissza a WP Rocket %2$s vagy %3$s lépj a Bővítmények oldalra%2$s" + +#: inc/Engine/Preload/Homepage.php:153 +#, php-format +msgid "" +"Preload encountered an error. Could not gather links on %1$s because of the " +"following error: %2$s. %3$sLearn more%4$s." +msgstr "" +"Az előtöltés hibába ütközött. Nem tudjuk összegyűjteni a linkeket a %1$s-n " +"az alábbi hiba miatt: %2$s.%3$s Tudj meg többet%4$s" + +#: inc/Engine/Preload/Homepage.php:166 +#, php-format +msgid "" +"Preload encountered an error. %1$s is not accessible to due to the following" +" response code: %2$s. Security measures could be preventing access. " +"%3$sLearn more%4$s." +msgstr "" +"Az előtöltés hibába ütközött. %1$snem hozzáférhető az alábbi hibakód miatt: " +"%2$s . Lehet hogy biztonsági beállítások akadályozzák a hozzáférést. " +"%3$sBővebb információ%4$s." + +#: inc/Engine/Preload/Homepage.php:172 +#, php-format +msgid "" +"Preload encountered an error. %1$s is not accessible to due to the following" +" response code: 404. Please make sure your homepage is accessible in your " +"browser. %2$sLearn more%3$s." +msgstr "" +"Az előtöltés hibába ütközött. %1$s nem hozzáférhető az alábbi hibakód miatt:" +" 404. Kérlek ellenőrizd hogy a kezdőlapod elérhető legyen a böngésződben. " +"%2$sBővebb információ%3$s." + +#: inc/Engine/Preload/Homepage.php:178 +#, php-format +msgid "" +"Preload encountered an error. %1$s is not accessible to due to the following" +" response code: 500. Please check with your web host about server access. " +"%2$sLearn more%3$s." +msgstr "" +"Az előtöltés hibába ütközött. %1$s nem hozzáférhető az alábbi hibakód miatt:" +" 500. Kérlek vedd fel a tárhelyszolgáltatóddal a kapcsolatot a szerver " +"elérése miatt. %2$sBővebb információ%3$s." + +#: inc/Engine/Preload/Homepage.php:184 +#, php-format +msgid "" +"Preload encountered an error. Could not gather links on %1$s because it " +"returned the following response code: %2$s. %3$sLearn more%4$s." +msgstr "" +"Az előtöltés hibába ütközött. Nem tudtuk összegyűjteni a linkeket %1$s-n " +"mert az alábbi válaszkódot adta: %2$s.%3$sBővebb információ%4$s." + +#: inc/Engine/Preload/PreloadSubscriber.php:229 +msgid "Preload: WP Rocket has started preloading your website." +msgstr "Előtöltés: a WP Rocket elkezdte előtölteni a weboldaladat." + +#: inc/Engine/Preload/PreloadSubscriber.php:276 +#, php-format +msgid "" +"Preload: %1$s uncached page has now been preloaded. (refresh to see " +"progress)" +msgid_plural "" +"Preload: %1$s uncached pages have now been preloaded. (refresh to see " +"progress)" +msgstr[0] "" +"Előtöltés:%1$s eddig gyorsítótárazatlan oldal most már elő van töltve. " +"(frissítsd az oldalt a folyamat követéséhez)" +msgstr[1] "" +"Előtöltés:%1$s eddig gyorsítótárazatlan oldal most már elő van töltve. " +"(frissítsd az oldalt a folyamat követéséhez)" + +#: inc/Engine/Preload/PreloadSubscriber.php:285 +msgid "The following error happened during gathering of the URLs to preload:" +msgid_plural "" +"The following errors happened during gathering of the URLs to preload:" +msgstr[0] "" +"Az alábbi hiba történt miközben gyűjtöttük össze az előtöltendő URL-ek " +"listáját:" +msgstr[1] "" +"Az alábbi hibák történtek miközben gyűjtöttük össze az előtöltendő URL-ek " +"listáját:" + +#: inc/Engine/Preload/PreloadSubscriber.php:338 +#, php-format +msgid "Preload complete: %d pages have been cached." +msgstr "Előtöltés kész: %doldal lett gyorsítótárazva." + +#: inc/Engine/Preload/Sitemap.php:150 +#, php-format +msgid "" +"Sitemap preload encountered an error. Could not gather links on %1$s because" +" of the following error: %2$s. %3$sLearn more%4$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött. Nem tudtuk összegyűjteni a " +"linkeket a %1$s-n az alábbi hiba miatt: %2$s. %3$sTudj meg többet%4$s." + +#: inc/Engine/Preload/Sitemap.php:165 +#, php-format +msgid "" +"Sitemap preload encountered an error. %1$s is not accessible to due to the " +"following response code: %2$s. Security measures could be preventing access." +" %3$sLearn more%4$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött: %1$snem elérhető az alábbi " +"hibakód miatt: %2$s. Lehet, hogy biztonsági beállítások blokkolják a " +"hozzáférést. %3$sTudj meg többet%4$s." + +#: inc/Engine/Preload/Sitemap.php:170 +#, php-format +msgid "" +"Sitemap preload encountered an error. %1$s is not accessible to due to the " +"following response code: 404. Please make sure you entered the correct " +"sitemap URL and it is accessible in your browser. %2$sLearn more%3$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött. %1$s nem hozzáférhető az " +"alábbi hibakód miatt: 404. Kérlek ellenőrizd hogy a megfelelő oldaltérkép " +"URL-t írtad-e be, és hogy ez elérhető-e a böngésződbe. %2$sTudj meg " +"többet%3$s" + +#: inc/Engine/Preload/Sitemap.php:175 +#, php-format +msgid "" +"Sitemap preload encountered an error. %1$s is not accessible to due to the " +"following response code: 500. Please check with your web host about server " +"access. %2$sLearn more%3$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött.%1$s nem hozzáférhető az " +"alábbi hibakód miatt: 500. Kérlek egyeztess a tárhelyszolgáltatóddal a " +"szerver eléréséről. %2$sTudj meg többet%3$s." + +#: inc/Engine/Preload/Sitemap.php:180 +#, php-format +msgid "" +"Sitemap preload encountered an error. Could not gather links on %1$s because" +" it returned the following response code: %2$s. %3$sLearn more%4$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött. Nem tudtuk összegyűjteni a " +"linkeket %1$s-n mert az alábbi hibakódot kaptuk: %2$s. %3$sTudj meg " +"többet%4$s." + +#: inc/Engine/Preload/Sitemap.php:196 +#, php-format +msgid "" +"Sitemap preload encountered an error. Could not collect links from %1$s " +"because the file is empty. %2$sLearn more%3$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött. Nem tudtuk összegyűjteni a " +"linkeket a %1$s-ról mert a fájl üres. %2$sTudj meg többet%3$s." + +#: inc/Engine/Preload/Sitemap.php:217 +#, php-format +msgid "" +"Sitemap preload encountered an error. Could not collect links from %1$s " +"because of an error during the XML sitemap parsing. %2$sLearn more%3$s." +msgstr "" +"Az oldaltérkép alapú előtöltés hibába ütközött. Nem tudtuk összegyűjteni a " +"linkeket a %1$s-ról mert hiba történt az XML oldaltérkép feldolgozása " +"közben. %2$sTudj meg többet%3$s." + +#: inc/Engine/Preload/SitemapPreloadSubscriber.php:122 +#, php-format +msgid "" +"%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please " +"contact your host to enable it before running sitemap-based cache " +"preloading." +msgstr "" +"%1$sSimpleXML PHP bővítmény%2$s nincs engedélyezve a szervereden. Kérlek " +"vedd fel a kapcsolatot a tárhelyszolgáltatóddal, hogy engedélyezze ezt, " +"mielőtt futtatnád az oldaltérkép alapú gyorsítótár előtöltést." + +#: inc/ThirdParty/Hostings/Cloudways.php:82 +#, php-format +msgid "" +"Varnish auto-purge will be automatically enabled once Varnish is enabled on " +"your %s server." +msgstr "" +"Varnish automata-ürítés magától engedélyezve lesz, amint engedélyezed a " +"Varnish-t a %sszerveren." + +#: inc/ThirdParty/Hostings/Kinsta.php:158 +#, php-format +msgid "" +"Your installation seems to be missing core Kinsta files managing Cache " +"clearing, which will prevent your Kinsta installation and WP Rocket from " +"working correctly. Please get in touch with Kinsta support through your " +"%1$sMyKinsta%2$s account to resolve this issue." +msgstr "" +"Úgy tűnik, fontos Kinsta fájlok hiányoznak a rendszeredből, amik a " +"gyorsítótár ürítéséért felelnének, ezért a Kinsta és a WP Rocket nem tud " +"együttműködni. Kérlek vedd fel a kapcsolatot a Kinsta támogatással a " +"%1$sMyKinsta%2$sfiókodon keresztül hogy megoldd ezt a problémát. " + +#: inc/ThirdParty/Plugins/ModPagespeed.php:102 +#, php-format +msgid "" +"%1$s: Mod PageSpeed is not compatible with this plugin and " +"may cause unexpected results. %2$sMore Info%3$s" +msgstr "" +"%1$s: Mod PageSpeed nem kompatibilis ezzel a bővítménnyel " +"és váratlan problémákat okozhat. %2$sBővebb információ%3$s" + +#: inc/ThirdParty/Plugins/Optimization/Autoptimize.php:76 +#, php-format +msgid "" +"%1$sWP Rocket: %2$sWe have detected that Autoptimize's JavaScript " +"Aggregation feature is enabled. WP Rocket's Delay JavaScript Execution will " +"not be applied to the file it creates. We suggest disabling %1$sJavaScript " +"Aggregation%2$s to take full advantage of Delay JavaScript Execution." +msgstr "" +"%1$sWP Rocket:%2$s Úgy érzékeljük hogy engedélyezve van az Autoptmize " +"JavaScript Aggregáció funkciója. A WP Rocket Késleltetett JavaScript " +"Futtatás funkciója nem lesz alkalmazva arra a fájlra, amit ez létrehoz. " +"Javasoljuk hogy tiltsd le a %1$sJavascript aggregációt%2$s hogy " +"kihasználhasd a mi Késleltetett Javascript Futtatás funkciónkat." + +#: inc/ThirdParty/Plugins/Optimization/Autoptimize.php:131 +#, php-format +msgid "" +"%1$sWP Rocket: %2$sWe have detected that Autoptimize's Aggregate Inline CSS " +"feature is enabled. WP Rocket's Load CSS Asynchronously will not work " +"correctly. We suggest disabling %1$sAggregate Inline CSS%2$s to take full " +"advantage of Load CSS Asynchronously Execution." +msgstr "" +"%1$sWP Rocket: %2$sÚgy érzékeljük hogy engedélyezve van az Autoptimize " +"Beágyazott CSS Aggregáció funkciója. A WP Rocket CSS aszinkron betöltése nem" +" fog megfelelően működni így. Javasoljuk hogy tiltsd le a %1$sBeágyazott CSS" +" Aggregáció%2$s funkcióját hogy kihasználhasd a mi CSS aszinkron betöltés " +"funkciónkat." + +#: inc/ThirdParty/Plugins/Optimization/Ezoic.php:45 +#, php-format +msgid "" +"This plugin blocks WP Rocket's caching and optimizations. Deactivate it and " +"use %1$sEzoic's nameserver integration%2$s instead." +msgstr "" +"Ez a bővítmény blokkolja a WP Rocket gyorsítótárazását és egyéb " +"optimalizációit. Deaktiváld és használd az %1$sEzoic névszerver " +"integrációt%2$shelyette." + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:78 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"Please deactivate the following %s option which conflicts with WP Rocket " +"features:" +msgid_plural "" +"Please deactivate the following %s options which conflict with WP Rocket " +"features:" +msgstr[0] "" +"Kérlek deaktiváld az alábbi %sopciót amik összeférhetetlenek a WP Rocket " +"funkcióival:" +msgstr[1] "" +"Kérlek deaktiváld az alábbi %s opciókat amik összeférhetetlenek a WP Rocket " +"funkcióival:" + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:151 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" +msgstr "" +"%1$s %2$sdisable emoji%3$s összeférhetetlen a WP Rocket %2$sdisable " +"emoji%3$s funkciójával" + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:187 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " +"compression%3$s" +msgstr "" +"%1$s %2$sGZIP compression%3$s összeférhetetlen a WP Rocket %2$sGZIP " +"compression%3$s-ével" + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:223 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " +"caching%3$s" +msgstr "" +"%1$s %2$sbrowser caching%3$s összeférhetetlen a WP Rocket %2$sbrowser " +"caching%3$s-ével" + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:255 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" +msgstr "" +"%1$s %2$spage caching%3$s összeférhetetlen a WP Rocket %2$spage " +"caching%3$s-ével" + +#: inc/ThirdParty/Plugins/Optimization/Hummingbird.php:289 +#, php-format +msgctxt "Hummingbird notice" +msgid "" +"%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " +"optimization%3$s" +msgstr "" +"%1$s %2$sasset optimization%3$s összeférhetetlen a WP Rocket %2$sfile " +"optimization%3$s-ével" + +#: inc/ThirdParty/Plugins/Optimization/WPMeteor.php:42 +#, php-format +msgid "" +"Delay JS is currently activated in %1$s. If you want to use WP Rocket’s " +"delay JS, disable %1$s" +msgstr "" +"A késleltetett JS engedélyezve van a %1$s-ban. Ha a WP Rocket késleltetett " +"JS-ét akarod használni akkor tiltsd le %1$s-ban." + +#: inc/ThirdParty/Plugins/SEO/Yoast.php:60 inc/deprecated/3.11.php:81 +msgid "Yoast SEO XML sitemap" +msgstr "Yoast SEO XML oldaltérkép" + +#: inc/ThirdParty/Plugins/Smush.php:108 inc/ThirdParty/Plugins/Smush.php:126 +msgid "Smush" +msgstr "Smush" + +#: inc/ThirdParty/Themes/Avada.php:119 +msgid "Avada" +msgstr "Avada" + +#: inc/admin/admin.php:18 inc/common/admin-bar.php:333 +#: inc/deprecated/deprecated.php:1787 +msgid "Support" +msgstr "Támogatás" + +#: inc/admin/admin.php:20 +msgid "Docs" +msgstr "Dokumentáció" + +#: inc/admin/admin.php:22 inc/common/admin-bar.php:321 +msgid "FAQ" +msgstr "GYIK" + +#: inc/admin/admin.php:24 inc/common/admin-bar.php:63 +msgid "Settings" +msgstr "Beállítások" + +#: inc/admin/admin.php:435 +msgid "Settings import failed: you do not have the permissions to do this." +msgstr "Beállítások importálása sikertelen: nincs jogosultságod ehhez." + +#: inc/admin/admin.php:439 +msgid "Settings import failed: no file uploaded." +msgstr "Beállítások importálása sikertelen: nem lett fájl feltöltve." + +#: inc/admin/admin.php:443 +msgid "Settings import failed: incorrect filename." +msgstr "Beállítások importálása sikertelen: hibás fájlnév." + +#: inc/admin/admin.php:454 +msgid "Settings import failed: incorrect filetype." +msgstr "Beállítások importálása sikertelen: hibás fájltípus." + +#: inc/admin/admin.php:464 +msgid "Settings import failed: " +msgstr "Beállítások importálása sikertelen: " + +#: inc/admin/admin.php:480 +msgid "Settings import failed: unexpected file content." +msgstr "Beállítások importálása sikertelen: váratlan fájl tartalom." + +#: inc/admin/admin.php:510 +msgid "Settings imported and saved." +msgstr "Beállítások importálva és elmentve." + +#: inc/admin/options.php:125 +msgid "Defer JavaScript Files" +msgstr "Késleltetett javascript fájlok (Defer)" + +#: inc/admin/options.php:126 +msgid "Excluded Delay JavaScript Files" +msgstr "Késleltetésből kizárt JavaScript fájlok" + +#: inc/admin/options.php:148 +#, php-format +msgid "%1$s: %2$s" +msgstr "%1$s: %2$s" + +#: inc/admin/options.php:158 +msgid "The following pattern is invalid and has been removed:" +msgid_plural "The following patterns are invalid and have been removed:" +msgstr[0] "Az alábbi minta érvénytelen, és ezért törölve lett:" +msgstr[1] "Az alábbi minták érvénytelenek, és ezért törölve lettek:" + +#: inc/admin/options.php:174 +msgid "More info" +msgstr "Bővebb információ" + +#: inc/admin/ui/meta-boxes.php:14 inc/admin/ui/notices.php:752 +#: inc/common/admin-bar.php:84 inc/common/admin-bar.php:136 +#: views/settings/page-sections/dashboard.php:150 +msgid "Clear cache" +msgstr "Gyorsítótár ürítése" + +#: inc/admin/ui/meta-boxes.php:38 +msgid "WP Rocket Options" +msgstr "WP Rocket beállításai" + +#: inc/admin/ui/meta-boxes.php:67 +msgid "Never cache this page" +msgstr "Soha ne gyorsítótárazd ezt az oldalt" + +#: inc/admin/ui/meta-boxes.php:71 +msgid "Activate these options on this post:" +msgstr "Aktiváld ezeket az opciókat ezen a bejegyzésen:" + +#: inc/admin/ui/meta-boxes.php:74 +msgid "LazyLoad for images" +msgstr "LazyLoad képek számára" + +#: inc/admin/ui/meta-boxes.php:75 +msgid "LazyLoad for iframes/videos" +msgstr "LazyLoad iframe-k/videók számára" + +#: inc/admin/ui/meta-boxes.php:76 +msgid "Minify/combine CSS" +msgstr "CSS miniatűrizálása/egyesítése" + +#: inc/admin/ui/meta-boxes.php:77 +msgid "Remove Unused CSS" +msgstr "Nem-használt CSS kódok eltávolítása" + +#: inc/admin/ui/meta-boxes.php:78 +msgid "Minify/combine JS" +msgstr "JS miniatűrizálása/egyesítése" + +#: inc/admin/ui/meta-boxes.php:81 +msgid "Defer JS" +msgstr "JS késleltetése (defer)" + +#: inc/admin/ui/meta-boxes.php:88 +#, php-format +msgid "Activate first the %s option." +msgstr "Aktiváld először a %sopciót" + +#: inc/admin/ui/meta-boxes.php:104 +#, php-format +msgid "" +"%1$sNote:%2$s None of these options will be applied if this post has been " +"excluded from cache in the global cache settings." +msgstr "" +"%1$sMegjegyzés:%2$s Ezek az opciók nem lesznek érvénybe léptetve, ha ez a " +"bejegyzés ki lett zárva a gyorsítótárazásból a globális gyorsítótár " +"beállításokban." + +#: inc/admin/ui/notices.php:31 inc/admin/ui/notices.php:44 +#, php-format +msgid "" +"%1$s has not been deactivated due to missing writing permissions.
\n" +"Make %2$s writeable and retry deactivation, or force deactivation now:" +msgstr "" +"%1$snem lett deaktiválva a hiányzó írási jogosultságok miatt.
\n" +"Tedd %2$s-t írhatóvá és próbáld újra a deaktiválásd, vagy kényszerítsd a deaktiválást most:" + +#: inc/admin/ui/notices.php:97 +#, php-format +msgid "" +"%s: One or more plugins have been enabled or disabled, " +"clear the cache if they affect the front end of your site." +msgstr "" +"%s: egy vagy több bővítmény engedélyezve lett vagy " +"letiltva, ürítsd a gyorsítótárt ha ezek befolyásolják a weboldalad " +"megjelenését." + +#: inc/admin/ui/notices.php:190 +msgid "" +"WP Rocket Cloudflare Add-on provides similar functionalities. They can not " +"be active at the same time." +msgstr "" +"WP Rocket Cloudflare Bővítmény hasonló funkció funkciókat biztosít. Nem " +"lehetnek egyszerre aktiválva." + +#: inc/admin/ui/notices.php:223 +#, php-format +msgid "" +"%s: The following plugins are not compatible with this " +"plugin and may cause unexpected results:" +msgstr "" +"%s: Az alábbi bővítmények nem kompatibilisek ezzel a " +"bővítménnyel és ezért váratlan dolgokat okozhatnak:" + +#: inc/admin/ui/notices.php:229 +msgid "Deactivate" +msgstr "Deaktiválás" + +#: inc/admin/ui/notices.php:271 +msgid "" +"WP Rocket Footer JS is not an official add-on. It prevents some options in " +"WP Rocket from working correctly. Please deactivate it if you have problems." +msgstr "" +"WP Rocket Footer JS nem egy hivatalos bővítmény. Akadályozza bizonyos WP " +"Rocket opciók működését. Kérlek deaktiváld ha problémákat tapasztalsz." + +#: inc/admin/ui/notices.php:311 +#, php-format +msgid "" +"Endurance Cache is currently enabled, which will conflict with WP Rocket " +"Cache. Please set the Endurance Cache cache level to Off (Level 0) on the " +"%1$sSettings > General%2$s page to prevent any issues." +msgstr "" +"Endurance Cache jelenleg engedélyezve van, ami ütközik a WP Rocket " +"gyorsítótárával. Kérlek állítsd az Endurance Cache gyorsítótár-szintjét OFF-" +"ra (0-ás szint) a %1$sBeállítások > Általános %2$soldalon hogy megelőzd a " +"problémákat." + +#: inc/admin/ui/notices.php:332 +#, php-format +msgid "" +"%1$s: A custom permalink structure is required for the plugin to work " +"properly. %2$sGo to permalinks settings%3$s" +msgstr "" +"%1$s: Egyéni permalink struktúra szükséges a bővítmény megfelelő " +"működéséhez. %2$sMenj a permalink beállításokhoz%3$s" + +#: inc/admin/ui/notices.php:379 +#, php-format +msgid "" +"%s could not modify the .htaccess file due to missing writing permissions." +msgstr "" +"%s Nem lehet módosítani a .htaccess fájlt a hiányzó írási jogosultságok " +"miatt." + +#: inc/admin/ui/notices.php:385 inc/admin/ui/notices.php:835 +#, php-format +msgid "Troubleshoot: %1$sHow to make system files writeable%2$s" +msgstr "Hibaelhárítás: %1$sHogyan tedd írhatóvá a rendszerfájlokat%2$s" + +#: inc/admin/ui/notices.php:387 inc/admin/ui/notices.php:837 +msgid "" +"https://docs.wp-rocket.me/article/626-how-to-make-system-files-htaccess-wp-" +"config-writeable/?utm_source=wp_plugin&utm_medium=wp_rocket" +msgstr "" +"https://docs.wp-rocket.me/article/626-how-to-make-system-files-htaccess-wp-" +"config-writeable/?utm_source=wp_plugin&utm_medium=wp_rocket" + +#: inc/admin/ui/notices.php:393 +msgid "" +"Don’t worry, WP Rocket’s page caching and settings will still function " +"correctly." +msgstr "" +"Ne aggódj, a WP Rocket oldal-gyorsítótárazása és beállításai így is " +"megfelelően fognak működni." + +#: inc/admin/ui/notices.php:393 +msgid "" +"For optimal performance, adding the following lines into your .htaccess is " +"recommended (not required):" +msgstr "" +"Az optimális teljesítmény érdekében javasoljuk, hogy vedd fel az alábbi " +"sorokat a .htaccess fájlodba (nem kötelező):" + +#: inc/admin/ui/notices.php:540 +#, php-format +msgid "" +"%1$s is good to go! %2$sTest your load time%4$s, or visit your " +"%3$ssettings%4$s." msgstr "" +"%1$s használatra kész! %2$s Nézd meg a betöltési idődet%4$s, vagy látogasd " +"meg a %3$sbeállításaidat%4$s." -#: inc/classes/subscriber/admin/Database/class-optimization-subscriber.php:182 +#: inc/admin/ui/notices.php:581 msgid "" -"Database optimization process is complete. List of optimized items below:" +"Would you allow WP Rocket to collect non-sensitive diagnostic data from this" +" website?" msgstr "" +"Megengeded a WP Rocket-nek, hogy névtelen, nem-érzékeny diagnosztikai " +"adatokat gyűjtsünk a weboldaladról?" -#: inc/classes/subscriber/admin/Database/class-optimization-subscriber.php:190 -#, php-format -msgid "%1$d %2$s optimized." -msgstr "" +#: inc/admin/ui/notices.php:582 +msgid "This would help us to improve WP Rocket for you in the future." +msgstr "Ez segít nekünk abban, hogy jobbá tehessük a WP Rocketet a jövőben." -#: inc/classes/subscriber/admin/Settings/class-page-subscriber.php:137 -#: inc/deprecated/deprecated.php:1788 -#: views/settings/page-sections/tools.php:33 -msgid "Tools" -msgstr "" +#: inc/admin/ui/notices.php:588 +msgid "What info will we collect?" +msgstr "Milyen adatokat gyűjtünk?" -#: inc/classes/subscriber/admin/Settings/class-page-subscriber.php:138 -msgid "Import, Export, Rollback" +#: inc/admin/ui/notices.php:593 +msgid "" +"Below is a detailed view of all data WP Rocket will collect if granted " +"permission. WP Rocket will never transmit any domain names or email " +"addresses (except for license validation), IP addresses, or third-party API " +"keys." msgstr "" +"Alább felsoroltuk részletesen, hogym ilyen adatokat fog gyűjteni a WP " +"Rocket, ha megadod az engedélyt. A WP Rocket soha nem fog továbbítani domain" +" neveket vagy email címeket (kivéve licensz érvényesítéshez), IP címeket " +"vagy külső félhez tartozó API kulcsokat." -#: inc/classes/subscriber/admin/Settings/class-page-subscriber.php:160 -#: views/settings/page-sections/imagify.php:13 -msgid "Image Optimization" -msgstr "" +#: inc/admin/ui/notices.php:602 +msgid "Yes, allow" +msgstr "Igen, engedélyezés" -#: inc/classes/subscriber/admin/Settings/class-page-subscriber.php:161 -msgid "Compress your images" -msgstr "" +#: inc/admin/ui/notices.php:605 +msgid "No, thanks" +msgstr "Nem, köszönöm" -#: inc/classes/subscriber/preload/class-preload-subscriber.php:212 -#, php-format -msgid "" -"Preload: WP Rocket has started preloading your website. Go to the %1$sWP " -"Rocket settings%2$s page to track progress." -msgstr "" +#: inc/admin/ui/notices.php:644 +msgid "Thank you!" +msgstr "Köszönjük!" + +#: inc/admin/ui/notices.php:649 +msgid "WP Rocket now collects these metrics from your website:" +msgstr "A WP Rocket most ezeket az adatokat gyűjti a weboldaladról:" -#: inc/classes/subscriber/preload/class-preload-subscriber.php:246 +#: inc/admin/ui/notices.php:687 #, php-format -msgid "" -"Preload: %1$s uncached page has now been preloaded. (refresh to see " -"progress)" -msgid_plural "" -"Preload: %1$s uncached pages have now been preloaded. (refresh to see " -"progress)" -msgstr[0] "" -msgstr[1] "" +msgid "%s: Cache cleared." +msgstr "%s: Gyorsítótár ürítve." -#: inc/classes/subscriber/preload/class-preload-subscriber.php:255 -msgid "The following error happened during gathering of the URLs to preload:" -msgid_plural "" -"The following errors happened during gathering of the URLs to preload:" -msgstr[0] "" -msgstr[1] "" +#: inc/admin/ui/notices.php:694 +#, php-format +msgid "%s: Post cache cleared." +msgstr "%s: Bejegyzések gyorsítótára ürítve." -#: inc/classes/subscriber/preload/class-preload-subscriber.php:308 +#: inc/admin/ui/notices.php:701 #, php-format -msgid "Preload complete: %d pages have been cached." -msgstr "" +msgid "%s: Term cache cleared." +msgstr "%s kifejezés gyorsítótár ürítve." -#: inc/classes/subscriber/preload/class-sitemap-preload-subscriber.php:117 +#: inc/admin/ui/notices.php:708 #, php-format -msgid "" -"%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please " -"contact your host to enable it before running sitemap-based cache " -"preloading." -msgstr "" +msgid "%s: User cache cleared." +msgstr "%s: Felhasználói gyorsítótár ürítve." + +#: inc/admin/ui/notices.php:755 +msgid "Stop Preload" +msgstr "Előtöltés megállítása" -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:72 +#: inc/admin/ui/notices.php:773 +msgid "Force deactivation " +msgstr "Kényszerített deaktiválás" + +#: inc/admin/ui/notices.php:792 +msgid "The following code should have been written to this file:" +msgstr "Az alábbi kódnak kellene bekerülnie ebbe a fájlba:" + +#: inc/admin/ui/notices.php:823 #, php-format -msgctxt "Hummingbird notice" -msgid "" -"Please deactivate the following %s option which conflicts with WP Rocket " -"features:" -msgid_plural "" -"Please deactivate the following %s options which conflict with WP Rocket " -"features:" -msgstr[0] "" -msgstr[1] "" +msgid "%s cannot configure itself due to missing writing permissions." +msgstr "%snem tudja önmagát beállítani a hiányzó írási jogosultság miatt." -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:145 +#: inc/admin/ui/notices.php:829 #, php-format -msgctxt "Hummingbird notice" -msgid "" -"%1$s %2$sdisable emoji%3$s conflicts with WP Rockets %2$sdisable emoji%3$s" -msgstr "" +msgid "Affected file/folder: %s" +msgstr "Érintett fájl/mappa: %s" + +#: inc/classes/admin/class-logs.php:124 +msgid "The debug file could not be deleted." +msgstr "A hibakeresési fájl törlése nem sikerült." -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:167 +#: inc/classes/class-wp-rocket-requirements-check.php:147 #, php-format -msgctxt "Hummingbird notice" -msgid "" -"%1$s %2$sremove query strings%3$s conflicts with WP Rocket %2$sremove query " -"strings%3$s" -msgstr "" +msgid "To function properly, %1$s %2$s requires at least:" +msgstr "A megfelő működés érdekében, a %1$s%2$s-hez szükséges legalább:" -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:151 #, php-format -msgctxt "Hummingbird notice" msgid "" -"%1$s %2$sGZIP compression%3$s conflicts with WP Rocket %2$sGZIP " -"compression%3$s" +"PHP %1$s. To use this WP Rocket version, please ask your web host how to " +"upgrade your server to PHP %1$s or higher." msgstr "" +"PHP %1$s. Ahhoz hogy ezt a WP Rocket verziót használni tudd, kérd meg a " +"tárhelyszolgáltatódat, hogy frissítse a szerveren a PHP-t %1$s vagy újabb " +"verzióra." -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:239 +#: inc/classes/class-wp-rocket-requirements-check.php:156 #, php-format -msgctxt "Hummingbird notice" msgid "" -"%1$s %2$sbrowser caching%3$s conflicts with WP Rocket %2$sbrowser " -"caching%3$s" +"WordPress %1$s. To use this WP Rocket version, please upgrade WordPress to " +"version %1$s or higher." msgstr "" +"WordPress %1$s. Ahhoz hogy ezt a WP Rocket verziót használni tudd, kérlek " +"frissítsd a WordPress-t %1$svagy újabb verzióra." -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:271 -#, php-format -msgctxt "Hummingbird notice" +#: inc/classes/class-wp-rocket-requirements-check.php:159 msgid "" -"%1$s %2$spage caching%3$s conflicts with WP Rocket %2$spage caching%3$s" +"If you are not able to upgrade, you can rollback to the previous version by " +"using the button below." msgstr "" +"Ha nem lehetséges a frissítés, akkor visszaállíthatod az előzőt verziót az " +"alábbi gombbal:" -#: inc/classes/subscriber/third-party/plugins/Optimization/class-hummingbird-subscriber.php:305 +#: inc/classes/class-wp-rocket-requirements-check.php:161 +#: inc/deprecated/deprecated.php:1947 #, php-format -msgctxt "Hummingbird notice" -msgid "" -"%1$s %2$sasset optimization%3$s conflicts with WP Rocket %2$sfile " -"optimization%3$s" -msgstr "" +msgid "Re-install version %s" +msgstr "%sverzió újratelepítése" -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:123 +#: inc/classes/dependencies/wp-media/background-processing/wp-background-process.php:447 #, php-format -msgid "Sucuri cache purge error: %s" -msgstr "" +msgid "Every %d Minutes" +msgstr "Minden %d percben" -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:128 -msgid "" -"The Sucuri cache is being cleared. Note that it may take up to two minutes " -"for it to be fully flushed." -msgstr "" +#: inc/classes/logger/class-logger.php:260 +#: inc/classes/logger/class-logger.php:292 +msgid "The log file does not exist." +msgstr "A naplófájl nem létezik." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:242 -msgid "Sucuri firewall API key was not found." -msgstr "" +#: inc/classes/logger/class-logger.php:266 +#: inc/classes/logger/class-logger.php:298 +msgid "The log file could not be read." +msgstr "A naplófájl nem olvasható." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:251 -msgid "Sucuri firewall API key is invalid." -msgstr "" +#: inc/classes/logger/class-logger.php:285 +msgid "The logs are not saved into a file." +msgstr "A naplók nincsenek fájlba elmentve." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:303 -msgid "Error when contacting Sucuri firewall API." -msgstr "" +#: inc/classes/subscriber/Media/class-webp-subscriber.php:269 +#, php-format +msgid "" +"You are using %1$s to serve WebP images so you do not need to enable this " +"option. %2$sMore info%3$s %4$s If you prefer to have WP Rocket serve WebP " +"for you instead, please disable WebP display in %1$s." +msgid_plural "" +"You are using %1$s to serve WebP images so you do not need to enable this " +"option. %2$sMore info%3$s %4$s If you prefer to have WP Rocket serve WebP " +"for you instead, please disable WebP display in %1$s." +msgstr[0] "" +"A %1$s -t használod a WebP képek kiszolgálására, így nem szükséges ezt az " +"opciót bejelölnöd. %2$sMore info%3$s %4$s Ha azt szeretnéd hogy ehelyett a " +"WP Rocket szolgálja ki a WebP képeket, akkor tiltsd le a WebP megjelenítést " +"a %1$s-ben." +msgstr[1] "" +"A %1$s -t használod a WebP képek kiszolgálására, így nem szükséges ezt az " +"opciót bejelölnöd. %2$sMore info%3$s %4$s Ha azt szeretnéd hogy ehelyett a " +"WP Rocket szolgálja ki a WebP képeket, akkor tiltsd le a WebP megjelenítést " +"a %1$s-ben." + +#: inc/classes/subscriber/Media/class-webp-subscriber.php:281 +msgid "WebP cache is disabled by filter." +msgstr "A WebP gyorsítótár le van tiltva szűrő által." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:313 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:291 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:317 #, php-format -msgid "Error when contacting Sucuri firewall API. Error message was: %s" -msgstr "" +msgid "" +"You are using %1$s to convert images to WebP. If you want WP Rocket to serve" +" them for you, activate this option. %2$sMore info%3$s" +msgid_plural "" +"You are using %1$s to convert images to WebP. If you want WP Rocket to serve" +" them for you, activate this option. %2$sMore info%3$s" +msgstr[0] "" +"A %1$s-t használod a képek WebP-re konvertálásához. Ha szeretnéd hogy " +"ehelyett a WP Rocket végezze ezt akkor akkor aktiváld ezt az opciót. " +"%2$sTovábi információ%3$s" +msgstr[1] "" +"A %1$s -t használod a képek WebP-re konvertálásához. Ha szeretnéd hogy " +"ehelyett a WP Rocket végezze ezt akkor akkor aktiváld ezt az opciót. " +"%2$sTovábi információ%3$s" -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:324 -msgid "Could not get a response from the Sucuri firewall API." -msgstr "" +#: inc/classes/subscriber/Media/class-webp-subscriber.php:303 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:329 +#, php-format +msgid "" +"You are using %1$s to convert images to WebP. WP Rocket will create separate" +" cache files to serve your WebP images. %2$sMore info%3$s" +msgid_plural "" +"You are using %1$s to convert images to WebP. WP Rocket will create separate" +" cache files to serve your WebP images. %2$sMore info%3$s" +msgstr[0] "" +"Jelenleg a %1$s használod képek WebP-re konvertálásához. A WP Rocket külön " +"gyorsítótár fájlokat fog csinálni a WebP képeid kiszolgálására. %2$sBővebb " +"információ%3$s" +msgstr[1] "" +"Jelenleg a %1$s-t használod képek WebP-re konvertálásához. A WP Rocket külön" +" gyorsítótár fájlokat fog csinálni a WebP képeid kiszolgálására. %2$sBővebb " +"információ%3$s" -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:335 -msgid "Got an invalid response from the Sucuri firewall API." +#: inc/classes/subscriber/Media/class-webp-subscriber.php:349 +#, php-format +msgid "" +"%5$sWe have not detected any compatible WebP plugin!%6$s%4$s If you don’t " +"already have WebP images on your site consider using %3$sImagify%2$s or " +"another supported plugin. %1$sMore info%2$s %4$s If you are not using WebP " +"do not enable this option." msgstr "" +"%5$sNem találtunk semmilyen kompatibilis WebP bővítményt! %6$s%4$sHa " +"nincsenek még WebP képek az oldaladon, fontold meg az %3$sImagify%2$s vagy " +"más támogatott bővítmény használatát! %1$sBővebb információ%2$s%4$s Ha nem " +"használsz WebP-t akkor ne engedélyezd ez az opciót." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:345 -msgid "The Sucuri firewall API returned an unknown error." +#: inc/classes/subscriber/Media/class-webp-subscriber.php:361 +msgid "WP Rocket will create separate cache files to serve your WebP images." msgstr "" +"A WP Rocket külön gyorsítótár fájlokat fog létrehozni a WebP képeid " +"kiszolgálására." -#: inc/classes/subscriber/third-party/plugins/security/class-sucuri-subscriber.php:348 +#: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:151 #, php-format -msgid "The Sucuri firewall API returned the following error: %s" -msgid_plural "The Sucuri firewall API returned the following errors: %s" -msgstr[0] "" +msgid "" +"Failed to detect the following requirement in your theme: closing %1$s." +msgid_plural "" +"Failed to detect the following requirements in your theme: closing %1$s." +msgstr[0] "Nem találtuk meg az alábbi követelményt a témádban: lezáró %1$s." msgstr[1] "" +"Nem találtuk meg az alábbi követelményeket a témádban: lezáró %1$s." -#: inc/classes/traits/trait-updater-api-tools.php:53 -#: inc/deprecated/3.3.php:760 inc/deprecated/3.3.php:769 -#, php-format +#: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:159 msgid "" -"An unexpected error occurred. Something may be wrong with WP-Rocket.me or " -"this server’s configuration. If you continue to have problems, contact support." +"https://docs.wp-rocket.me/article/99-pages-not-cached-or-minify-cssjs-not-" +"working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" msgstr "" +"https://docs.wp-rocket.me/article/99-pages-not-cached-or-minify-cssjs-not-" +"working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" -#: inc/common/admin-bar.php:106 inc/common/admin-bar.php:260 -#: inc/functions/i18n.php:39 inc/functions/i18n.php:48 +#: inc/common/admin-bar.php:124 inc/common/admin-bar.php:259 +#: inc/functions/i18n.php:41 inc/functions/i18n.php:51 msgid "All languages" -msgstr "" +msgstr "Minden nyelv" -#: inc/common/admin-bar.php:133 +#: inc/common/admin-bar.php:160 msgid "Clear this post" -msgstr "" +msgstr "Ürítsd ezen bejegyzést a gyorsítótárból" -#: inc/common/admin-bar.php:147 +#: inc/common/admin-bar.php:174 msgid "Purge this URL" -msgstr "" - -#: inc/common/admin-bar.php:163 -msgid "Purge OPcache" -msgstr "" - -#: inc/common/admin-bar.php:180 -msgid "Regenerate Critical Path CSS" -msgstr "" +msgstr "Ürítsd ezt az URL-t a gyorsítótárból" -#: inc/common/admin-bar.php:196 -msgid "Clear Cloudflare cache" -msgstr "" +#: inc/common/admin-bar.php:194 +msgid "Purge Sucuri cache" +msgstr "Sucuri gyorsítótár ürítése" -#: inc/common/admin-bar.php:217 inc/common/admin-bar.php:272 -#: views/settings/page-sections/dashboard.php:135 +#: inc/common/admin-bar.php:217 inc/common/admin-bar.php:271 +#: views/settings/page-sections/dashboard.php:170 msgid "Preload cache" -msgstr "" - -#: inc/common/admin-bar.php:287 views/settings/partials/documentation.php:13 -msgid "Documentation" -msgstr "" +msgstr "Gyorsítótár előtöltése" -#: inc/common/cron.php:24 -#, php-format -msgid "%s clear" -msgstr "" +#: inc/common/admin-bar.php:296 views/settings/fields/rocket-cdn.php:55 +msgid "Purge RocketCDN cache" +msgstr "Ürítsd a RocketCDN gyorsítótárat" -#: inc/common/cron.php:39 -msgid "monthly" -msgstr "" +#: inc/common/admin-bar.php:309 views/settings/partials/documentation.php:14 +msgid "Documentation" +msgstr "Dokumentáció" -#: inc/common/purge.php:456 -#, php-format -msgid "Cloudflare cache purge error: %s" -msgstr "" +#: inc/deprecated/3.10.php:163 +msgid "OPcache purge failed." +msgstr "OPcache ürítése sikertelen." -#: inc/common/purge.php:461 -msgid "Cloudflare cache successfully purged" -msgstr "" +#: inc/deprecated/3.10.php:168 +msgid "OPcache successfully purged" +msgstr "OPcache sikeresen ürítve" -#: inc/deprecated/3.2.php:51 views/settings/page-sections/imagify.php:35 +#: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 msgid "Activate Imagify" -msgstr "" +msgstr "Aktiváld az Imagify-t" -#: inc/deprecated/3.2.php:51 +#: inc/deprecated/3.2.php:52 msgid "Install Imagify for Free" -msgstr "" +msgstr "Telepítsd az Imagify-t ingyen" -#: inc/deprecated/3.2.php:66 +#: inc/deprecated/3.2.php:67 msgid "" "Speed up your website and boost your SEO by reducing image file sizes " "without losing quality with Imagify." msgstr "" +"Gyorsítsd fel a weboldaladat és javítsd a SEO-dat a képméretek " +"csökkentésével, méghozzá minőségvesztés nélkül az Imagify-vel." -#: inc/deprecated/3.2.php:71 +#: inc/deprecated/3.2.php:72 msgid "More details" -msgstr "" +msgstr "Bővebb információ" -#: inc/deprecated/3.2.php:227 +#: inc/deprecated/3.2.php:228 #, php-format msgid "Sitemap preload: %d pages have been cached." -msgstr "" +msgstr "Oldaltérkép előtöltve: %d oldal lett gyorsítótárazva." -#: inc/deprecated/3.2.php:260 +#: inc/deprecated/3.2.php:261 #, php-format msgid "" "Sitemap preload: %d uncached pages have now been preloaded. (refresh to see " "progress)" msgstr "" +"Oldaltérkép előtöltés: %d eddig gyorsítótárazatlan oldal most már elő van " +"töltve. (frissítsd az oldalt a folyamat követéséhez)" + +#: inc/deprecated/3.4.php:18 +msgid "Choose a domain from the list" +msgstr "Válassz domain nevet a listáról" + +#: inc/deprecated/3.4.php:31 +msgid "No domain available in your Cloudflare account" +msgstr "Nem érhető el domain a Cloudflare fiókodban" + +#: inc/deprecated/3.5.php:81 inc/deprecated/3.5.php:205 +msgid "" +"Curl is disabled on your server. Please ask your host to enable it. This is " +"required for the Cloudflare Add-on to work correctly." +msgstr "" +"A Curl le van tiltva a szervereden. Kérd meg a tárhelyszolgáltatódat, hogy " +"engedélyezze. Erre feltétlenül szükség van a Cloudflare bővítmény " +"működéséhez." + +#: inc/deprecated/3.5.php:89 +#, php-format +msgid "" +"Cloudflare email, API key and Zone ID are not set. Read the " +"%1$sdocumentation%2$s for further guidance." +msgstr "" +"Cloudflare email, API kulcs és zónaazonosító nincs beállítva. Olvasd el a " +"%1$sdokumentációt%2$s bővebb útmutatásért." + +#: inc/deprecated/3.5.php:216 +#, php-format +msgid "" +"Cloudflare email and API key are not set. Read the %1$sdocumentation%2$s for" +" further guidance." +msgstr "" +"Cloudflare email és API kulcs nincs beállítva. Olvasd el a " +"%1$sdokumentációt%2$s bővebb útmutatásért." + +#: inc/deprecated/3.5.php:281 +msgid "Connection to Cloudflare failed" +msgstr "Sikertelen a csatlakozás a Cloudflare-hez." + +#: inc/deprecated/DeprecatedClassTrait.php:54 +#, php-format +msgid "" +"The called class %1$s is deprecated since version %2$s! Use" +" %3$s instead." +msgstr "" +"A hivatkozott osztály %1$s , deprecated azaz elavult a %2$s" +" verzió óta! Használd a %3$s -t helyette." + +#: inc/deprecated/DeprecatedClassTrait.php:65 +#, php-format +msgid "" +"The called class %1$s is deprecated since version %2$s!" +msgstr "" +"A hivatkozott osztály %1$s, deprecated azaz elavult a %2$s " +"verzió óta!" -#: inc/deprecated/deprecated.php:242 +#: inc/deprecated/deprecated.php:240 msgid "JS files with Deferred Loading JavaScript" msgstr "" +"JS fájlok a késleltetett JavaScript betöltés használatával" -#: inc/deprecated/deprecated.php:295 +#: inc/deprecated/deprecated.php:293 msgid "Add URL" -msgstr "" +msgstr "URL hozzáadása" -#: inc/deprecated/deprecated.php:1279 views/settings/fields/import-form.php:22 +#: inc/deprecated/deprecated.php:1277 views/settings/fields/import-form.php:22 msgid "" "Before you can upload your import file, you will need to fix the following " "error:" msgstr "" +"Mielőtt feltöltheted az importálandó fájlodat, ki kell javítanod az alábbi " +"hibát:" -#: inc/deprecated/deprecated.php:1290 views/settings/fields/import-form.php:35 +#: inc/deprecated/deprecated.php:1288 views/settings/fields/import-form.php:35 #, php-format msgid "Choose a file from your computer (maximum size: %s)" -msgstr "" +msgstr "Válassz egy fájlt a gépedről (maximum méret: %s)" -#: inc/deprecated/deprecated.php:1387 +#: inc/deprecated/deprecated.php:1385 msgid "Your Cloudflare credentials are valid." -msgstr "" +msgstr "A Cloudflare belépési adataid érvényesek." -#: inc/deprecated/deprecated.php:1391 +#: inc/deprecated/deprecated.php:1389 msgid "Your Cloudflare credentials are invalid!" -msgstr "" +msgstr "A Cloudflare belépési adataid érvénytelenek!" -#: inc/deprecated/deprecated.php:1455 +#: inc/deprecated/deprecated.php:1453 msgid "Save and optimize" -msgstr "" +msgstr "Mentés és optimizálás" -#: inc/deprecated/deprecated.php:1455 -#: views/settings/page-sections/database.php:27 +#: inc/deprecated/deprecated.php:1453 msgid "Optimize" -msgstr "" +msgstr "Optimizálás" -#: inc/deprecated/deprecated.php:1466 inc/deprecated/deprecated.php:1668 +#: inc/deprecated/deprecated.php:1464 inc/deprecated/deprecated.php:1666 msgctxt "screen-reader-text" msgid "Note:" -msgstr "" +msgstr "Megjegyzés:" -#: inc/deprecated/deprecated.php:1472 +#: inc/deprecated/deprecated.php:1470 msgctxt "screen-reader-text" msgid "Performance tip:" -msgstr "" +msgstr "Teljesítmény tipp:" -#: inc/deprecated/deprecated.php:1478 +#: inc/deprecated/deprecated.php:1476 msgctxt "screen-reader-text" msgid "Third-party feature detected:" -msgstr "" +msgstr "Idegen féltől származó funkció észlelve:" -#: inc/deprecated/deprecated.php:1490 inc/deprecated/deprecated.php:1674 +#: inc/deprecated/deprecated.php:1488 inc/deprecated/deprecated.php:1672 msgctxt "screen-reader-text" msgid "Warning:" -msgstr "" +msgstr "Figyelmeztetés:" -#: inc/deprecated/deprecated.php:1503 +#: inc/deprecated/deprecated.php:1501 msgctxt "button text" msgid "Download settings" -msgstr "" +msgstr "Letöltési beállítások" -#: inc/deprecated/deprecated.php:1533 +#: inc/deprecated/deprecated.php:1531 msgid "Replace site's hostname with:" -msgstr "" +msgstr "Cseréld ki a weboldal címét erre:" -#: inc/deprecated/deprecated.php:1552 inc/deprecated/deprecated.php:1589 -#: inc/deprecated/deprecated.php:1617 views/settings/fields/cnames.php:32 -#: views/settings/fields/cnames.php:63 views/settings/fields/cnames.php:93 +#: inc/deprecated/deprecated.php:1550 inc/deprecated/deprecated.php:1587 +#: inc/deprecated/deprecated.php:1615 views/settings/fields/cnames.php:32 +#: views/settings/fields/cnames.php:64 views/settings/fields/cnames.php:94 msgid "reserved for" -msgstr "" +msgstr "fenntartva erre:" -#: inc/deprecated/deprecated.php:1554 inc/deprecated/deprecated.php:1591 -#: inc/deprecated/deprecated.php:1619 views/settings/fields/cnames.php:35 -#: views/settings/fields/cnames.php:66 views/settings/fields/cnames.php:96 +#: inc/deprecated/deprecated.php:1552 inc/deprecated/deprecated.php:1589 +#: inc/deprecated/deprecated.php:1617 views/settings/fields/cnames.php:35 +#: views/settings/fields/cnames.php:67 views/settings/fields/cnames.php:97 msgid "All files" -msgstr "" +msgstr "Minden fájl" -#: inc/deprecated/deprecated.php:1566 inc/deprecated/deprecated.php:1596 -#: inc/deprecated/deprecated.php:1624 views/settings/fields/cnames.php:47 -#: views/settings/fields/cnames.php:78 views/settings/fields/cnames.php:108 +#: inc/deprecated/deprecated.php:1564 inc/deprecated/deprecated.php:1594 +#: inc/deprecated/deprecated.php:1622 views/settings/fields/cnames.php:47 +#: views/settings/fields/cnames.php:79 views/settings/fields/cnames.php:109 msgid "Images" -msgstr "" +msgstr "Képek" -#: inc/deprecated/deprecated.php:1637 views/settings/fields/cnames.php:119 +#: inc/deprecated/deprecated.php:1635 views/settings/fields/cnames.php:120 msgid "Add CNAME" -msgstr "" +msgstr "CNAME hozzáadása" -#: inc/deprecated/deprecated.php:1708 +#: inc/deprecated/deprecated.php:1706 msgid "Watch the video" -msgstr "" +msgstr "Nézd meg a videót" -#: inc/deprecated/deprecated.php:1773 +#: inc/deprecated/deprecated.php:1771 msgid "Basic" -msgstr "" +msgstr "Egyszerű" -#: inc/deprecated/deprecated.php:1774 +#: inc/deprecated/deprecated.php:1772 msgid "Static Files" -msgstr "" +msgstr "Statikus fájlok" -#: inc/deprecated/deprecated.php:1776 +#: inc/deprecated/deprecated.php:1774 msgid "Advanced" -msgstr "" +msgstr "Haladó" -#: inc/deprecated/deprecated.php:1946 +#: inc/deprecated/deprecated.php:1944 #, php-format msgid "" "%1$s %2$s requires at least PHP %3$s to function properly. To use this " @@ -2145,8 +3627,12 @@ msgid "" "higher. If you are not able to upgrade, you can rollback to the previous " "version by using the button below." msgstr "" +"A %1$s %2$s minimum PHP%3$s verziót igényelnek a megfelelő működéshez. " +"Kérlek kérd meg a tárhelyszolgáltatódat hogy frissítse a webszerveredet PHP " +"%3$s vagy újabb verzióra. Ha nem lehetséges a frissítése akkor " +"visszaállhatsz a korábbi WP Rocket verzióra az alábbi gomb megnyomásával." -#: inc/functions/admin.php:23 +#: inc/functions/admin.php:21 msgid "" "There seems to be an issue validating your license. Please see the error " "message below." @@ -2154,790 +3640,802 @@ msgid_plural "" "There seems to be an issue validating your license. You can see the error " "messages below." msgstr[0] "" +"Probléma merült fel a licenszed érvényesítése közben. Kérlek tekintsd meg az" +" alábbi hibaüzenetet:" msgstr[1] "" +"Problémák merültek fel a licenszed érvényesítése közben. Kérlek tekintsd meg" +" az alábbi hibaüzenetet:" #: inc/functions/admin.php:361 msgid "Server type:" -msgstr "" +msgstr "Szerver típusa:" #: inc/functions/admin.php:370 msgid "PHP version number:" -msgstr "" +msgstr "PHP verziószám:" #: inc/functions/admin.php:379 msgid "WordPress version number:" -msgstr "" +msgstr "WordPress verziószám:" #: inc/functions/admin.php:388 msgid "WordPress multisite:" -msgstr "" +msgstr "WordPress multisite:" #: inc/functions/admin.php:397 msgid "Current theme:" -msgstr "" +msgstr "Jelenlegi téma:" #: inc/functions/admin.php:406 msgid "Current site language:" -msgstr "" +msgstr "Jelenlegi oldal nyelv:" #: inc/functions/admin.php:415 msgid "Active plugins:" -msgstr "" - -#: inc/functions/admin.php:418 -msgid "Plugin names of all active plugins" -msgstr "" - -#: inc/functions/admin.php:424 -msgid "Anonymized WP Rocket settings:" -msgstr "" - -#: inc/functions/admin.php:427 -msgid "Which WP Rocket settings are active" -msgstr "" - -#: inc/functions/cloudflare.php:14 -msgid "" -"Curl functions are disabled, they are required for the Cloudflare Add-on to " -"work correctly." -msgstr "" +msgstr "Aktív bővítmények:" -#: inc/functions/cloudflare.php:21 -msgid "Cloudflare Email and API key are not set" -msgstr "" - -#: inc/functions/cloudflare.php:52 -#, php-format -msgid "Missing Cloudflare zone ID. %s could not fix this automatically." -msgstr "" - -#: inc/functions/cloudflare.php:58 -#, php-format -msgid "Read the %1$sdocumentation%2$s for further guidance." -msgstr "" +#: inc/functions/admin.php:418 +msgid "Plugin names of all active plugins" +msgstr "Aktív bővítmények nevei:" -#: inc/functions/cloudflare.php:60 -msgid "" -"https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" -"cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket" -msgstr "" +#: inc/functions/admin.php:424 +msgid "Anonymized WP Rocket settings:" +msgstr "Anonimizált WP Rocket beállítások:" -#: inc/functions/cloudflare.php:100 -msgid "Connection to Cloudflare failed" -msgstr "" +#: inc/functions/admin.php:427 +msgid "Which WP Rocket settings are active" +msgstr "Melyik WP Rocket beállítások aktívak" -#: inc/functions/cloudflare.php:122 -msgid "Choose a domain from the list" -msgstr "" +#: inc/functions/options.php:473 +msgid "The provided license data are not valid." +msgstr "A megadott licensz adatok nem érvényesek." -#: inc/functions/cloudflare.php:135 -msgid "No domain available in your Cloudflare account" -msgstr "" +#: inc/functions/options.php:476 +#, php-format +msgid "To resolve, please %1$scontact support%2$s." +msgstr "A megoldáshoz, kérlek %1$skeresd az ügyfélszolgálatunkat%2$s." -#: inc/functions/options.php:580 inc/functions/options.php:619 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from " "your website." msgstr "" +"A licensz érvényesítése sikertelen. A szerverünk nem tudja feldolgozni a " +"weboldaladtól érkező kérést." -#: inc/functions/options.php:580 inc/functions/options.php:619 +#: inc/functions/options.php:535 #, php-format msgid "" -"Try clicking %1$sSave Changes%2$s below. If the error persists, follow " +"Try clicking %1$sValidate License%2$s below. If the error persists, follow " "%3$sthis guide%4$s." msgstr "" +"Próbálj a %1$sLicensz érvényesítése%2$s gombra kattintani alább. Ha a hiba " +"most is fennáll, akkor %3$skövesd ezt a leírást%4$s." -#: inc/functions/options.php:596 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" msgstr "" +"A licensz érvényesítése sikertelen. Lehet hogy nem-licenszelt verziót " +"használsz ebből a bővítményből. Kérlek tedd az alábbiakat:" -#: inc/functions/options.php:596 inc/functions/options.php:638 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" -msgstr "" +msgstr "Jelentkezz be a WP Rocket %1$sfiókodba%2$s" -#: inc/functions/options.php:596 inc/functions/options.php:638 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" -msgstr "" +msgstr "Töltsd le a zip fájlt" -#: inc/functions/options.php:596 inc/functions/options.php:638 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" -msgstr "" +msgstr "Újratelepítés" -#: inc/functions/options.php:596 +#: inc/functions/options.php:551 #, php-format msgid "" "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." -msgstr "" +msgstr "Ha nincs WP Rocket fiókod, kérlek %1$svásárolj licenszt%2$s." -#: inc/functions/options.php:604 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" +"A licensz érvényesítése sikertelen. Ez a felhasználói fiók nem létezik az " +"adatbázisunkban." -#: inc/functions/options.php:604 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." -msgstr "" +msgstr "A megoldáshoz kérlek vedd fel a kapcsolatot az ügyfélszolgálatunkkal." -#: inc/functions/options.php:612 -msgid "License validation failed. This user account is blacklisted." +#: inc/functions/options.php:567 +msgid "License validation failed. This user account is blocked." msgstr "" +"Licensz érvényesítése sikertelen. Ez a felhasználói fiók le van tiltva." -#: inc/functions/options.php:612 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." +msgstr "Kérlek kövesd %1$sezt a leírást %2$s bővebb információért." + +#: inc/functions/options.php:574 +#, php-format +msgid "" +"Try clicking %1$sSave Changes%2$s below. If the error persists, follow " +"%3$sthis guide%4$s." msgstr "" +"Kattints a %1$sVáltozások mentése%2$s gombra. Ha a továbbra is fennáll, " +"kövesd %3$sezt a leírást%4$s." -#: inc/functions/options.php:632 +#: inc/functions/options.php:587 msgid "Your license is not valid." -msgstr "" +msgstr "A licenszed érvénytelen." -#: inc/functions/options.php:632 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." -msgstr "" +msgstr "Ellenőrizd, hogy van-e érvényes %1$sWP Rocket licenszed%2$s." -#: inc/functions/options.php:634 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "" +"Már felvettél annyi weboldalt, amennyid a jelenlegi licenszed lehetővé tett." -#: inc/functions/options.php:634 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this " "domain." msgstr "" +"Bővítsd a %1$sfiókodat%2$s vagy %3$shelyezd át%2$s a licenszedet erre a " +"domainre." -#: inc/functions/options.php:636 +#: inc/functions/options.php:591 msgid "This website is not allowed." -msgstr "" +msgstr "Ez a weboldal nincs engedélyezve." -#: inc/functions/options.php:636 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." -msgstr "" +msgstr "Kérlek %1$svedd fel a kapcsolatot az ügyfélszolgálatunkkal%2$s." -#: inc/functions/options.php:638 +#: inc/functions/options.php:593 msgid "This license key is not recognized." -msgstr "" +msgstr "Ez a licensz kulcs ismeretlen." -#: inc/functions/options.php:638 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "" +"Ha a probléama továbbra is fennáll, kérlek %1$svedd fel a kapcsolatot az " +"ügyfélszolgálatunkkal%2$s." -#: inc/functions/options.php:644 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" -msgstr "" +msgstr "Licensz érvényesítés sikertelen: %s" #: inc/vendors/classes/class-imagify-partner.php:531 msgid "Plugin installed successfully." -msgstr "" +msgstr "Bővítmény sikeresen telepítve." #: inc/vendors/classes/class-imagify-partner.php:532 msgid "Sorry, you are not allowed to install plugins on this site." msgstr "" +"Elnézést, nincs jogosultságod bővítményeket telepíteni erre a weboldalra." #: inc/vendors/classes/class-imagify-partner.php:533 msgid "Sorry, you are not allowed to do that." -msgstr "" +msgstr "Elnézést, nincs jogosultságod ezt tenni." #: inc/vendors/classes/class-imagify-partner.php:534 msgid "Plugin install failed." -msgstr "" +msgstr "Bővítmény telepítése sikertelen." #: inc/vendors/classes/class-imagify-partner.php:535 msgid "Go back" -msgstr "" - -#: views/deactivation-intent/form.php:20 -msgid "Return" -msgstr "" - -#: views/deactivation-intent/form.php:21 -msgid "WP Rocket feedback" -msgstr "" - -#: views/deactivation-intent/form.php:23 -msgid "Close" -msgstr "" +msgstr "Vissza" -#: views/deactivation-intent/form.php:27 -msgid "May we have a little info about why you are deactivating?" -msgstr "" +#: views/cpcss/activate-cpcss-mobile.php:13 +msgid "Load CSS asynchronously for mobile" +msgstr "CSS aszinkron betöltés mobilhoz" -#: views/deactivation-intent/form.php:31 +#: views/cpcss/activate-cpcss-mobile.php:14 msgid "" -"It is a temporary deactivation. I am just debugging an " -"issue." -msgstr "" - -#: views/deactivation-intent/form.php:35 -msgid "The plugin broke my layout or some functionality." +"Your website currently uses the same Critical Path CSS for both desktop and " +"mobile." msgstr "" +"A weboldalad jelenleg ugyanazt a kritikus útvonalú CSS-t használja mind " +"asztali mind mobil nézet számára." -#: views/deactivation-intent/form.php:39 -msgid "My PageSpeed or GTMetrix score did not improve." +#: views/cpcss/activate-cpcss-mobile.php:15 +msgid "Click the button to enable mobile-specific CPCSS for your site." msgstr "" +"Kattints a gombra hogy engedélyezhesd a mobil-specifikus CPCSS-t az " +"oldaladhoz." -#: views/deactivation-intent/form.php:43 -msgid "I did not notice a difference in loading time." -msgstr "" - -#: views/deactivation-intent/form.php:47 -msgid "The plugin is too complicated to configure." -msgstr "" - -#: views/deactivation-intent/form.php:51 -msgid "My host already has its own caching system." -msgstr "" - -#: views/deactivation-intent/form.php:53 -msgid "What is the name of your web host?" -msgstr "" - -#: views/deactivation-intent/form.php:58 -msgid "Other" +#: views/cpcss/activate-cpcss-mobile.php:20 +#: views/settings/enable-google-fonts.php:19 +#, php-format +msgid "" +"This is a one-time action and this button will be removed afterwards. " +"%1$sMore info%2$s" msgstr "" +"Ez egy egyszeri művelet és a gomb el fog tűnni utána. %1$sBővebb " +"információ%2$s." -#: views/deactivation-intent/form.php:60 +#: views/cpcss/activate-cpcss-mobile.php:30 +#, php-format msgid "" -"Let us know why you are deactivating WP Rocket so we can improve the plugin" +"Your site is now using mobile-specific critical path CSS. %1$sMore info%2$s" msgstr "" +"A weboldalad most már mobil-specifikus kritikus útvonalú CSS-t használ. " +"%1$sBővebb információ%2$s" -#: views/deactivation-intent/form.php:68 -msgid "The plugin broke my layout or some functionality" -msgstr "" +#: views/cpcss/activate-cpcss-mobile.php:39 +msgid "Generate Mobile Specific CPCSS" +msgstr "Generáld a mobil-specifikus CPCSS-t" -#: views/deactivation-intent/form.php:69 -msgid "" -"This type of issue can usually be fixed by deactivating some options in WP " -"Rocket." -msgstr "" +#: views/cpcss/metabox/container.php:19 +msgid "Critical Path CSS" +msgstr "Kritikus útvonalú CSS" -#: views/deactivation-intent/form.php:70 -msgid "" -"Click \"Apply Safe Mode\" to quickly disable LazyLoad, File Optimization, " -"Embeds and CDN options. Then check your site to see if the issue has " -"resolved." +#: views/cpcss/metabox/generate.php:23 +#, php-format +msgid "Generate specific Critical Path CSS for this post. %1$sMore info%2$s" msgstr "" +"Generálj specifikus kritikus útvonalú CSS-t ezen bejegyzéshez. %1$sBővebb " +"információ%2$s" -#: views/deactivation-intent/form.php:72 -msgid "Apply safe mode" +#: views/cpcss/metabox/generate.php:33 +#, php-format +msgid "This post uses specific Critical Path CSS. %1$sMore info%2$s" msgstr "" +"Ez a bejegyzés specifikus kritikus útvonalú CSS-t használ. %1$sBővebb " +"információ%2$s" -#: views/deactivation-intent/form.php:75 -msgid "Safe mode applied." -msgstr "" +#: views/cpcss/metabox/generate.php:56 +msgid "Revert back to the default CPCSS" +msgstr "Visszaváltás az alapértelmezett CPCSS-re" -#: views/deactivation-intent/form.php:76 -msgid "Review your site in a private/logged out browser window." -msgstr "" +#: views/deactivation-intent/form.php:21 +msgid "Facing an issue?" +msgstr "Problémát tapasztalsz?" -#: views/deactivation-intent/form.php:78 +#: views/deactivation-intent/form.php:24 msgid "" -"Is the issue fixed? Now you can reactivate options one at a time to " -"determine which one caused the problem. More info" -msgstr "" - -#: views/deactivation-intent/form.php:81 -msgid "My PageSpeed or GT Metrix score did not improve" +"It is not always necessary to deactivate WP Rocket when facing any issues. " +"Most of them can be fixed by deactivating only some options." msgstr "" +"Nem mindig szükséges deaktiválni a WP Rocket-et, ha problémát tapasztalsz. A" +" legtöbb megoldható csupán néhány opció kikapcsolásával." -#: views/deactivation-intent/form.php:82 +#: views/deactivation-intent/form.php:29 +#, php-format msgid "" -"WP Rocket makes your site faster. The PageSpeed grade or GTMetrix score are " -"not indicators of speed. Neither your real visitors, nor Google will ever " -"see your website’s “grade”. Speed is the only metric that matters for SEO " -"and conversions." +"Our advice? Instead of deactivating WP Rocket, use our %1$sSafe Mode%2$s to " +"quickly disable LazyLoad, File Optimization, and CDN options. Then check to " +"see if your issue is resolved." msgstr "" +"A mi tippünk: ahelyett hogy deaktiválnád a WP Rocket-et, használd a " +"%1$scsökkentett módunkat%2$s hogy gyorsan letilthasd a LazyLoad-ot, a Fájl " +"Optimizálást és a CDN beállításokat. És ezután nézd meg, hogy megoldódott-e " +"a problémád." -#: views/deactivation-intent/form.php:83 -msgid "Yoast, the expert on all things related to SEO for WordPress states:" +#: views/deactivation-intent/form.php:35 +msgid "Do you want to use our Safe Mode to troubleshoot WP Rocket?" msgstr "" +"Szeretnéd használni a csökkentett módunkat a WP Rocket hibaelhárításához?" -#: views/deactivation-intent/form.php:84 -msgid "" -"[Google] just looks at how fast your website loads for users, so you don’t " -"have to obsess over that specific score. You have to make sure your website " -"is as fast as you can get it." -msgstr "" +#: views/deactivation-intent/form.php:44 +#, php-format +msgid "Yes, apply \"%1$sSafe Mode%2$s\"" +msgstr "Igen, kapcsold be a \"%1$sCsökkentett Mód%2$s\"-ot" -#: views/deactivation-intent/form.php:87 -msgid "" -"How to measure the load time of your site:
https" -"://wp-rocket.me/blog/correctly-measure-websites-page-load-time/" -msgstr "" +#: views/deactivation-intent/form.php:52 +msgid "No, deactivate and snooze this message for" +msgstr "Nem, deaktiváld a bővítmény és tüntesd el ezt az üzenetet ennyi időre" -#: views/deactivation-intent/form.php:88 -msgid "" -"Why you should not be chasing a PageSpeed score:
https://wp-rocket.me/blog/the-truth-about-google-" -"pagespeed-insights/" -msgstr "" +#: views/deactivation-intent/form.php:54 +msgid "1 day" +msgstr "1 nap" -#: views/deactivation-intent/form.php:91 -msgid "I did not notice a difference in loading time" -msgstr "" +#: views/deactivation-intent/form.php:55 +msgid "7 days" +msgstr "7 nap" -#: views/deactivation-intent/form.php:92 -msgid "" -"Make sure you look at your site while logged out to see the fast, cached " -"pages!" -msgstr "" +#: views/deactivation-intent/form.php:56 +msgid "30 days" +msgstr "30 nap" -#: views/deactivation-intent/form.php:93 -msgid "" -"The best way to see the improvement WP Rocket provides is to perform speed " -"tests. Follow this guide to correctly measure the load time of your " -"website:
https://wp-rocket.me/blog/correctly-measure-websites-page-" -"load-time/" -msgstr "" +#: views/deactivation-intent/form.php:57 +msgid "Forever" +msgstr "Örökre" -#: views/deactivation-intent/form.php:96 -msgid "The plugin is too complicated to configure" -msgstr "" +#: views/deactivation-intent/form.php:63 +msgid "Cancel" +msgstr "Mégse" -#: views/deactivation-intent/form.php:97 -msgid "We are sorry to hear you are finding it difficult to use WP Rocket." -msgstr "" +#: views/deactivation-intent/form.php:64 +msgid "Confirm" +msgstr "Megerősítés" -#: views/deactivation-intent/form.php:98 -#, php-format -msgid "" -"WP Rocket is the only caching plugin that provides 80% of best practices in " -"speed optimization, by default. That means you do not have to do anything " -"besides activate WP Rocket and your site will already be faster!" -msgstr "" +#: views/settings/enable-google-fonts.php:13 +msgid "Enable Google Font Optimization" +msgstr "Engedélyezd a Google Font optimizálást" -#: views/deactivation-intent/form.php:99 +#: views/settings/enable-google-fonts.php:14 msgid "" -"The additional options are not required for a fast site, they are for fine-" -"tuning." +"Improves font performance and combines multiple font requests to reduce the " +"number of HTTP requests." msgstr "" +"Javítja a betűtípus-betöltés teljesítményét és összevonja a különböző " +"betűtípusok lekérését hogy csökkentse a HTTP kérések számát." -#: views/deactivation-intent/form.php:100 +#: views/settings/enable-google-fonts.php:29 +#, php-format msgid "" -"To see the benefit WP Rocket is already providing, measure the speed of your" -" site using a tool like Pingdom:
https" -"://wp-rocket.me/blog/correctly-measure-websites-page-load-time/" -msgstr "" - -#: views/deactivation-intent/form.php:105 -msgid "Send & Deactivate" -msgstr "" - -#: views/deactivation-intent/form.php:106 -msgid "Cancel" +"Google Fonts Optimization is now enabled for your site. %1$sMore info%2$s" msgstr "" +"A Google Font optimizálás engedélyezve van az oldalad számára. %1$sBővebb " +"információ%2$s." -#: views/deactivation-intent/form.php:108 -msgid "Skip & Deactivate" -msgstr "" +#: views/settings/enable-google-fonts.php:38 +msgid "Optimize Google Fonts" +msgstr "Optimizáld a Google Font-okat" #: views/settings/fields/cache-lifespan.php:26 msgid "Clear cache after" -msgstr "" +msgstr "Ürítsd a gyorsítótárat ennyi idő után:" -#: views/settings/fields/cnames.php:49 views/settings/fields/cnames.php:80 -#: views/settings/fields/cnames.php:110 +#: views/settings/fields/cnames.php:49 views/settings/fields/cnames.php:81 +#: views/settings/fields/cnames.php:111 msgid "CSS & JavaScript" -msgstr "" +msgstr "CSS & JavaScript" -#: views/settings/fields/cnames.php:50 views/settings/fields/cnames.php:81 -#: views/settings/fields/cnames.php:111 +#: views/settings/fields/cnames.php:50 views/settings/fields/cnames.php:82 +#: views/settings/fields/cnames.php:112 msgid "JavaScript" -msgstr "" +msgstr "JavaScript" -#: views/settings/fields/cnames.php:51 views/settings/fields/cnames.php:82 -#: views/settings/fields/cnames.php:112 +#: views/settings/fields/cnames.php:51 views/settings/fields/cnames.php:83 +#: views/settings/fields/cnames.php:113 msgid "CSS" -msgstr "" +msgstr "CSS" #: views/settings/fields/import-form.php:29 msgid "Import settings" -msgstr "" - -#: views/settings/fields/one-click-addon.php:39 -#: views/settings/fields/rocket-addon.php:31 -#: views/settings/fields/sliding-checkbox.php:24 views/settings/page.php:54 -msgctxt "Active state of checkbox" -msgid "On" -msgstr "" - -#: views/settings/fields/one-click-addon.php:40 -#: views/settings/fields/rocket-addon.php:32 -#: views/settings/fields/sliding-checkbox.php:25 views/settings/page.php:55 -msgctxt "Inactive state of checkbox" -msgid "Off" -msgstr "" +msgstr "Beállítások importálása" -#: views/settings/fields/one-click-addon.php:41 +#: views/settings/fields/one-click-addon.php:43 #: views/settings/fields/rocket-addon.php:33 msgid "Add-on status" -msgstr "" +msgstr "Bővítmény állapota" #: views/settings/fields/rocket-addon.php:56 msgid "Modify options" +msgstr "Beállítások módosítása" + +#: views/settings/fields/rocket-cdn.php:29 +#: views/settings/fields/rocket-cdn.php:41 +msgid "CDN CNAME" +msgstr "CDN CNAME" + +#: views/settings/fields/rocket-cdn.php:62 +#, php-format +msgid "Purges RocketCDN cached resources for your website. %s" msgstr "" +"Üríti a RocketCDN által gyorsítótárazott erőforrásokat a weboldaladhoz.%s" -#: views/settings/page-sections/cloudflare.php:26 +#: views/settings/fields/rocket-cdn.php:63 +#: views/settings/page-sections/cloudflare.php:36 +#: views/settings/page-sections/sucuri.php:37 +msgid "Learn more" +msgstr "Tudj meg többet." + +#: views/settings/fields/rocket-cdn.php:72 +msgid "Clear all RocketCDN cache files" +msgstr "Töröld az összes RocketCDN gyorsítótár fájlt" + +#: views/settings/page-sections/cloudflare.php:27 msgid "Cloudflare Cache" -msgstr "" +msgstr "Cloudflare Cache" -#: views/settings/page-sections/cloudflare.php:33 -#: views/settings/page-sections/sucuri.php:34 +#: views/settings/page-sections/cloudflare.php:35 +#: views/settings/page-sections/sucuri.php:36 #, php-format msgid "Purges cached resources for your website. %s" -msgstr "" +msgstr "Üríti az oldaladhoz tartozó gyorsítótárazott erőforrásokat. %s" -#: views/settings/page-sections/cloudflare.php:34 +#: views/settings/page-sections/cloudflare.php:36 msgid "https://support.cloudflare.com/hc/en-us/articles/200169246" -msgstr "" - -#: views/settings/page-sections/cloudflare.php:34 -#: views/settings/page-sections/sucuri.php:35 -msgid "Learn more" -msgstr "" +msgstr "https://support.cloudflare.com/hc/en-us/articles/200169246" -#: views/settings/page-sections/cloudflare.php:40 +#: views/settings/page-sections/cloudflare.php:45 msgid "Clear all Cloudflare cache files" -msgstr "" +msgstr "Üríti az összes Cloudflare -s gyorsítótárazott fájlt" -#: views/settings/page-sections/dashboard.php:37 +#: views/settings/page-sections/dashboard.php:38 msgid "Congratulations!" -msgstr "" +msgstr "Gratulálunk!" -#: views/settings/page-sections/dashboard.php:39 +#: views/settings/page-sections/dashboard.php:40 msgid "WP Rocket is now activated and already working for you." -msgstr "" +msgstr "A WP Rocket most már aktiválva van, és már dolgozik is Neked." -#: views/settings/page-sections/dashboard.php:41 +#: views/settings/page-sections/dashboard.php:42 msgid "Your website should be loading faster now!" -msgstr "" +msgstr "A weboldalad most már gyorsabb lett!" -#: views/settings/page-sections/dashboard.php:43 +#: views/settings/page-sections/dashboard.php:44 #, php-format msgid "" -"To guarantee fast websites, WP Rocket applies 80% of web performance best " -"practices." +"To guarantee fast websites, WP Rocket automatically applies 80% of web " +"performance best practices." msgstr "" +"Garantáljuk a gyors weboldalak! Ezért a WP Rocket már alapból, magától " +"alkalmazza a web-teljesítmény gyorsítási tippek 80%-át." -#: views/settings/page-sections/dashboard.php:43 +#: views/settings/page-sections/dashboard.php:44 msgid "" "We also enable options that provide immediate benefits to your website." msgstr "" +"Továbbá olyan opciókat is engedélyezünk amik azonnali előnyöket nyújtanak a " +"weboldaladnak." -#: views/settings/page-sections/dashboard.php:44 +#: views/settings/page-sections/dashboard.php:45 msgid "Continue to the options to further optimize your site!" -msgstr "" +msgstr "Lépj tovább a beállításokba hogy tovább optimizálhasd az oldaladat!" -#: views/settings/page-sections/dashboard.php:54 +#: views/settings/page-sections/dashboard.php:62 msgid "My Account" -msgstr "" +msgstr "Fiókom" -#: views/settings/page-sections/dashboard.php:60 +#: views/settings/page-sections/dashboard.php:68 msgid "Refresh info" -msgstr "" +msgstr "Frissítés" + +#: views/settings/page-sections/dashboard.php:86 +msgid "with" +msgstr "vele:" -#: views/settings/page-sections/dashboard.php:74 +#: views/settings/page-sections/dashboard.php:100 msgid "Expiration Date" -msgstr "" +msgstr "Lejárat dátuma:" -#: views/settings/page-sections/dashboard.php:83 +#: views/settings/page-sections/dashboard.php:110 msgid "View my account" -msgstr "" +msgstr "Fiókom megtekintése" -#: views/settings/page-sections/dashboard.php:103 +#: views/settings/page-sections/dashboard.php:137 msgid "Quick Actions" -msgstr "" +msgstr "Gyors műveletek" -#: views/settings/page-sections/dashboard.php:109 +#: views/settings/page-sections/dashboard.php:144 msgid "Remove all cached files" -msgstr "" +msgstr "Töröld az összes gyorsítótárazott fájlt" -#: views/settings/page-sections/dashboard.php:129 +#: views/settings/page-sections/dashboard.php:164 msgid "Start cache preloading" -msgstr "" - -#: views/settings/page-sections/dashboard.php:147 -msgid "Purge OPCache content" -msgstr "" +msgstr "Gyorsítótár előtöltés megkezdése" -#: views/settings/page-sections/dashboard.php:153 -msgid "Purge OPCache" -msgstr "" - -#: views/settings/page-sections/dashboard.php:164 -#: views/settings/page-sections/dashboard.php:170 +#: views/settings/page-sections/dashboard.php:182 +#: views/settings/page-sections/dashboard.php:188 msgid "Regenerate Critical CSS" -msgstr "" +msgstr "Kritikus útvonalú CSS újragenerálása" + +#: views/settings/page-sections/dashboard.php:200 +msgid "Remove Used CSS Cache" +msgstr "Töröld a felhasznált CSS-ek gyorsítótárát" -#: views/settings/page-sections/dashboard.php:186 +#: views/settings/page-sections/dashboard.php:223 msgid "Frequently Asked Questions" -msgstr "" +msgstr "Gyakori kérdések" -#: views/settings/page-sections/dashboard.php:199 +#: views/settings/page-sections/dashboard.php:237 msgid "Still cannot find a solution?" -msgstr "" +msgstr "Nem találtál megoldást?" -#: views/settings/page-sections/dashboard.php:200 +#: views/settings/page-sections/dashboard.php:238 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" +"Küldj egy levelet és segítséget kapsz a barátságos és okos Rakétáinktól" -#: views/settings/page-sections/dashboard.php:208 +#: views/settings/page-sections/dashboard.php:246 msgid "Ask support" -msgstr "" +msgstr "Kérdezd meg az ügyfélszolgálatot" -#: views/settings/page-sections/database.php:24 +#: views/settings/page-sections/database.php:25 msgid "Backup your database before you run a cleanup!" -msgstr "" +msgstr "Mentsd le az adatbázisodat mielőtt karbantartást indítassz!" -#: views/settings/page-sections/database.php:25 +#: views/settings/page-sections/database.php:26 msgid "" "Once a database optimization has been performed, there is no way to undo it." -msgstr "" +msgstr "Amint az adatbázisoptimizálás kész, nincs lehetőség visszavonni." + +#: views/settings/page-sections/database.php:28 +msgid "Save Changes and Optimize" +msgstr "Mentsd a változásokat és optimizálás indítása" -#: views/settings/page-sections/imagify.php:20 +#: views/settings/page-sections/imagify.php:21 #, php-format msgid "" "%1$sWP ROCKET%2$s created %3$sIMAGIFY%4$s %1$sfor best-in-class image " "optimization.%2$s" msgstr "" +"%1$sWP ROCKET%2$s megalkotta az %3$sIMAGIFY%4$s %1$s-t a legjobb kép " +"optimizáláshoz.%2$s" -#: views/settings/page-sections/imagify.php:23 +#: views/settings/page-sections/imagify.php:24 msgid "" "Compress image to make your website faster, all while maintaining image " "quality." msgstr "" +"Tömörítsd a képeket hogy gyorsabbá tedd a weboldaladat, mindezd úgy hogy a " +"képek minősége nem változik." -#: views/settings/page-sections/imagify.php:24 +#: views/settings/page-sections/imagify.php:25 msgid "More on Imagify:" -msgstr "" +msgstr "Bővebben az Imagify-ről:" -#: views/settings/page-sections/imagify.php:26 +#: views/settings/page-sections/imagify.php:27 msgid "Imagify Plugin Page" -msgstr "" +msgstr "Imagify bővítmény oldal" -#: views/settings/page-sections/imagify.php:27 +#: views/settings/page-sections/imagify.php:28 msgid "Imagify Website" -msgstr "" +msgstr "Imagify weboldal" -#: views/settings/page-sections/imagify.php:28 +#: views/settings/page-sections/imagify.php:29 msgid "Review of Image Compression Plugins" -msgstr "" +msgstr "Képtömörítő bővítmények áttekintése" -#: views/settings/page-sections/imagify.php:37 +#: views/settings/page-sections/imagify.php:38 msgid "Install Imagify" -msgstr "" +msgstr "Imagify telepítése" -#: views/settings/page-sections/license.php:21 +#: views/settings/page-sections/license.php:22 msgid "WP Rocket was not able to automatically validate your license." -msgstr "" +msgstr "WP Rocket nem tudta automatikusan érvényesíteni a licenszedet" -#: views/settings/page-sections/license.php:26 +#: views/settings/page-sections/license.php:29 #, php-format -msgid "" -"Follow this tutorial, or contact support to get the engine started." -msgstr "" +msgid "Follow this %1$s, or contact %2$s to get the engine started." +msgstr "Kövesd ezt%1$s, vagy vedd fel a kapcsolatot%2$s a kezdéshez." + +#: views/settings/page-sections/license.php:32 +#, php-format +msgid "%1$s%2$s%3$stutorial%4$s" +msgstr "%1$s%2$s%3$sleírás%4$s" -#: views/settings/page-sections/license.php:26 +#: views/settings/page-sections/license.php:34 msgid "" "https://docs.wp-rocket.me/article/100-resolving-problems-with-license-" "validation/?utm_source=wp_plugin&utm_medium=wp_rocket" msgstr "" +"https://docs.wp-rocket.me/article/100-resolving-problems-with-license-" +"validation/?utm_source=wp_plugin&utm_medium=wp_rocket" + +#: views/settings/page-sections/license.php:40 +#, php-format +msgid "%1$s%2$s%3$ssupport%4$s" +msgstr "%1$s%2$s%3$stámogatás%4$s" -#: views/settings/page-sections/sucuri.php:41 +#: views/settings/page-sections/sucuri.php:46 msgid "Clear all Sucuri cache files" -msgstr "" +msgstr "Ürítsd a Sucuri gyorsítótár fájlokat" #: views/settings/page-sections/tools.php:20 #, php-format msgid "Files size: %1$s. Number of entries: %2$s." -msgstr "" +msgstr "Fájlok mérete: %1$s. Bejegyzések száma: %2$s." #: views/settings/page-sections/tools.php:23 #, php-format msgid "%1$sDownload the file%2$s." -msgstr "" +msgstr "%1$sTöltsd le a fájlt %2$s." #: views/settings/page-sections/tools.php:26 #, php-format msgid "%1$sDelete the file%2$s." -msgstr "" +msgstr "%1$sTöröld a fájlt%2$s." #: views/settings/page-sections/tools.php:37 msgid "Export settings" -msgstr "" +msgstr "Beállítások exportálása" #: views/settings/page-sections/tools.php:38 msgid "Download a backup file of your settings" -msgstr "" +msgstr "Tölts le egy tartalék másolatot a beállításaidról" -#: views/settings/page-sections/tools.php:43 +#: views/settings/page-sections/tools.php:46 msgid "Download settings" -msgstr "" +msgstr "Letöltési beállítások" -#: views/settings/page-sections/tools.php:56 +#: views/settings/page-sections/tools.php:60 msgid "Rollback" -msgstr "" +msgstr "Visszaállás korábbi verzióra" -#: views/settings/page-sections/tools.php:60 +#: views/settings/page-sections/tools.php:64 #, php-format msgid "Has version %s caused an issue on your website?" -msgstr "" +msgstr "Problémát okozott a %s-s verzió a weboldaladon?" -#: views/settings/page-sections/tools.php:62 +#: views/settings/page-sections/tools.php:69 +#, php-format msgid "" -"You can rollback to the previous major version here.
Then send us a " -"support request." -msgstr "" +"You can rollback to the previous major version here.%sThen send us a support" +" request." +msgstr "Visszatérhetsz a korábbi főverzióra itt. %s Utána írj nekünk levelet." -#: views/settings/page-sections/tools.php:69 +#: views/settings/page-sections/tools.php:80 #, php-format msgid "Reinstall version %s" -msgstr "" +msgstr "Telepítsd újra a %s verziót" -#: views/settings/page-sections/tools.php:85 +#: views/settings/page-sections/tools.php:106 msgid "Debug mode" -msgstr "" +msgstr "Hibakereső üzemmód" -#: views/settings/page-sections/tools.php:90 +#: views/settings/page-sections/tools.php:111 msgid "Create a debug log file." -msgstr "" +msgstr "Hibakereső naplófájl létrehozása" -#: views/settings/page.php:16 -msgid "WP Rocket Settings" -msgstr "" +#: views/settings/page-sections/tutorials.php:13 +#: views/settings/partials/getting-started.php:18 +msgid "Getting Started" +msgstr "Kezdjük el" -#: views/settings/page.php:30 -#, php-format -msgid "version %s" -msgstr "" +#: views/settings/page-sections/tutorials.php:15 +msgid "Getting Started with WP Rocket" +msgstr "Vegyük használatba a WP Rocket-et" -#: views/settings/page.php:40 -msgid "Save Changes" -msgstr "" +#: views/settings/page-sections/tutorials.php:16 +#: views/settings/partials/getting-started.php:12 +msgid "Finding the Best Settings for Your Site" +msgstr "Találjuk meg a legjobb beállításokat a weboldaladhoz" -#: views/settings/page.php:56 -msgid "Show Sidebar" +#: views/settings/page-sections/tutorials.php:17 +#: views/settings/partials/getting-started.php:13 +msgid "How to Check if WP Rocket is Caching Your Site" msgstr "" +"Hogyan győződjünk meg arról hogy a WP Rocket gyorsítótárazza az oldaladat" -#: views/settings/page.php:75 -msgid "Thanks for choosing to participate in the WP Rocket beta program!" -msgstr "" +#: views/settings/page-sections/tutorials.php:18 +#: views/settings/partials/getting-started.php:14 +msgid "How to Measure the Speed of Your Site" +msgstr "Hogyan mérjük le az oldalad sebességét" -#: views/settings/page.php:76 -msgid "" -"A beta version is usually one that has new features and improvements, but we" -" want to test it a little more before full launch." -msgstr "" +#: views/settings/page-sections/tutorials.php:19 +msgid "How Preloading Works" +msgstr "Hogyan működik az előtöltés" -#: views/settings/page.php:77 -msgid "" -"We’d love it if you took our beta versions for a ride, but please keep in " -"mind that it might be less stable than our other releases. Don’t worry, you " -"can switch back to a full release version at any time." -msgstr "" +#: views/settings/page-sections/tutorials.php:23 +msgid "Passing the Core Web vitals" +msgstr "Az alapvető web mutatók teljesítése" -#: views/settings/page.php:78 -msgid "" -"Your mission: please send all feedback about our beta versions, including " -"bug reports, to support@wp-rocket.me" -msgstr "" +#: views/settings/page-sections/tutorials.php:25 +msgid "How to improve LCP with WP Rocket" +msgstr "Hogyan javítsuk az LCP-t a WP Rocket-tel" -#: views/settings/page.php:80 -msgid "If you don’t want to join the beta program, simply close this window." -msgstr "" +#: views/settings/page-sections/tutorials.php:26 +msgid "How to improve FID with WP Rocket" +msgstr "Hogyan javítsuk az FID-t a WP Rocket-tel" -#: views/settings/page.php:82 -msgid "Activate Rocket Tester" -msgstr "" +#: views/settings/page-sections/tutorials.php:27 +msgid "How to improve CLS with WP Rocket" +msgstr "Hogyan javítsuk az CLS-t a WP Rocket-tel" + +#: views/settings/page-sections/tutorials.php:31 +msgid "Troubleshooting" +msgstr "Hibaelhárítás" + +#: views/settings/page-sections/tutorials.php:33 +msgid "Troubleshooting Display Issues with File Optimization" +msgstr "Megjelenési hibák javítássa a fájloptimizálással" + +#: views/settings/page-sections/tutorials.php:34 +msgid "How to Find the Right JavaScript to Exclude" +msgstr "Hogyan találjuk meg, melyik JavaScript fájlt kell kizárni" + +#: views/settings/page-sections/tutorials.php:35 +msgid "How External Content Slows Your Site" +msgstr "Hogyan lassítja le a külső tartalom a weboldaladat" + +#: views/settings/page-sections/tutorials.php:41 +msgid "Set Up the Cloudflare Add-on" +msgstr "Állítsd be a Cloudflare bővítményt" + +#: views/settings/page.php:16 +msgid "WP Rocket Settings" +msgstr "WP Rocket beállítások" + +#: views/settings/page.php:30 +#, php-format +msgid "version %s" +msgstr "verzió %s" + +#: views/settings/page.php:60 +msgid "Show Sidebar" +msgstr "Oldalsáv megjelenítése" -#: views/settings/page.php:93 +#: views/settings/page.php:82 +#, php-format msgid "" -"Below is a detailed view of all data WP Rocket will collect if " -"granted permission." +"Below is a detailed view of all data WP Rocket will collect %1$sif granted " +"permission.%2$s" msgstr "" +"Alább részletes listát látsz mindazon adatokról amiket a WP Rocket gyűjteni " +"fog ha %1$smegadod az engedélyt.%2$s" -#: views/settings/page.php:96 +#: views/settings/page.php:87 msgid "" "WP Rocket will never transmit any domain names or email addresses (except " "for license validation), IP addresses, or third-party API keys." msgstr "" +"A WP Rocket soha nem fog továbbítani domain neveket email címeket (kivéve a" +" licensz-ellenőrzéshez), IP címeket vagy külső félhez tartozó API kulcsokat." -#: views/settings/page.php:98 +#: views/settings/page.php:89 msgid "Activate Rocket analytics" -msgstr "" +msgstr "Aktiváld a Rocket analitikát" -#: views/settings/partials/documentation.php:14 +#: views/settings/partials/documentation.php:15 msgid "It is a great starting point to fix some of the most common issues." -msgstr "" +msgstr "Ez egy nagyszerű kezdőpont a leggyakoribb hibák elhárításához" -#: views/settings/partials/documentation.php:18 +#: views/settings/partials/documentation.php:22 msgid "Read the documentation" -msgstr "" +msgstr "Olvasd el a dokumentációt" -#: views/settings/partials/sidebar.php:11 -msgid "How to correctly measure your website’s loading time" -msgstr "" +#: views/settings/partials/getting-started.php:11 +msgid "What WP Rocket Does For You By Default" +msgstr "Mit tesz alapból a WP Rocket Számodra" -#: views/settings/partials/sidebar.php:13 -msgid "" -"Learn how to use best practices to correctly measure your site's " -"performance." -msgstr "" +#: views/settings/partials/sidebar.php:12 +msgid "How to correctly measure your website’s loading time" +msgstr "Hogyan mérjük le pontosan a weboldal betöltési idejét" #: views/settings/partials/sidebar.php:14 -msgid "" -"https://wp-rocket.me/blog/correctly-measure-websites-page-load-" -"time/?utm_source=wp_plugin&utm_medium=wp_rocket" +msgid "Check our tutorial and learn how to measure the speed of your site." msgstr "" +"Tekintsd meg a bemutatónkat és tudd meg, hogyan mérheted a weboldalad " +"sebességét" -#: views/settings/partials/sidebar.php:14 +#: views/settings/partials/sidebar.php:15 +#: views/settings/partials/sidebar.php:24 msgid "Read our guide" -msgstr "" - -#: views/settings/partials/sidebar.php:17 -msgid "Why Google PageSpeed grade should not matter" -msgstr "" +msgstr "Olvasd el a leírásunkat" #: views/settings/partials/sidebar.php:18 -msgid "" -"https://wp-rocket.me/blog/the-truth-about-google-pagespeed-" -"insights/?utm_source=wp_plugin&utm_medium=wp_rocket" +msgid "Learn about optimal WP Rocket settings for mobile." +msgstr "Tudj meg többet a WP Rocket mobilhoz való beállításáról" + +#: views/settings/partials/sidebar.php:27 +msgid "Test and Improve Google Core Web Vitals for WordPress." msgstr "" +"Teszteld és fejleszd a Google Core Web Vital értékeket WordPress számára" -#: views/settings/partials/sidebar.php:18 +#: views/settings/partials/sidebar.php:28 msgid "Read more" -msgstr "" +msgstr "Tudj meg többet" -#: views/settings/partials/sidebar.php:23 +#: views/settings/partials/sidebar.php:33 msgid "You have not activated logged-in user cache." -msgstr "" +msgstr "Nem aktiváltad a bejelentkezett felhasználók gyorsítótárát" -#: views/settings/partials/sidebar.php:24 +#: views/settings/partials/sidebar.php:34 msgid "" "Use a private browser to check your website's speed and visual appearance." msgstr "" +"Használj privát böngésző üzemmódot hogy megtekintsd a weboldalad sebességét " +"és kinézetét a gyorsítótárazással" -#: views/settings/sections/addons-container.php:23 -#: views/settings/sections/fields-container.php:27 +#: views/settings/sections/addons-container.php:24 +#: views/settings/sections/fields-container.php:28 msgid "Need Help?" -msgstr "" +msgstr "Segítségre van szükséged?" diff --git a/languages/rocket-pt_BR.mo b/languages/rocket-pt_BR.mo index 7db820c0d2..225878de28 100644 Binary files a/languages/rocket-pt_BR.mo and b/languages/rocket-pt_BR.mo differ diff --git a/languages/rocket-pt_BR.po b/languages/rocket-pt_BR.po index c84e93ad6a..03b82e1fe1 100644 --- a/languages/rocket-pt_BR.po +++ b/languages/rocket-pt_BR.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2022-06-23 14:06-0400\n" +"POT-Creation-Date: 2022-07-28 14:01-0400\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Fabio Fava , 2022\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/wp-media/teams/18133/pt_BR/)\n" @@ -275,27 +275,27 @@ msgstr[1] "A API do firewall Sucuri retornou os seguintes erros: %s" msgstr[2] "A API do firewall Sucuri retornou os seguintes erros: %s" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1442 +#: inc/Engine/Admin/Settings/Page.php:1443 msgid "Revisions" msgstr "Revisões" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1452 +#: inc/Engine/Admin/Settings/Page.php:1453 msgid "Auto Drafts" msgstr "Rascunhos Automáticos" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1463 msgid "Trashed Posts" msgstr "Posts na Lixeira" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1472 +#: inc/Engine/Admin/Settings/Page.php:1473 msgid "Spam Comments" msgstr "Comentários Spam" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1483 msgid "Trashed Comments" msgstr "Comentários na Lixeira" @@ -354,36 +354,36 @@ msgstr "Validar a licença" msgid "Unavailable" msgstr "Indisponível" -#: inc/Engine/Admin/Settings/Page.php:341 inc/deprecated/deprecated.php:1789 +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 #: views/settings/page-sections/dashboard.php:80 msgid "License" msgstr "Licença" -#: inc/Engine/Admin/Settings/Page.php:358 +#: inc/Engine/Admin/Settings/Page.php:359 msgid "API key" msgstr "Chave da API" -#: inc/Engine/Admin/Settings/Page.php:373 +#: inc/Engine/Admin/Settings/Page.php:374 msgid "Email address" msgstr "Endereço de e-mail" -#: inc/Engine/Admin/Settings/Page.php:399 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Dashboard" msgstr "Painel" -#: inc/Engine/Admin/Settings/Page.php:400 +#: inc/Engine/Admin/Settings/Page.php:401 msgid "Get help, account info" msgstr "Obter ajuda, informações da conta" -#: inc/Engine/Admin/Settings/Page.php:409 +#: inc/Engine/Admin/Settings/Page.php:410 msgid "My Status" msgstr "Meu Status" -#: inc/Engine/Admin/Settings/Page.php:419 views/settings/page.php:75 +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 msgid "Rocket Analytics" msgstr "Analytics do Rocket" -#: inc/Engine/Admin/Settings/Page.php:421 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" "I agree to share anonymous data with the development team to help improve WP" @@ -393,23 +393,23 @@ msgstr "" "desenvolvimento para ajudar a melhorar o WP Rocket. %1$sQuais informações " "iremos coletar?%2$s" -#: inc/Engine/Admin/Settings/Page.php:445 inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 msgid "Cache" msgstr "Cache" -#: inc/Engine/Admin/Settings/Page.php:446 +#: inc/Engine/Admin/Settings/Page.php:447 msgid "Basic cache options" msgstr "Opções básica de cache" -#: inc/Engine/Admin/Settings/Page.php:453 +#: inc/Engine/Admin/Settings/Page.php:454 msgid "Mobile Cache" msgstr "Cache Móvel" -#: inc/Engine/Admin/Settings/Page.php:455 +#: inc/Engine/Admin/Settings/Page.php:456 msgid "Speed up your site for mobile visitors." msgstr "Acelera seu site em dispositivos móveis." -#: inc/Engine/Admin/Settings/Page.php:460 +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" "We detected you use a plugin that requires a separate cache for mobile, and " "automatically enabled this option for compatibility." @@ -417,11 +417,11 @@ msgstr "" "Detectamos que você usa um plugin que requer um cache separado para " "dispositivos móveis, e habilitamos esta opção para compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:464 +#: inc/Engine/Admin/Settings/Page.php:465 msgid "User Cache" msgstr "Cache de Usuário" -#: inc/Engine/Admin/Settings/Page.php:467 +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" "%1$sUser cache%2$s is great when you have user-specific or restricted " @@ -430,11 +430,11 @@ msgstr "" "O %1$scache de usuário%2$s é excelente quando você tem conteúdo específico " "do usuário ou restrito no seu site." -#: inc/Engine/Admin/Settings/Page.php:475 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Cache Lifespan" msgstr "Vida útil do cache" -#: inc/Engine/Admin/Settings/Page.php:478 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " @@ -445,19 +445,19 @@ msgstr "" "excluídos.
Ative o %1$spré-carregamento%2$s para o cache ser " "reconstruído automaticamente após a expiração da sua vida útil." -#: inc/Engine/Admin/Settings/Page.php:492 +#: inc/Engine/Admin/Settings/Page.php:493 msgid "Enable caching for logged-in WordPress users" msgstr "Ativar armazenamento em cache para usuários conectados no WordPress" -#: inc/Engine/Admin/Settings/Page.php:500 +#: inc/Engine/Admin/Settings/Page.php:501 msgid "Enable caching for mobile devices" msgstr "Ativar cache para dispositivos móveis" -#: inc/Engine/Admin/Settings/Page.php:515 +#: inc/Engine/Admin/Settings/Page.php:516 msgid "Separate cache files for mobile devices" msgstr "Arquivos de cache separados para dispositivos móveis" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:518 #, php-format msgid "" "Most modern themes are responsive and should work without a separate cache. " @@ -468,13 +468,13 @@ msgstr "" "separado. Habilite isso apenas se tem um tema ou plugin dedicado a " "dispositivos móveis. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "Especifique o tempo após o qual o Cache Global é limpo
(0=ilimitado)" -#: inc/Engine/Admin/Settings/Page.php:535 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" @@ -483,32 +483,32 @@ msgstr "" "Reduza a vida útil para 10 horas ou menos se notar erros que parecem surgir " "periodicamente. %1$sPor que?%2$s" -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:542 #: inc/Engine/License/views/promo-banner.php:30 #: inc/Engine/License/views/renewal-soon-banner.php:13 msgid "Hours" msgstr "Horas" -#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/Admin/Settings/Page.php:543 #: inc/Engine/License/views/promo-banner.php:29 #: inc/Engine/License/views/renewal-soon-banner.php:12 msgid "Days" msgstr "Dias" -#: inc/Engine/Admin/Settings/Page.php:577 +#: inc/Engine/Admin/Settings/Page.php:578 msgid "File Optimization" msgstr "Otimizar Arquivos" -#: inc/Engine/Admin/Settings/Page.php:578 +#: inc/Engine/Admin/Settings/Page.php:579 msgid "Optimize CSS & JS" msgstr "Otimizar CSS e JS" -#: inc/Engine/Admin/Settings/Page.php:585 +#: inc/Engine/Admin/Settings/Page.php:586 msgid "CSS Files" msgstr "Arquivos CSS" -#: inc/Engine/Admin/Settings/Page.php:592 -#: inc/Engine/Admin/Settings/Page.php:602 +#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" "%1$s Minification is currently activated in Autoptimize. If" @@ -517,11 +517,11 @@ msgstr "" "No momento a Minificação %1$s está ativada no Autoptimize. " "Se deseja usar a minificação do %2$s, desabilite esta opção no Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:595 +#: inc/Engine/Admin/Settings/Page.php:596 msgid "JavaScript Files" msgstr "Arquivos JavaScript" -#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" "If you have problems after activating this option, copy and paste the " @@ -534,7 +534,7 @@ msgstr "" "
%1$s

Veja também a nossa " "%2$sdocumentação%3$s para uma lista de exclusões de compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:616 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " @@ -545,27 +545,27 @@ msgstr "" "para tirar vantagem total desta opção.
Se isso causar problemas, " "restaure as exclusões padrão encontradas %1$saqui%2$s" -#: inc/Engine/Admin/Settings/Page.php:625 +#: inc/Engine/Admin/Settings/Page.php:626 msgid "Minify CSS files" msgstr "Minificar os arquivos CSS" -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:627 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "Minificar o CSS remove espaços em branco e comentários para reduzir o " "tamanho do arquivo." -#: inc/Engine/Admin/Settings/Page.php:639 -#: inc/Engine/Admin/Settings/Page.php:663 -#: inc/Engine/Admin/Settings/Page.php:793 -#: inc/Engine/Admin/Settings/Page.php:817 -msgid "This could break things!" -msgstr "Isto poderia quebrar coisas!" - #: inc/Engine/Admin/Settings/Page.php:640 #: inc/Engine/Admin/Settings/Page.php:664 #: inc/Engine/Admin/Settings/Page.php:794 #: inc/Engine/Admin/Settings/Page.php:818 +msgid "This could break things!" +msgstr "Isto poderia quebrar coisas!" + +#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" "If you notice any errors on your website after having activated this " "setting, just deactivate it again, and your site will be back to normal." @@ -573,17 +573,17 @@ msgstr "" "Se notar quaisquer erros no seu site após ter ativado esta configuração, " "basta desativá-la novamente e o seu site voltará ao normal." -#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:642 msgid "Activate minify CSS" msgstr "Ativar minificar o CSS" -#: inc/Engine/Admin/Settings/Page.php:646 +#: inc/Engine/Admin/Settings/Page.php:647 msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" "Combinar os arquivos CSS (Ative Minificar os arquivos CSS pra " "selecionar)" -#: inc/Engine/Admin/Settings/Page.php:648 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" "Combine CSS merges all your files into 1, reducing HTTP requests. Not " @@ -592,7 +592,7 @@ msgstr "" "Combinar o CSS mescla todos os seus arquivos em 1, reduzindo as requisições " "HTTP. Não recomendamos se o seu site usa HTTP/2. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:649 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" "For compatibility and best results, this option is disabled when Remove " "unused CSS is enabled." @@ -600,15 +600,15 @@ msgstr "" "Para compatibilidade e melhores resultados, esta opção fica desativada " "quando a Remoção do CSS não usado está ativa." -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:666 msgid "Activate combine CSS" msgstr "Ativar Combinar o CSS" -#: inc/Engine/Admin/Settings/Page.php:670 inc/admin/options.php:122 +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 msgid "Excluded CSS Files" msgstr "Arquivos CSS Excluídos" -#: inc/Engine/Admin/Settings/Page.php:671 +#: inc/Engine/Admin/Settings/Page.php:672 msgid "" "Specify URLs of CSS files to be excluded from minification and concatenation" " (one per line)." @@ -616,7 +616,7 @@ msgstr "" "Especifique URLs de arquivos CSS a serem excluídos da minificação e " "concatenação (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:672 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -626,7 +626,7 @@ msgstr "" "limpa. Use coringas (.*).css para excluir todos os arquivos CSS localizados " "em um caminho específico." -#: inc/Engine/Admin/Settings/Page.php:674 +#: inc/Engine/Admin/Settings/Page.php:675 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -635,12 +635,12 @@ msgstr "" "Terceiros: Use o caminho completo do URL ou apenas o nome " "do domínio, para excluir CSS externo. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:687 -#: inc/Engine/Admin/Settings/Page.php:709 +#: inc/Engine/Admin/Settings/Page.php:688 +#: inc/Engine/Admin/Settings/Page.php:710 msgid "Optimize CSS delivery" msgstr "Otimizar a entrega do CSS" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -651,7 +651,7 @@ msgstr "" "recomendado para um desempenho ótimo, mas limitado aos usuários com uma " "licença ativa." -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -661,7 +661,7 @@ msgstr "" "site. Apenas um método pode ser selecionado. Remover o CSS não usado é " "recomendado para um desempenho ótimo." -#: inc/Engine/Admin/Settings/Page.php:702 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" @@ -670,11 +670,11 @@ msgstr "" "Os recursos de otimização da entrega do CSS estão desativados em ambientes " "locais. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:722 +#: inc/Engine/Admin/Settings/Page.php:723 msgid "Remove Unused CSS (Beta)" msgstr "Remover o CSS não usado (Beta)" -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." @@ -684,11 +684,11 @@ msgstr "" "as requisições HTTP. Recomendado para melhor desempenho. Teste " "extensivamente! %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:728 msgid "We’re still working on it!" msgstr "Continuamos trabalhando nisso!" -#: inc/Engine/Admin/Settings/Page.php:728 +#: inc/Engine/Admin/Settings/Page.php:729 msgid "" "This is a beta feature. We’re providing you early access but some changes " "might be added later on. If you notice any errors on your website, simply " @@ -698,15 +698,15 @@ msgstr "" "alterações podem ser adicionadas posteriormente. Se notar erros no seu site," " simplesmente desative este recurso." -#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:730 msgid "Activate Remove Unused CSS" msgstr "Ativa a remoção do CSS não usado" -#: inc/Engine/Admin/Settings/Page.php:735 +#: inc/Engine/Admin/Settings/Page.php:736 msgid "CSS safelist" msgstr "Lista de CSS seguro" -#: inc/Engine/Admin/Settings/Page.php:736 +#: inc/Engine/Admin/Settings/Page.php:737 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -714,11 +714,11 @@ msgstr "" "Especifique nomes de arquivos CSS, IDs ou classes que não deverão ser " "removidos (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:751 inc/admin/ui/meta-boxes.php:80 +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 msgid "Load CSS asynchronously" msgstr "Carregar o CSS de forma assíncrona" -#: inc/Engine/Admin/Settings/Page.php:754 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format msgctxt "WP Critical CSS compatibility" msgid "" @@ -729,7 +729,7 @@ msgstr "" "plugin %1$s. Se deseja usar a opção de carregar o CSS de forma assíncrona do" " WP Rocket, desative o plugin %1$s." -#: inc/Engine/Admin/Settings/Page.php:756 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" @@ -737,11 +737,11 @@ msgstr "" "Gera o CSS do caminho crítico e carrega o CSS de forma assíncrona. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:762 +#: inc/Engine/Admin/Settings/Page.php:763 msgid "Fallback critical CSS" msgstr "CSS crítico opcional" -#: inc/Engine/Admin/Settings/Page.php:764 +#: inc/Engine/Admin/Settings/Page.php:765 #, php-format msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " @@ -750,29 +750,29 @@ msgstr "" "Fornece uma opção se o caminho de CSS crítico gerado automaticamente estiver" " incompleto. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:779 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "Minify JavaScript files" msgstr "Minificar os arquivos JavaScript" -#: inc/Engine/Admin/Settings/Page.php:780 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "Minificar o JavaScript remove os espaços em branco e comentários para " "reduzir o tamanho do arquivo." -#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:796 msgid "Activate minify JavaScript" msgstr "Ativar minificar o JavaScript" -#: inc/Engine/Admin/Settings/Page.php:800 +#: inc/Engine/Admin/Settings/Page.php:801 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" "Combinar os arquivos JavaScript (Ative Minificar arquivos JavaScript " "para selecionar)" -#: inc/Engine/Admin/Settings/Page.php:802 +#: inc/Engine/Admin/Settings/Page.php:803 #, php-format msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" @@ -783,7 +783,7 @@ msgstr "" "reduzindo as chamadas HTTP. Não é recomendado se o seu site usa HTTP/2. " "%1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:803 +#: inc/Engine/Admin/Settings/Page.php:804 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -791,15 +791,15 @@ msgstr "" "Para compatibilidade e melhores resultados, esta opção está desativada " "quando a execução retrasada de javascript estiver ativa." -#: inc/Engine/Admin/Settings/Page.php:819 +#: inc/Engine/Admin/Settings/Page.php:820 msgid "Activate combine JavaScript" msgstr "Ativar combinar o JavaScript" -#: inc/Engine/Admin/Settings/Page.php:824 inc/admin/options.php:123 +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 msgid "Excluded Inline JavaScript" msgstr "JavaScript Inline Excluído" -#: inc/Engine/Admin/Settings/Page.php:826 +#: inc/Engine/Admin/Settings/Page.php:827 #, php-format msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" @@ -808,13 +808,13 @@ msgstr "" "Especifique padrões de JavaScript inline a serem excluídos da concatenação " "(um por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:842 -#: inc/Engine/Admin/Settings/Page.php:875 -#: inc/Engine/Admin/Settings/Page.php:904 inc/admin/options.php:124 +#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 msgid "Excluded JavaScript Files" msgstr "Arquivos JavaScript Excluídos" -#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:844 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -822,7 +822,7 @@ msgstr "" "Especifique URLs de arquivos JavaScript a serem excluídos da minificação e " "concatenação (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:844 +#: inc/Engine/Admin/Settings/Page.php:845 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -832,7 +832,7 @@ msgstr "" "automaticamente. Use wildcards (.*).js para excluir todos os arquivos JS " "localizados em um caminho específico." -#: inc/Engine/Admin/Settings/Page.php:846 +#: inc/Engine/Admin/Settings/Page.php:847 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -841,11 +841,11 @@ msgstr "" "Terceiros Use o caminho completo do URL ou apenas o " "domínio, para excluir JS externo. %1$sMais Informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:862 +#: inc/Engine/Admin/Settings/Page.php:863 msgid "Load JavaScript deferred" msgstr "Adiar o carregamento do JavaScript" -#: inc/Engine/Admin/Settings/Page.php:864 +#: inc/Engine/Admin/Settings/Page.php:865 #, php-format msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " @@ -854,7 +854,7 @@ msgstr "" "Adiar o carregamento do JavaScript elimina JS bloqueando a renderização no " "seu site e pode melhorar o tempo de carregamento. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:877 +#: inc/Engine/Admin/Settings/Page.php:878 #, php-format msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " @@ -863,11 +863,11 @@ msgstr "" "Especifique URLs ou palavras-chave de arquivos JavaScript a serem excluídos " "do atraso (um por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:893 inc/admin/ui/meta-boxes.php:82 +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 msgid "Delay JavaScript execution" msgstr "Atrasa a execução do JavaScript" -#: inc/Engine/Admin/Settings/Page.php:895 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" "Improves performance by delaying the loading of JavaScript files until user " @@ -876,7 +876,7 @@ msgstr "" "Melhora o desempenho atrasando o carregamento dos arquivos JavaScript até a " "interação com o usuário (como rolar ou clicar) %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:905 +#: inc/Engine/Admin/Settings/Page.php:906 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -884,23 +884,23 @@ msgstr "" "Especifique URLs ou palavras-chave que podem identificar arquivos inline ou " "JavaScript a serem excluídos do adiamento da execução (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:937 msgid "Media" msgstr "Mídia" -#: inc/Engine/Admin/Settings/Page.php:937 +#: inc/Engine/Admin/Settings/Page.php:938 msgid "LazyLoad, image dimensions" msgstr "LazyLoad, dimensões da imagem" -#: inc/Engine/Admin/Settings/Page.php:946 +#: inc/Engine/Admin/Settings/Page.php:947 msgid "Autoptimize" msgstr "Autoptimize" -#: inc/Engine/Admin/Settings/Page.php:991 +#: inc/Engine/Admin/Settings/Page.php:992 msgid "LazyLoad" msgstr "LazyLoad" -#: inc/Engine/Admin/Settings/Page.php:994 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" "It can improve actual and perceived loading time as images, iframes, and " @@ -912,7 +912,7 @@ msgstr "" " na área visualizada na tela, e reduz o número de requisições HTTP. %1$sMais" " Informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1001 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " @@ -921,11 +921,11 @@ msgstr "" "No momento o LazyLoad do %2$s está ativo. Se deseja usar o LazyLoad do WP " "Rocket, desative esta opção no %2$s." -#: inc/Engine/Admin/Settings/Page.php:1004 +#: inc/Engine/Admin/Settings/Page.php:1005 msgid "Image Dimensions" msgstr "Dimensões da imagem" -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" "Add missing width and height attributes to images. Helps prevent layout " @@ -936,11 +936,11 @@ msgstr "" "mudanças de layout e melhora a experiência de leitura para os seus " "visitantes %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1026 +#: inc/Engine/Admin/Settings/Page.php:1027 msgid "Enable for images" msgstr "Habilitar para imagens" -#: inc/Engine/Admin/Settings/Page.php:1038 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " @@ -949,22 +949,22 @@ msgstr "" "No momento o LazyLoad para imagens do %2$s está ativo. Se deseja usar o " "LazyLoad de %1$s, desative esta opção no %2$s." -#: inc/Engine/Admin/Settings/Page.php:1046 +#: inc/Engine/Admin/Settings/Page.php:1047 msgid "Enable for iframes and videos" msgstr "Habilitar para iframes e vídeos" -#: inc/Engine/Admin/Settings/Page.php:1061 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "Replace YouTube iframe with preview image" msgstr "Substituir o iframe do YouTube pela imagem de pré-visualização" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 #, php-format msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "Substituir o iframe do YouTube com a imagem de pré-visualização não é " "compatível com %2$s." -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -972,11 +972,11 @@ msgstr "" "Isso pode melhorar de forma significativa o tempo de carregamento se você " "tem muitos vídeos do YouTube em uma página." -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1079 msgid "Excluded images or iframes" msgstr "Imagens e iFrames excluídos" -#: inc/Engine/Admin/Settings/Page.php:1080 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" "Specify keywords (e.g. image filename, CSS class, domain) from the image or " @@ -986,23 +986,23 @@ msgstr "" "domínio0 da imagem ou do código de iFrame a serem excluídas (uma por linha)." " %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1089 msgid "Add missing image dimensions" msgstr "Adicionar dimensões de imagens faltando" -#: inc/Engine/Admin/Settings/Page.php:1107 inc/deprecated/deprecated.php:1776 +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 msgid "Preload" msgstr "Pré-Carregar" -#: inc/Engine/Admin/Settings/Page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1109 msgid "Generate cache files, preload fonts" msgstr "Gera os arquivos de cache, pré-carrega as fontes" -#: inc/Engine/Admin/Settings/Page.php:1119 +#: inc/Engine/Admin/Settings/Page.php:1120 msgid "Preload Cache" msgstr "Pré-carregar o cache" -#: inc/Engine/Admin/Settings/Page.php:1122 +#: inc/Engine/Admin/Settings/Page.php:1123 #, php-format msgid "" "When you enable preloading WP Rocket will generate the cache starting with " @@ -1017,11 +1017,11 @@ msgstr "" "adiciona ou atualiza conteúdo, e pode ser iniciado manualmente a partir da " "barra de administração ou do %1$sPainel do WP Rocket%2$s." -#: inc/Engine/Admin/Settings/Page.php:1130 +#: inc/Engine/Admin/Settings/Page.php:1131 msgid "Preload Links" msgstr "Pré-carregar Links" -#: inc/Engine/Admin/Settings/Page.php:1133 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" "Link preloading improves the perceived load time by downloading a page when " @@ -1031,11 +1031,11 @@ msgstr "" "carregar uma página quando um usuário passa o mouse sobre o link. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1141 +#: inc/Engine/Admin/Settings/Page.php:1142 msgid "Prefetch DNS Requests" msgstr "Pré-captura das Requisições de DNS" -#: inc/Engine/Admin/Settings/Page.php:1143 +#: inc/Engine/Admin/Settings/Page.php:1144 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1043,11 +1043,11 @@ msgstr "" "A pré-captura do DNS pode carregar mais rápido arquivos externos, " "especialmente em redes móveis" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1149 msgid "Preload Fonts" msgstr "Pré-carregar as fontes" -#: inc/Engine/Admin/Settings/Page.php:1151 +#: inc/Engine/Admin/Settings/Page.php:1152 #, php-format msgid "" "Improves performance by helping browsers discover fonts in CSS files. " @@ -1056,27 +1056,27 @@ msgstr "" "Melhora o desempenho ao ajudar os naveggadores a descobrirem fontes em " "arquivos CSS. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1165 +#: inc/Engine/Admin/Settings/Page.php:1166 msgid "Activate Preloading" msgstr "Ativar o Pré-Carregamento" -#: inc/Engine/Admin/Settings/Page.php:1184 +#: inc/Engine/Admin/Settings/Page.php:1185 msgid "Activate sitemap-based cache preloading" msgstr "Ativar o pré-carregamento em cache do sitemap" -#: inc/Engine/Admin/Settings/Page.php:1203 +#: inc/Engine/Admin/Settings/Page.php:1204 msgid "Sitemaps for preloading" msgstr "Sitemaps para pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1207 +#: inc/Engine/Admin/Settings/Page.php:1208 msgid "Specify XML sitemap(s) to be used for preloading" msgstr "Especifique sitemap(s) XML a ser(em) usado(s) para o pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1217 +#: inc/Engine/Admin/Settings/Page.php:1218 msgid "URLs to prefetch" msgstr "URLs a pré-capturar" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1219 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1084,11 +1084,11 @@ msgstr "" "Especifique os servidores externos a serem pré-carregados (sem " "http:, um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1227 +#: inc/Engine/Admin/Settings/Page.php:1228 msgid "Fonts to preload" msgstr "Fontes a pré-carregar" -#: inc/Engine/Admin/Settings/Page.php:1228 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1097,7 +1097,7 @@ msgstr "" "linha). As fontes devem ser hospedadas no seu próprio domínio, ou o domínio " "especificado na aba CDN." -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1230 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1105,51 +1105,51 @@ msgstr "" "A parte do domínio do URL será automaticametne removida.
Extensões de " "fonte permitidas: otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1238 +#: inc/Engine/Admin/Settings/Page.php:1239 msgid "Enable link preloading" msgstr "Ativar o pré-carregamento dos links" -#: inc/Engine/Admin/Settings/Page.php:1257 +#: inc/Engine/Admin/Settings/Page.php:1258 msgid "Advanced Rules" msgstr "Regras Avançadas" -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1259 msgid "Fine-tune cache rules" msgstr "Ajuste fino das regras de cache" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1270 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "URLs de páginas dinâmicas como personalizadas de login/logout devem ser " "excluídas do cache." -#: inc/Engine/Admin/Settings/Page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1273 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1275 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1276 +#: inc/Engine/Admin/Settings/Page.php:1277 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1278 +#: inc/Engine/Admin/Settings/Page.php:1279 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1280 +#: inc/Engine/Admin/Settings/Page.php:1281 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" -#: inc/Engine/Admin/Settings/Page.php:1286 +#: inc/Engine/Admin/Settings/Page.php:1287 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in " @@ -1159,27 +1159,27 @@ msgstr "" "%1$s%2$s%3$s serão detectadas e por padrão nunca serão " "armazenadas em cache." -#: inc/Engine/Admin/Settings/Page.php:1296 inc/admin/options.php:127 +#: inc/Engine/Admin/Settings/Page.php:1297 inc/admin/options.php:127 msgid "Never Cache URL(s)" msgstr "URL(s) Jamais em Cache" -#: inc/Engine/Admin/Settings/Page.php:1304 +#: inc/Engine/Admin/Settings/Page.php:1305 msgid "Never Cache Cookies" msgstr "Cookies Jamais em Cache" -#: inc/Engine/Admin/Settings/Page.php:1310 inc/admin/options.php:128 +#: inc/Engine/Admin/Settings/Page.php:1311 inc/admin/options.php:128 msgid "Never Cache User Agent(s)" msgstr "User Agent(s) Jamais em Cache" -#: inc/Engine/Admin/Settings/Page.php:1316 inc/admin/options.php:129 +#: inc/Engine/Admin/Settings/Page.php:1317 inc/admin/options.php:129 msgid "Always Purge URL(s)" msgstr "Sempre Esvaziar URL(s)" -#: inc/Engine/Admin/Settings/Page.php:1322 +#: inc/Engine/Admin/Settings/Page.php:1323 msgid "Cache Query String(s)" msgstr "String(s) de Consulta em Cache" -#: inc/Engine/Admin/Settings/Page.php:1325 +#: inc/Engine/Admin/Settings/Page.php:1326 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " @@ -1188,15 +1188,15 @@ msgstr "" "%1$sStrings de consulta em cache%2$s permite forçar o cache de certos " "parâmetros GET." -#: inc/Engine/Admin/Settings/Page.php:1336 +#: inc/Engine/Admin/Settings/Page.php:1337 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Especifique os URLs de páginas ou posts que deseja que jamais sejam " "armazenados em cache (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1337 -#: inc/Engine/Admin/Settings/Page.php:1365 +#: inc/Engine/Admin/Settings/Page.php:1338 +#: inc/Engine/Admin/Settings/Page.php:1366 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -1204,7 +1204,7 @@ msgstr "" "A parte do domínio do URL será removida automaticamente.
Use wildcards " "(.*) para se referir a múltiplos URLs em um dado caminho." -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1347 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -1213,19 +1213,19 @@ msgstr "" "navegador do visitante, devem evitar uma página de ser armazenada em cache " "(uma por linha)" -#: inc/Engine/Admin/Settings/Page.php:1354 +#: inc/Engine/Admin/Settings/Page.php:1355 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Especifique strings de agentes de usuário que nunca devem ter páginas " "armazenadas em cache (uma por linha)" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "Use wildcards (.*) para detectar partes de strings de agentes de usuário." -#: inc/Engine/Admin/Settings/Page.php:1364 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -1233,25 +1233,25 @@ msgstr "" "Especifique os URLs que deseja esvaziar cache sempre que atualizar qualquer " "post ou página (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1373 +#: inc/Engine/Admin/Settings/Page.php:1374 msgid "Specify query strings for caching (one per line)" msgstr "" "Especifique parâmetros de consulta para armazenamento em cache (um por " "linha)" -#: inc/Engine/Admin/Settings/Page.php:1398 inc/deprecated/deprecated.php:1775 +#: inc/Engine/Admin/Settings/Page.php:1399 inc/deprecated/deprecated.php:1775 msgid "Database" msgstr "Banco de Dados" -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1400 msgid "Optimize, reduce bloat" msgstr "Otimize, reduza o excesso" -#: inc/Engine/Admin/Settings/Page.php:1406 +#: inc/Engine/Admin/Settings/Page.php:1407 msgid "Post Cleanup" msgstr "Limpeza de Post" -#: inc/Engine/Admin/Settings/Page.php:1408 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -1259,19 +1259,19 @@ msgstr "" "As revisões e rascunhos de posts serão excluídos permanentemente. Não use " "esta opção se precisa manter as revisões e rascunhos." -#: inc/Engine/Admin/Settings/Page.php:1413 +#: inc/Engine/Admin/Settings/Page.php:1414 msgid "Comments Cleanup" msgstr "Limpeza de Comentários" -#: inc/Engine/Admin/Settings/Page.php:1415 +#: inc/Engine/Admin/Settings/Page.php:1416 msgid "Spam and trashed comments will be permanently deleted." msgstr "Os comentários spam e na lixeira serão excluídos permanentemente." -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1420 msgid "Transients Cleanup" msgstr "Limpeza de Transientes" -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1422 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -1279,19 +1279,19 @@ msgstr "" "Transientes são opções temporárias e é seguro removê-los. Serão regenerados " "automaticamente quando seus plugins precisarem deles." -#: inc/Engine/Admin/Settings/Page.php:1425 +#: inc/Engine/Admin/Settings/Page.php:1426 msgid "Database Cleanup" msgstr "Limpeza do Banco de Dados" -#: inc/Engine/Admin/Settings/Page.php:1427 +#: inc/Engine/Admin/Settings/Page.php:1428 msgid "Reduces overhead of database tables" msgstr "Reduz o excesso de informações nas tabelas do banco de dados" -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1432 msgid "Automatic Cleanup" msgstr "Limpeza automática" -#: inc/Engine/Admin/Settings/Page.php:1444 +#: inc/Engine/Admin/Settings/Page.php:1445 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." @@ -1299,7 +1299,7 @@ msgstr[0] "%s revisão no seu banco de dados." msgstr[1] "%s revisões no seu banco de dados." msgstr[2] "%s revisões no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1454 +#: inc/Engine/Admin/Settings/Page.php:1455 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." @@ -1307,7 +1307,7 @@ msgstr[0] "%s rascunho no seu banco de dados." msgstr[1] "%s rascunhos no seu banco de dados." msgstr[2] "%s rascunhos no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1464 +#: inc/Engine/Admin/Settings/Page.php:1465 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." @@ -1315,7 +1315,7 @@ msgstr[0] "%s post na lixeira no seu banco de dados." msgstr[1] "%s posts na lixeira no seu banco de dados." msgstr[2] "%s posts na lixeira no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1475 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." @@ -1323,7 +1323,7 @@ msgstr[0] "%s comentário spam no seu banco de dados." msgstr[1] "%s comentários spam no seu banco de dados:" msgstr[2] "%s comentários spam no seu banco de dados:" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1485 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." @@ -1331,11 +1331,11 @@ msgstr[0] "%s comentário na lixeira no seu banco de dados." msgstr[1] "%s comentários na lixeira no seu banco de dados." msgstr[2] "%s comentários na lixeira no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1492 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "All transients" msgstr "Todos os transientes" -#: inc/Engine/Admin/Settings/Page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1495 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." @@ -1343,11 +1343,11 @@ msgstr[0] "%s transiente no seu banco de dados." msgstr[1] "%s transientes no seu banco de dados." msgstr[2] "%s transientes no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1503 msgid "Optimize Tables" msgstr "Otimizar Tabelas" -#: inc/Engine/Admin/Settings/Page.php:1504 +#: inc/Engine/Admin/Settings/Page.php:1505 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." @@ -1355,37 +1355,37 @@ msgstr[0] "%s tabela a otimizar no seu banco de dados." msgstr[1] "%s tabelas a otimizar no seu banco de dados." msgstr[2] "%s tabelas a otimizar no seu banco de dados." -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1516 msgid "Schedule Automatic Cleanup" msgstr "Agendar Limpeza Automática" -#: inc/Engine/Admin/Settings/Page.php:1527 +#: inc/Engine/Admin/Settings/Page.php:1528 msgid "Frequency" msgstr "Frequência" -#: inc/Engine/Admin/Settings/Page.php:1535 +#: inc/Engine/Admin/Settings/Page.php:1536 msgid "Daily" msgstr "Diária" -#: inc/Engine/Admin/Settings/Page.php:1536 +#: inc/Engine/Admin/Settings/Page.php:1537 msgid "Weekly" msgstr "Semanal" -#: inc/Engine/Admin/Settings/Page.php:1537 +#: inc/Engine/Admin/Settings/Page.php:1538 msgid "Monthly" msgstr "Mensal" -#: inc/Engine/Admin/Settings/Page.php:1553 -#: inc/Engine/Admin/Settings/Page.php:1564 inc/admin/ui/meta-boxes.php:79 +#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1565 inc/admin/ui/meta-boxes.php:79 #: inc/deprecated/deprecated.php:1773 msgid "CDN" msgstr "CDN" -#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1555 msgid "Integrate your CDN" msgstr "Integrar a sua CDN" -#: inc/Engine/Admin/Settings/Page.php:1566 +#: inc/Engine/Admin/Settings/Page.php:1567 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -1393,7 +1393,7 @@ msgstr "" "Todos os URLs de arquivos estáticos (CSS, JS, imagens) serão reescritos " "no(s) CNAME(s) que você fornecer." -#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1569 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " @@ -1402,11 +1402,11 @@ msgstr "" "Não necessário para serviços como Cloudflare e Sucuri. Por favor veja os " "%1$scomplementos%2$s disponíveis." -#: inc/Engine/Admin/Settings/Page.php:1583 inc/admin/options.php:130 +#: inc/Engine/Admin/Settings/Page.php:1584 inc/admin/options.php:130 msgid "Exclude files from CDN" msgstr "Excluir arquivos da CDN" -#: inc/Engine/Admin/Settings/Page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1610 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -1423,28 +1423,28 @@ msgstr[2] "" "%1$sComplementos %2$l %3$s estão ativos no momento. Não é necessário " "configurar CDN para %2$l funcionar no seu site." -#: inc/Engine/Admin/Settings/Page.php:1634 +#: inc/Engine/Admin/Settings/Page.php:1635 msgid "Enable Content Delivery Network" msgstr "Ativar a CDN" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1644 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" msgstr "CNAME(s) da CDN" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1645 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" msgstr "Especifique abaixo a(s) CNAME(s)" -#: inc/Engine/Admin/Settings/Page.php:1651 +#: inc/Engine/Admin/Settings/Page.php:1652 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "Especifique URL(s) de arquivos que não devem ser servidos pela CDN (um por " "linha)." -#: inc/Engine/Admin/Settings/Page.php:1652 +#: inc/Engine/Admin/Settings/Page.php:1653 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -1454,16 +1454,16 @@ msgstr "" "(.*) para excluir todos os arquivos de um dado tipo de arquivo localizado em" " um caminho específico." -#: inc/Engine/Admin/Settings/Page.php:1675 -#: inc/Engine/Admin/Settings/Page.php:1683 +#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1684 msgid "Heartbeat" msgstr "Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1677 msgid "Control WordPress Heartbeat API" msgstr "Controla a API Heartbeat do WordPress" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1685 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -1471,11 +1471,11 @@ msgstr "" "Reduzir ou desabilitar a atividade da API Hartbeat pode economizar alguns " "recursos do seu servidor." -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1691 msgid "Reduce or disable Heartbeat activity" msgstr "Reduz ou desabilita a atividade Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -1483,55 +1483,55 @@ msgstr "" "Reduzir a atividade modifica a frequência do Heartbeat de um hit por minuto " "para um hit a cada 2 minutos." -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "Desabilitar totalmente Heartbeat pode quebrar plugins e temas que usem esta " "API." -#: inc/Engine/Admin/Settings/Page.php:1705 +#: inc/Engine/Admin/Settings/Page.php:1706 msgid "Do not limit" msgstr "Não limitar" -#: inc/Engine/Admin/Settings/Page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1707 msgid "Reduce activity" msgstr "Reduzir atividade" -#: inc/Engine/Admin/Settings/Page.php:1707 +#: inc/Engine/Admin/Settings/Page.php:1708 msgid "Disable" msgstr "Desativar" -#: inc/Engine/Admin/Settings/Page.php:1715 +#: inc/Engine/Admin/Settings/Page.php:1716 msgid "Control Heartbeat" msgstr "Controlar Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1724 +#: inc/Engine/Admin/Settings/Page.php:1725 msgid "Behavior in backend" msgstr "Comportamento no painel" -#: inc/Engine/Admin/Settings/Page.php:1731 +#: inc/Engine/Admin/Settings/Page.php:1732 msgid "Behavior in post editor" msgstr "Comportamento no editor de post" -#: inc/Engine/Admin/Settings/Page.php:1737 +#: inc/Engine/Admin/Settings/Page.php:1738 msgid "Behavior in frontend" msgstr "Comportamento na interface" -#: inc/Engine/Admin/Settings/Page.php:1754 +#: inc/Engine/Admin/Settings/Page.php:1755 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Complementos" -#: inc/Engine/Admin/Settings/Page.php:1755 +#: inc/Engine/Admin/Settings/Page.php:1756 msgid "Add more features" msgstr "Adicione mais recursos" -#: inc/Engine/Admin/Settings/Page.php:1762 +#: inc/Engine/Admin/Settings/Page.php:1763 msgid "One-click Rocket Add-ons" msgstr "Complementos de um clique do Rocket" -#: inc/Engine/Admin/Settings/Page.php:1763 +#: inc/Engine/Admin/Settings/Page.php:1764 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -1540,26 +1540,26 @@ msgstr "" "sem a necessidade de configurações. Ative a opção para ativar a partir desta" " tela." -#: inc/Engine/Admin/Settings/Page.php:1773 +#: inc/Engine/Admin/Settings/Page.php:1774 msgid "Rocket Add-ons" msgstr "Complementos do Rocket" -#: inc/Engine/Admin/Settings/Page.php:1774 +#: inc/Engine/Admin/Settings/Page.php:1775 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Os Complementos do Rocket são recursos complementares extendendo as opções " "disponíveis." -#: inc/Engine/Admin/Settings/Page.php:1785 -#: inc/Engine/Admin/Settings/Page.php:1937 +#: inc/Engine/Admin/Settings/Page.php:1786 +#: inc/Engine/Admin/Settings/Page.php:1938 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1791 +#: inc/Engine/Admin/Settings/Page.php:1792 msgid "Integrate your Cloudflare account with this add-on." msgstr "Integre a sua conta Cloudflare com este complemento." -#: inc/Engine/Admin/Settings/Page.php:1792 +#: inc/Engine/Admin/Settings/Page.php:1793 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -1569,15 +1569,15 @@ msgstr "" "opções como esvaziar o cache do Cloudflare e ativar as configurações " "otimizadas com o WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1826 +#: inc/Engine/Admin/Settings/Page.php:1827 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1832 +#: inc/Engine/Admin/Settings/Page.php:1833 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "Você deve ativar este complemento se roda o Varnish no seu servidor." -#: inc/Engine/Admin/Settings/Page.php:1834 +#: inc/Engine/Admin/Settings/Page.php:1835 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " @@ -1586,15 +1586,15 @@ msgstr "" "O cache Varnish será esvaziado sempre que o WP Rocket esvaziar o seu cache " "para garantir que o conteúdo esteja sempre atualizado.
%1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:1869 +#: inc/Engine/Admin/Settings/Page.php:1870 msgid "WebP Compatibility" msgstr "Compatibilidade com WebP" -#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:1876 msgid "Improve browser compatibility for WebP images." msgstr "Melhora a compatibilidade com os navegadores para imagens WebP." -#: inc/Engine/Admin/Settings/Page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:1880 #, php-format msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " @@ -1607,11 +1607,11 @@ msgstr "" "para você. Para criar imagens WebP nós recomendamos o %1$sImagify%2$s. " "%3$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1899 +#: inc/Engine/Admin/Settings/Page.php:1900 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "Esvazia o cache Sucuri quando o cache do WP Rocket é esvaziado." -#: inc/Engine/Admin/Settings/Page.php:1902 +#: inc/Engine/Admin/Settings/Page.php:1903 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -1619,48 +1619,48 @@ msgstr "" "Forneça a sua chave da API para limpar o cache Sucuri quando o cache do WP " "Rocket é limpo." -#: inc/Engine/Admin/Settings/Page.php:1910 -#: inc/Engine/Admin/Settings/Page.php:2054 +#: inc/Engine/Admin/Settings/Page.php:1911 +#: inc/Engine/Admin/Settings/Page.php:2055 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1916 +#: inc/Engine/Admin/Settings/Page.php:1917 msgid "Synchronize Sucuri cache with this add-on." msgstr "Sincronize o cache Sucuri com este complemento." -#: inc/Engine/Admin/Settings/Page.php:1954 +#: inc/Engine/Admin/Settings/Page.php:1955 msgid "Cloudflare credentials" msgstr "Credenciais do Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1963 +#: inc/Engine/Admin/Settings/Page.php:1964 msgid "Cloudflare settings" msgstr "Configurações do Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1977 +#: inc/Engine/Admin/Settings/Page.php:1978 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Chave global da API:" -#: inc/Engine/Admin/Settings/Page.php:1978 +#: inc/Engine/Admin/Settings/Page.php:1979 msgctxt "Cloudflare" msgid "Find your API key" msgstr "Encontre a sua chave da API" -#: inc/Engine/Admin/Settings/Page.php:1990 +#: inc/Engine/Admin/Settings/Page.php:1991 msgctxt "Cloudflare" msgid "Account email" msgstr "E-mail da Conta" -#: inc/Engine/Admin/Settings/Page.php:1999 +#: inc/Engine/Admin/Settings/Page.php:2000 msgctxt "Cloudflare" msgid "Zone ID" msgstr "ID de Zona" -#: inc/Engine/Admin/Settings/Page.php:2009 +#: inc/Engine/Admin/Settings/Page.php:2010 msgid "Development mode" msgstr "Modo de desenvolvimento" -#: inc/Engine/Admin/Settings/Page.php:2011 +#: inc/Engine/Admin/Settings/Page.php:2012 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " @@ -1669,11 +1669,11 @@ msgstr "" "Ativa temporariamente o modo de desenvolvimento no seu site. Esta opção se " "desativa automaticamente após 3 horas. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:2019 +#: inc/Engine/Admin/Settings/Page.php:2020 msgid "Optimal settings" msgstr "Configurações ótimas" -#: inc/Engine/Admin/Settings/Page.php:2020 +#: inc/Engine/Admin/Settings/Page.php:2021 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -1681,11 +1681,11 @@ msgstr "" "Melhora automaticamente as suas configurações no Cloudflare para velocidade," " desempenho e compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:2028 +#: inc/Engine/Admin/Settings/Page.php:2029 msgid "Relative protocol" msgstr "Protocolo relativo" -#: inc/Engine/Admin/Settings/Page.php:2029 +#: inc/Engine/Admin/Settings/Page.php:2030 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -1695,11 +1695,11 @@ msgstr "" "arquivos estáticos (CSS, JS, imagens) serão reescritos para usar // ao invés" " de http:// ou https://." -#: inc/Engine/Admin/Settings/Page.php:2067 +#: inc/Engine/Admin/Settings/Page.php:2068 msgid "Sucuri credentials" msgstr "Credenciais Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2080 +#: inc/Engine/Admin/Settings/Page.php:2081 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -1708,7 +1708,7 @@ msgstr "" "A chave da API do Firewal (do plugin) precisa estar no formato{32 " "caracteres}/{32 caracteres}:" -#: inc/Engine/Admin/Settings/Page.php:2081 +#: inc/Engine/Admin/Settings/Page.php:2082 msgctxt "Sucuri" msgid "Find your API key" msgstr "Encontre a sua chave da API" @@ -2080,7 +2080,7 @@ msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "" "Vá até as %1$sConfigurações do WP Rocket%2$s para acompanhar o progresso." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:370 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" "Critical CSS generation is currently running: %1$d of %2$d page types " @@ -2089,16 +2089,16 @@ msgstr "" "A geração do CSS crítico está sendo executada: %1$d de %2$d tipos de páginas" " concluídos. (Atualize a página para ver o progresso)" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:442 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 #, php-format msgid "Critical CSS generation finished for %1$d of %2$d page types." msgstr "Geração de CSS crítico concluída para %1$d de %2$d tipos de página." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Critical CSS generation encountered one or more errors." msgstr "A geração de CSS crítico encontrou um ou mais erros." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Learn more." msgstr "Saiba mais." @@ -2236,6 +2236,29 @@ msgstr "Pré-Carregar" msgid "Critical Path CSS Generation Process" msgstr "Processo de geração do CSS do caminho crítico" +#: inc/Engine/License/Renewal.php:401 +#, php-format +msgid "" +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" +"Você precisa de uma licença válida para continuar usando este recurso. " +"%1$sRenove agora%2$s antes de perder o acesso." + +#: inc/Engine/License/Renewal.php:412 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" +"Você precisa de uma licença ativa para ativar esta opção. %1$sRenove " +"agora%2$s." + +#: inc/Engine/License/Renewal.php:423 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." +msgstr "" +"Você precisa de uma licença ativa para ativar esta opção. %1$sMais " +"informações%2$s." + #: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" @@ -2288,38 +2311,94 @@ msgid "Upgrade now" msgstr "Atualize agora" #: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner.php:37 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 #: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 msgid "Dismiss this notice" msgstr "Descartar essa notificação" -#: inc/Engine/License/views/renewal-expired-banner.php:12 -msgid "Your WP Rocket license is expired!" -msgstr "A sua licença do WP Rocket está expirada!" +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." +msgstr "O recurso de Otimizar a Entrega do CSS está desativado." -#: inc/Engine/License/views/renewal-expired-banner.php:17 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously " +"options." +msgstr "" +"Você não pode mais usar as opções de Remover o CSS Não Usado ou Carregar o " +"CSS de forma assíncrona." + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"%1$sYour website could be much faster%2$s if it could take advantage of our " -"new features and enhancements. 🚀" +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " +"which addresses a PageSpeed Insights recommendation and improves your page " +"performance." msgstr "" -"%1$sSeu website pode ser muito mais rápido%2$s se você puder tirar vantagem " -"dos nossos novos recursos e melhorias. 🚀" +"Você precisa de uma %1$slicença ativa%2$s para manter a otimização da " +"entrega do seu CSS, que aciona uma recomendação do PageSpeed Insights e " +"melhora o desempenho da sua página." -#: inc/Engine/License/views/renewal-expired-banner.php:27 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Renew your license to have access to the %1$slatest version of WP Rocket%2$s" -" and to the wonderful %1$sassistance of our Support Team%2$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: " +"you’ll only pay %1$s%4$s%2$s!" msgstr "" -"Renove a sua licença para ter acesso à %1$sversão mais recente do WP " -"Rocket%2$s e à incrível %1$sassistência da nossa Equipe de Suporte%2$s." +"Renove a sua licença agora por um ano e obtenha %1$s%3$sGRÁTIS%2$s " +"imediatamente: você paga apenas %1$s%4$s%2$s!" -#: inc/Engine/License/views/renewal-expired-banner.php:35 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 #: inc/Engine/License/views/renewal-soon-banner.php:46 msgid "Renew now" msgstr "Renove agora" +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "Em breve você perderá acesso a alguns recursos" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#, php-format +msgid "" +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." +msgstr "" +"Você precisa de uma %1$slicença ativa para continuar otimizando a entrega do" +" seu CSS%2$s." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options" +" to address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" +"Os recursos de Remover o CSS Não Usado e Carregar o CSS de forma assíncrona " +"são ótimas opções para acionar recomendações do PageSpeed Insights e " +"melhorar o desempenho do seu site." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "Serão %1$sautomaticamente desativados em %3$s%2$s." + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "A sua licença do WP Rocket está expirada!" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 +#, php-format +msgid "" +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" +msgstr "" +"Você poderia tornar o seu site muito mais rápido se tivesse acesso aos " +"nossos %1$snovos recursos e melhorias%2$s.🚀" + #: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" @@ -2462,13 +2541,13 @@ msgstr "%1$s: A opção do CSS usado não está ativa!" msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: Cache do CSS usado limpo!" -#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:702 +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:713 msgid "Clear Used CSS of this URL" msgstr "Limpar o CSS usado deste URL" #: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 -msgid "WP Rocket RUCSS pending jobs" -msgstr "Trabalhos pendentes do WP Rocket RUCSS" +msgid "WP Rocket Remove Unused CSS pending jobs" +msgstr "Remover trabalhos pendentes do CSS Não Usado do WP Rocket" #: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 #: inc/deprecated/3.3.php:770 @@ -2482,6 +2561,20 @@ msgstr "" " configurações deste servidor. Se continuar a ter problemas contate o suporte." +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 +#, php-format +msgid "%s Update Rollback" +msgstr "Reversão da Atualização %s" + +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 +#, php-format +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" +msgstr "%1$sRetorne ao%2$sdo WP Rocket ou %3$svá para a página de Plugins%2$s" + #: inc/Engine/Preload/Homepage.php:153 #, php-format msgid "" @@ -2823,46 +2916,34 @@ msgstr "Perguntas Frequentes" msgid "Settings" msgstr "Configurações" -#: inc/admin/admin.php:237 inc/admin/admin.php:252 -#: inc/classes/class-wp-rocket-requirements-check.php:203 -#: inc/classes/class-wp-rocket-requirements-check.php:214 -#, php-format -msgid "%s Update Rollback" -msgstr "Reversão da Atualização %s" - -#: inc/admin/admin.php:278 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" -msgstr "%1$sRetorne ao%2$sdo WP Rocket ou %3$svá para a página de Plugins%2$s" - -#: inc/admin/admin.php:516 +#: inc/admin/admin.php:435 msgid "Settings import failed: you do not have the permissions to do this." msgstr "" "A importação das configurações falhou: você não tem permissões para fazer " "isso." -#: inc/admin/admin.php:520 +#: inc/admin/admin.php:439 msgid "Settings import failed: no file uploaded." msgstr "A importação das configurações falhou: nenhum arquivo foi enviado." -#: inc/admin/admin.php:524 +#: inc/admin/admin.php:443 msgid "Settings import failed: incorrect filename." msgstr "A importação das configurações falhou: nome incorreto de arquivo." -#: inc/admin/admin.php:535 +#: inc/admin/admin.php:454 msgid "Settings import failed: incorrect filetype." msgstr "A importação das configurações falhou: tipo de arquivo incorreto." -#: inc/admin/admin.php:545 +#: inc/admin/admin.php:464 msgid "Settings import failed: " msgstr "A importação das configurações falhou:" -#: inc/admin/admin.php:561 +#: inc/admin/admin.php:480 msgid "Settings import failed: unexpected file content." msgstr "" "A importação das configurações falhou: arquivo com conteúdo inesperado." -#: inc/admin/admin.php:591 +#: inc/admin/admin.php:510 msgid "Settings imported and saved." msgstr "Configurações importadas e salvas." @@ -3620,16 +3701,16 @@ msgstr "Configurações anonimizadas do WP Rocket:" msgid "Which WP Rocket settings are active" msgstr "Quais configurações do WP Rocket estão ativas" -#: inc/functions/options.php:471 +#: inc/functions/options.php:473 msgid "The provided license data are not valid." msgstr "Os dados fornecidos de licensa não são válidos." -#: inc/functions/options.php:474 +#: inc/functions/options.php:476 #, php-format msgid "To resolve, please %1$scontact support%2$s." msgstr "Para resolver, %1$scontate o suporte%2$s." -#: inc/functions/options.php:533 inc/functions/options.php:572 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from " "your website." @@ -3637,7 +3718,7 @@ msgstr "" "Falha na validação da licença. Nosso servidor não pôde resolver a " "solicitação do seu website." -#: inc/functions/options.php:533 +#: inc/functions/options.php:535 #, php-format msgid "" "Try clicking %1$sValidate License%2$s below. If the error persists, follow " @@ -3646,7 +3727,7 @@ msgstr "" "Experimente clicar em %1$sValidar a Licença%2$s abaixo. Se o erro persistir," " siga %3$seste guia%4$s." -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" @@ -3654,46 +3735,46 @@ msgstr "" "Falha na validação da licença. Você pode estar usando uma versão " "desatualizada do plugin. Faça o seguinte:" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" msgstr "Conecte-se à sua %1$sconta%2$s do WP Rocket" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" msgstr "Baixe o arquivo zip" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" msgstr "Reinstalar" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 #, php-format msgid "" "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." msgstr "Se você não tem uma conta do WP Rocket, %1$scompre uma licença%2$s." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" "A validação da licença falhou: Esta conta de usuário não existe em nosso " "banco de dados." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." msgstr "Contacte o suporte para solucionar." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 msgid "License validation failed. This user account is blocked." msgstr "A validação da licença falhou. Esta conta de usuário está bloqueada." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." msgstr "Veja %1$seste guia%2$spara mais informações." -#: inc/functions/options.php:572 +#: inc/functions/options.php:574 #, php-format msgid "" "Try clicking %1$sSave Changes%2$s below. If the error persists, follow " @@ -3702,21 +3783,21 @@ msgstr "" "Experimente clicar abaixo em %1$sSalvar Alterações%2$s. Se o erro persistir," " siga %3$seste guia%4$s." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 msgid "Your license is not valid." msgstr "Sua licença não é válida." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." msgstr "Certifique-se de ter uma %1$slicença ativa do WP Rocket%2$s." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "" "Você já adicionou o máximo de sites permitidos para a sua licença atual." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this " @@ -3725,25 +3806,25 @@ msgstr "" "Atualize sua %1$sconta%2$s ou %3$stransfira a sua licença%2$s para este " "domínio." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 msgid "This website is not allowed." msgstr "Este website não é permitido." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." msgstr "Por favor %1$scontacte o suporte%2$s." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 msgid "This license key is not recognized." msgstr "Esta chave de licença não foi reconhecida." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "Se o problema persistir, %1$scontacte o suporte%2$s." -#: inc/functions/options.php:597 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" msgstr "A validação da licença falhou: %s" diff --git a/languages/rocket-pt_PT.mo b/languages/rocket-pt_PT.mo index 6ed27d448d..17a5e89232 100644 Binary files a/languages/rocket-pt_PT.mo and b/languages/rocket-pt_PT.mo differ diff --git a/languages/rocket-pt_PT.po b/languages/rocket-pt_PT.po index 4626411f68..e0a6ed5dba 100644 --- a/languages/rocket-pt_PT.po +++ b/languages/rocket-pt_PT.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2022-06-23 14:06-0400\n" +"POT-Creation-Date: 2022-07-28 14:01-0400\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: Pedro Mendonça , 2022\n" "Language-Team: Portuguese (Portugal) (https://www.transifex.com/wp-media/teams/18133/pt_PT/)\n" @@ -271,27 +271,27 @@ msgstr[1] "A API da firewall do Sucuri devolveu os seguintes erros: %s" msgstr[2] "A API da firewall do Sucuri devolveu os seguintes erros: %s" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1442 +#: inc/Engine/Admin/Settings/Page.php:1443 msgid "Revisions" msgstr "Revisões" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1452 +#: inc/Engine/Admin/Settings/Page.php:1453 msgid "Auto Drafts" msgstr "Rascunhos automáticos" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1463 msgid "Trashed Posts" msgstr "Conteúdos no lixo" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1472 +#: inc/Engine/Admin/Settings/Page.php:1473 msgid "Spam Comments" msgstr "Comentários de spam" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1483 msgid "Trashed Comments" msgstr "Comentários no lixo" @@ -350,36 +350,36 @@ msgstr "Validar licença" msgid "Unavailable" msgstr "Indisponível" -#: inc/Engine/Admin/Settings/Page.php:341 inc/deprecated/deprecated.php:1789 +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 #: views/settings/page-sections/dashboard.php:80 msgid "License" msgstr "Licença" -#: inc/Engine/Admin/Settings/Page.php:358 +#: inc/Engine/Admin/Settings/Page.php:359 msgid "API key" msgstr "Chave de API" -#: inc/Engine/Admin/Settings/Page.php:373 +#: inc/Engine/Admin/Settings/Page.php:374 msgid "Email address" msgstr "Endereço de email" -#: inc/Engine/Admin/Settings/Page.php:399 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Dashboard" msgstr "Painel" -#: inc/Engine/Admin/Settings/Page.php:400 +#: inc/Engine/Admin/Settings/Page.php:401 msgid "Get help, account info" msgstr "Obter ajuda, informações da conta" -#: inc/Engine/Admin/Settings/Page.php:409 +#: inc/Engine/Admin/Settings/Page.php:410 msgid "My Status" msgstr "O meu estado" -#: inc/Engine/Admin/Settings/Page.php:419 views/settings/page.php:75 +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 msgid "Rocket Analytics" msgstr "Rocket Analytics" -#: inc/Engine/Admin/Settings/Page.php:421 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" "I agree to share anonymous data with the development team to help improve WP" @@ -388,23 +388,23 @@ msgstr "" "Concordo em partilhar informações anónimas com a equipa de desenvolvimento " "para ajudar a melhorar o WP Rocket. %1$sQue informações recolhemos?%2$s" -#: inc/Engine/Admin/Settings/Page.php:445 inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 msgid "Cache" msgstr "Cache" -#: inc/Engine/Admin/Settings/Page.php:446 +#: inc/Engine/Admin/Settings/Page.php:447 msgid "Basic cache options" msgstr "Opções básicas de cache" -#: inc/Engine/Admin/Settings/Page.php:453 +#: inc/Engine/Admin/Settings/Page.php:454 msgid "Mobile Cache" msgstr "Cache de dispositivos móveis" -#: inc/Engine/Admin/Settings/Page.php:455 +#: inc/Engine/Admin/Settings/Page.php:456 msgid "Speed up your site for mobile visitors." msgstr "Acelere o seu site em dispositivos móveis." -#: inc/Engine/Admin/Settings/Page.php:460 +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" "We detected you use a plugin that requires a separate cache for mobile, and " "automatically enabled this option for compatibility." @@ -413,11 +413,11 @@ msgstr "" "dispositivos móveis, e foi activada esta opção para garantir a " "compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:464 +#: inc/Engine/Admin/Settings/Page.php:465 msgid "User Cache" msgstr "Cache de utilizadores" -#: inc/Engine/Admin/Settings/Page.php:467 +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" "%1$sUser cache%2$s is great when you have user-specific or restricted " @@ -426,11 +426,11 @@ msgstr "" "A %1$scache de utilizadores%2$s é óptima quando tem conteúdos específicos " "para utilizadores ou conteúdos restritos no seu site." -#: inc/Engine/Admin/Settings/Page.php:475 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Cache Lifespan" msgstr "Expiração da cache" -#: inc/Engine/Admin/Settings/Page.php:478 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " @@ -441,19 +441,19 @@ msgstr "" "especificada.
Active o %1$spré-carregamento%2$s para a cache ser " "reconstruída automaticamente após a sua expiração." -#: inc/Engine/Admin/Settings/Page.php:492 +#: inc/Engine/Admin/Settings/Page.php:493 msgid "Enable caching for logged-in WordPress users" msgstr "Activar cache para utilizadores do WordPress com sessão iniciada" -#: inc/Engine/Admin/Settings/Page.php:500 +#: inc/Engine/Admin/Settings/Page.php:501 msgid "Enable caching for mobile devices" msgstr "Activar cache para dispositivos móveis" -#: inc/Engine/Admin/Settings/Page.php:515 +#: inc/Engine/Admin/Settings/Page.php:516 msgid "Separate cache files for mobile devices" msgstr "Ficheiros de cache separados para dispositivos móveis" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:518 #, php-format msgid "" "Most modern themes are responsive and should work without a separate cache. " @@ -464,13 +464,13 @@ msgstr "" "separada. Active isto apenas se tiver um tema ou plugin dedicado a " "dispositivos móveis. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "Especifique o tempo após o qual a cache global é limpa
(0 = ilimitado)" -#: inc/Engine/Admin/Settings/Page.php:535 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" @@ -479,32 +479,32 @@ msgstr "" "Reduza a expiração para 10 horas ou menos se notar erros que parecem surgir " "periodicamente. %1$sPorquê?%2$s" -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:542 #: inc/Engine/License/views/promo-banner.php:30 #: inc/Engine/License/views/renewal-soon-banner.php:13 msgid "Hours" msgstr "Horas" -#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/Admin/Settings/Page.php:543 #: inc/Engine/License/views/promo-banner.php:29 #: inc/Engine/License/views/renewal-soon-banner.php:12 msgid "Days" msgstr "Dias" -#: inc/Engine/Admin/Settings/Page.php:577 +#: inc/Engine/Admin/Settings/Page.php:578 msgid "File Optimization" msgstr "Optimizar ficheiros" -#: inc/Engine/Admin/Settings/Page.php:578 +#: inc/Engine/Admin/Settings/Page.php:579 msgid "Optimize CSS & JS" msgstr "Optimize o CSS e JS" -#: inc/Engine/Admin/Settings/Page.php:585 +#: inc/Engine/Admin/Settings/Page.php:586 msgid "CSS Files" msgstr "Ficheiros de CSS" -#: inc/Engine/Admin/Settings/Page.php:592 -#: inc/Engine/Admin/Settings/Page.php:602 +#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" "%1$s Minification is currently activated in Autoptimize. If" @@ -514,11 +514,11 @@ msgstr "" "Autoptimize. Se quiser usar a minificação do %2$s, " "desactive esta opção no Autoptimize." -#: inc/Engine/Admin/Settings/Page.php:595 +#: inc/Engine/Admin/Settings/Page.php:596 msgid "JavaScript Files" msgstr "Ficheiros de JavaScript" -#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" "If you have problems after activating this option, copy and paste the " @@ -531,7 +531,7 @@ msgstr "" "problemas:
%1$s

Além disto, por favor consulte" " a nossa %2$sdocumentação%3$s para uma lista de exclusões compatíveis." -#: inc/Engine/Admin/Settings/Page.php:616 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " @@ -542,27 +542,27 @@ msgstr "" "Remova-os para tirar total partido desta opção.
Se isto criar algum " "problema, recupere as exclusões por omissão %1$saqui%2$s" -#: inc/Engine/Admin/Settings/Page.php:625 +#: inc/Engine/Admin/Settings/Page.php:626 msgid "Minify CSS files" msgstr "Minificar ficheiros de CSS" -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:627 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "A minificação do CSS remove espaços em branco e comentários para reduzir o " "tamanho do ficheiro." -#: inc/Engine/Admin/Settings/Page.php:639 -#: inc/Engine/Admin/Settings/Page.php:663 -#: inc/Engine/Admin/Settings/Page.php:793 -#: inc/Engine/Admin/Settings/Page.php:817 -msgid "This could break things!" -msgstr "Isto poderá estragar alguma coisa!" - #: inc/Engine/Admin/Settings/Page.php:640 #: inc/Engine/Admin/Settings/Page.php:664 #: inc/Engine/Admin/Settings/Page.php:794 #: inc/Engine/Admin/Settings/Page.php:818 +msgid "This could break things!" +msgstr "Isto poderá estragar alguma coisa!" + +#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" "If you notice any errors on your website after having activated this " "setting, just deactivate it again, and your site will be back to normal." @@ -570,17 +570,17 @@ msgstr "" "Se notar quaisquer erros no seu site depois de activar esta opção, basta " "desactivar de novo para o seu site voltar ao normal." -#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:642 msgid "Activate minify CSS" msgstr "Activar minificação do CSS" -#: inc/Engine/Admin/Settings/Page.php:646 +#: inc/Engine/Admin/Settings/Page.php:647 msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" "Combinar ficheiros de CSS (Active a minificação dos ficheiros de CSS " "para poder seleccionar)" -#: inc/Engine/Admin/Settings/Page.php:648 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" "Combine CSS merges all your files into 1, reducing HTTP requests. Not " @@ -590,7 +590,7 @@ msgstr "" "pedidos HTTP. Não é recomendado se o seu site utilizar HTTP/2. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:649 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" "For compatibility and best results, this option is disabled when Remove " "unused CSS is enabled." @@ -598,15 +598,15 @@ msgstr "" "Para compatibilidade e melhores resultados, esta opção é desactivada ao " "activar a opção de remover CSS não utilizado." -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:666 msgid "Activate combine CSS" msgstr "Activar combinação do CSS" -#: inc/Engine/Admin/Settings/Page.php:670 inc/admin/options.php:122 +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 msgid "Excluded CSS Files" msgstr "Ficheiros de CSS excluídos" -#: inc/Engine/Admin/Settings/Page.php:671 +#: inc/Engine/Admin/Settings/Page.php:672 msgid "" "Specify URLs of CSS files to be excluded from minification and concatenation" " (one per line)." @@ -614,7 +614,7 @@ msgstr "" "Especifique os URL de ficheiros de CSS a serem excluídos da minificação e " "concatenação (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:672 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -624,7 +624,7 @@ msgstr "" "Use wildcards (.*).css para excluir todos os ficheiros de CSS localizados " "num caminho específico." -#: inc/Engine/Admin/Settings/Page.php:674 +#: inc/Engine/Admin/Settings/Page.php:675 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -633,12 +633,12 @@ msgstr "" "Terceiros: Use o caminho completo do URL ou apenas o nome " "do domínio, para excluir CSS externo. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:687 -#: inc/Engine/Admin/Settings/Page.php:709 +#: inc/Engine/Admin/Settings/Page.php:688 +#: inc/Engine/Admin/Settings/Page.php:710 msgid "Optimize CSS delivery" msgstr "Optimizar entrega do CSS" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -649,7 +649,7 @@ msgstr "" "recomendado Remover CSS não utilizado, mas apenas para utilizadores com uma " "licença activa." -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -659,7 +659,7 @@ msgstr "" " seu site. Apenas pode seleccionar um método. Para um óptimo desempenho é " "recomendado Remover CSS não utilizado." -#: inc/Engine/Admin/Settings/Page.php:702 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" @@ -668,11 +668,11 @@ msgstr "" "As funcionalidades de optimizar entrega do CSS estão desactivadas em " "ambientes locais. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:722 +#: inc/Engine/Admin/Settings/Page.php:723 msgid "Remove Unused CSS (Beta)" msgstr "Remover CSS não utilizado (Beta)" -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." @@ -682,11 +682,11 @@ msgstr "" "página e os pedidos HTTP. Recomendado para um melhor desempenho. Teste com " "cuidado! %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:727 +#: inc/Engine/Admin/Settings/Page.php:728 msgid "We’re still working on it!" msgstr "Ainda estamos a trabalhar nisto!" -#: inc/Engine/Admin/Settings/Page.php:728 +#: inc/Engine/Admin/Settings/Page.php:729 msgid "" "This is a beta feature. We’re providing you early access but some changes " "might be added later on. If you notice any errors on your website, simply " @@ -696,15 +696,15 @@ msgstr "" "poderão ser acrescentadas algumas alterações mais tarde. Se notar algum erro" " no seu site, basta desactivar a funcionalidade." -#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:730 msgid "Activate Remove Unused CSS" msgstr "Activar a remoção de CSS não utilizado" -#: inc/Engine/Admin/Settings/Page.php:735 +#: inc/Engine/Admin/Settings/Page.php:736 msgid "CSS safelist" msgstr "CSS a não remover" -#: inc/Engine/Admin/Settings/Page.php:736 +#: inc/Engine/Admin/Settings/Page.php:737 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -712,11 +712,11 @@ msgstr "" "Especifique os ficheiros, ID ou classes CSS que não devem ser removidos (um " "por linha)." -#: inc/Engine/Admin/Settings/Page.php:751 inc/admin/ui/meta-boxes.php:80 +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 msgid "Load CSS asynchronously" -msgstr "Carregar CSS de modo assíncrono" +msgstr "Carregamento assíncrono de CSS" -#: inc/Engine/Admin/Settings/Page.php:754 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format msgctxt "WP Critical CSS compatibility" msgid "" @@ -724,9 +724,9 @@ msgid "" " to use WP Rocket’s load CSS asynchronously option, disable the %1$s plugin." msgstr "" "De momento o CSS é carregado de modo assíncrono pelo plugin %1$s. Se quiser " -"usar o carregamento assíncrono do CSS do WP Rocket, desactive o plugin %1$s." +"usar o carregamento assíncrono de CSS do WP Rocket, desactive o plugin %1$s." -#: inc/Engine/Admin/Settings/Page.php:756 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" @@ -734,11 +734,11 @@ msgstr "" "Gera CSS do caminho crítico e carrega o CSS de modo assíncrono. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:762 +#: inc/Engine/Admin/Settings/Page.php:763 msgid "Fallback critical CSS" msgstr "Alternativa ao CSS crítico" -#: inc/Engine/Admin/Settings/Page.php:764 +#: inc/Engine/Admin/Settings/Page.php:765 #, php-format msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " @@ -747,29 +747,29 @@ msgstr "" "Fornece uma alternativa caso o CSS do caminho crítico gerado automaticamente" " esteja incompleto. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:779 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "Minify JavaScript files" msgstr "Minificar ficheiros de JavaScript" -#: inc/Engine/Admin/Settings/Page.php:780 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "A minificação do JavaScript remove espaços em branco e comentários para " "reduzir o tamanho do ficheiro." -#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:796 msgid "Activate minify JavaScript" msgstr "Activar minificação do JavaScript" -#: inc/Engine/Admin/Settings/Page.php:800 +#: inc/Engine/Admin/Settings/Page.php:801 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" "Combinar ficheiros de JavaScript (Active a minificação dos ficheiros de " "JavaScript para poder seleccionar)" -#: inc/Engine/Admin/Settings/Page.php:802 +#: inc/Engine/Admin/Settings/Page.php:803 #, php-format msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" @@ -780,7 +780,7 @@ msgstr "" "terceiros, reduzindo os pedidos HTTP. Não é recomendado se o seu site " "utilizar HTTP/2. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:803 +#: inc/Engine/Admin/Settings/Page.php:804 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -788,15 +788,15 @@ msgstr "" "Para compatibilidade e melhores resultados, esta opção é desactivada ao " "activar a opção de diferir a execução de JavaScript." -#: inc/Engine/Admin/Settings/Page.php:819 +#: inc/Engine/Admin/Settings/Page.php:820 msgid "Activate combine JavaScript" msgstr "Activar combinação do JavaScript" -#: inc/Engine/Admin/Settings/Page.php:824 inc/admin/options.php:123 +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 msgid "Excluded Inline JavaScript" msgstr "JavaScript em linha excluído" -#: inc/Engine/Admin/Settings/Page.php:826 +#: inc/Engine/Admin/Settings/Page.php:827 #, php-format msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" @@ -805,13 +805,13 @@ msgstr "" "Especifique padrões de JavaScript em linha a serem excluídos da concatenação" " (um por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:842 -#: inc/Engine/Admin/Settings/Page.php:875 -#: inc/Engine/Admin/Settings/Page.php:904 inc/admin/options.php:124 +#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 msgid "Excluded JavaScript Files" msgstr "Ficheiros de JavaScript excluídos" -#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:844 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -819,7 +819,7 @@ msgstr "" "Especifique os URL de ficheiros de JavaScript a serem excluídos da " "minificação e concatenação (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:844 +#: inc/Engine/Admin/Settings/Page.php:845 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -829,7 +829,7 @@ msgstr "" "Use wildcards (.*).js para excluir todos os ficheiros de JS localizados num " "caminho específico." -#: inc/Engine/Admin/Settings/Page.php:846 +#: inc/Engine/Admin/Settings/Page.php:847 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -838,11 +838,11 @@ msgstr "" "Terceiros: Use o caminho completo do URL ou apenas o nome " "do domínio, para excluir JS externo. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:862 +#: inc/Engine/Admin/Settings/Page.php:863 msgid "Load JavaScript deferred" msgstr "Diferir o carregamento de JavaScript" -#: inc/Engine/Admin/Settings/Page.php:864 +#: inc/Engine/Admin/Settings/Page.php:865 #, php-format msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " @@ -852,7 +852,7 @@ msgstr "" " do seu site e pode melhorar o tempo de carregamento. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:877 +#: inc/Engine/Admin/Settings/Page.php:878 #, php-format msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " @@ -861,11 +861,11 @@ msgstr "" "Especifique os URL ou palavras-chave de ficheiros de JavaScript a excluir do" " diferimento (um por linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:893 inc/admin/ui/meta-boxes.php:82 +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 msgid "Delay JavaScript execution" msgstr "Diferir execução de JavaScript" -#: inc/Engine/Admin/Settings/Page.php:895 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" "Improves performance by delaying the loading of JavaScript files until user " @@ -875,7 +875,7 @@ msgstr "" "até interacção do utilizador (como scroll ou clique). %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:905 +#: inc/Engine/Admin/Settings/Page.php:906 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -883,23 +883,23 @@ msgstr "" "Especifique os URL ou palavras-chave que possam identificar o JavaScript em " "linha ou em ficheiros a excluir da execução em diferido (um por linha)." -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:937 msgid "Media" msgstr "Multimédia" -#: inc/Engine/Admin/Settings/Page.php:937 +#: inc/Engine/Admin/Settings/Page.php:938 msgid "LazyLoad, image dimensions" msgstr "Carregamento diferido, dimensões de imagens" -#: inc/Engine/Admin/Settings/Page.php:946 +#: inc/Engine/Admin/Settings/Page.php:947 msgid "Autoptimize" msgstr "Autoptimize" -#: inc/Engine/Admin/Settings/Page.php:991 +#: inc/Engine/Admin/Settings/Page.php:992 msgid "LazyLoad" msgstr "Carregamento diferido" -#: inc/Engine/Admin/Settings/Page.php:994 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" "It can improve actual and perceived loading time as images, iframes, and " @@ -911,7 +911,7 @@ msgstr "" "do ecrã (ou próximos), e reduz o número de pedidos HTTP. %1$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1001 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " @@ -920,11 +920,11 @@ msgstr "" "De momento o carregamento diferido está activado em %2$s. Se quiser usar o " "carregamento diferido do WP Rocket, desactive esta opção em %2$s." -#: inc/Engine/Admin/Settings/Page.php:1004 +#: inc/Engine/Admin/Settings/Page.php:1005 msgid "Image Dimensions" msgstr "Dimensões das imagens" -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" "Add missing width and height attributes to images. Helps prevent layout " @@ -935,11 +935,11 @@ msgstr "" "evitar alterações de layout e melhora a experiência de leitura dos seus " "visitantes. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1026 +#: inc/Engine/Admin/Settings/Page.php:1027 msgid "Enable for images" msgstr "Activar para imagens" -#: inc/Engine/Admin/Settings/Page.php:1038 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " @@ -948,22 +948,22 @@ msgstr "" "De momento o carregamento diferido de imagens está activado em %2$s. Se " "quiser usar o carregamento diferido do %1$s, desactive esta opção em %2$s." -#: inc/Engine/Admin/Settings/Page.php:1046 +#: inc/Engine/Admin/Settings/Page.php:1047 msgid "Enable for iframes and videos" msgstr "Activar para iframes e vídeos" -#: inc/Engine/Admin/Settings/Page.php:1061 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "Replace YouTube iframe with preview image" msgstr "Substituir iframes do YouTube por imagens de pré-visualização" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 #, php-format msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "A substituição de iframes do YouTube por imagens de pré-visualização não é " "compatível com %2$s." -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -971,11 +971,11 @@ msgstr "" "Isto pode melhorar significativamente o tempo de carregamento se tiver " "muitos vídeos do YouTube numa só página." -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1079 msgid "Excluded images or iframes" msgstr "Imagens ou iframes excluídos" -#: inc/Engine/Admin/Settings/Page.php:1080 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" "Specify keywords (e.g. image filename, CSS class, domain) from the image or " @@ -985,23 +985,23 @@ msgstr "" " domínio) das imagens ou dos códigos de iframe a serem excluídos (uma por " "linha). %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1089 msgid "Add missing image dimensions" msgstr "Adicionar dimensões em falta das imagens" -#: inc/Engine/Admin/Settings/Page.php:1107 inc/deprecated/deprecated.php:1776 +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 msgid "Preload" msgstr "Pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1109 msgid "Generate cache files, preload fonts" msgstr "Crie ficheiros de cache, pré-carregue tipos de letra" -#: inc/Engine/Admin/Settings/Page.php:1119 +#: inc/Engine/Admin/Settings/Page.php:1120 msgid "Preload Cache" msgstr "Pré-carregamento da cache" -#: inc/Engine/Admin/Settings/Page.php:1122 +#: inc/Engine/Admin/Settings/Page.php:1123 #, php-format msgid "" "When you enable preloading WP Rocket will generate the cache starting with " @@ -1016,11 +1016,11 @@ msgstr "" "conteúdos, e pode ser iniciado manualmente a partir da barra de " "administração ou do %1$spainel do WP Rocket%2$s." -#: inc/Engine/Admin/Settings/Page.php:1130 +#: inc/Engine/Admin/Settings/Page.php:1131 msgid "Preload Links" msgstr "Pré-carregamento das ligações" -#: inc/Engine/Admin/Settings/Page.php:1133 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" "Link preloading improves the perceived load time by downloading a page when " @@ -1030,11 +1030,11 @@ msgstr "" "através de descarregar a página assim que o utilizador passa com o rato " "sobre a respectiva ligação. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1141 +#: inc/Engine/Admin/Settings/Page.php:1142 msgid "Prefetch DNS Requests" msgstr "Antecipar pedidos de DNS" -#: inc/Engine/Admin/Settings/Page.php:1143 +#: inc/Engine/Admin/Settings/Page.php:1144 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1042,11 +1042,11 @@ msgstr "" "A antecipação do pedido de DNS pode acelerar o carregamento de ficheiros " "externos, especialmente em redes móveis" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1149 msgid "Preload Fonts" msgstr "Pré-carregar tipos de letra" -#: inc/Engine/Admin/Settings/Page.php:1151 +#: inc/Engine/Admin/Settings/Page.php:1152 #, php-format msgid "" "Improves performance by helping browsers discover fonts in CSS files. " @@ -1055,27 +1055,27 @@ msgstr "" "Melhora o desempenho ao ajudar os navegadores a descobrir tipos de letra em " "ficheiros de CSS. %1$sMais informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1165 +#: inc/Engine/Admin/Settings/Page.php:1166 msgid "Activate Preloading" msgstr "Activar pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1184 +#: inc/Engine/Admin/Settings/Page.php:1185 msgid "Activate sitemap-based cache preloading" msgstr "Activar o pré-carregamento de cache com base em sitemaps" -#: inc/Engine/Admin/Settings/Page.php:1203 +#: inc/Engine/Admin/Settings/Page.php:1204 msgid "Sitemaps for preloading" msgstr "Sitemaps a pré-carregar" -#: inc/Engine/Admin/Settings/Page.php:1207 +#: inc/Engine/Admin/Settings/Page.php:1208 msgid "Specify XML sitemap(s) to be used for preloading" msgstr "Especifique sitemaps XML a serem usados no pré-carregamento" -#: inc/Engine/Admin/Settings/Page.php:1217 +#: inc/Engine/Admin/Settings/Page.php:1218 msgid "URLs to prefetch" msgstr "Os URL dos pedidos a antecipar" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1219 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1083,11 +1083,11 @@ msgstr "" "Especifique os servidores externos a antecipar os pedidos (sem " "http:, um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1227 +#: inc/Engine/Admin/Settings/Page.php:1228 msgid "Fonts to preload" msgstr "Tipos de letra a pré-carregar" -#: inc/Engine/Admin/Settings/Page.php:1228 +#: inc/Engine/Admin/Settings/Page.php:1229 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1096,7 +1096,7 @@ msgstr "" "linha). Os tipos de letra devem ser alojados no seu domínio, ou no domínio " "especificado no separador da CDN." -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1230 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1104,51 +1104,51 @@ msgstr "" "O domínio será removido automaticamente do URL.
Extensões permitidas " "para tipos de letra: otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1238 +#: inc/Engine/Admin/Settings/Page.php:1239 msgid "Enable link preloading" msgstr "Activar o pré-carregamento de ligações" -#: inc/Engine/Admin/Settings/Page.php:1257 +#: inc/Engine/Admin/Settings/Page.php:1258 msgid "Advanced Rules" msgstr "Regras avançadas" -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1259 msgid "Fine-tune cache rules" msgstr "Configure as regras de cache em pormenor" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1270 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "Devem excluir-se da cache os URL personalizados de páginas dinâmicas como as" " de início e terminar sessão." -#: inc/Engine/Admin/Settings/Page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1273 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1275 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1276 +#: inc/Engine/Admin/Settings/Page.php:1277 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1278 +#: inc/Engine/Admin/Settings/Page.php:1279 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1280 +#: inc/Engine/Admin/Settings/Page.php:1281 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" -#: inc/Engine/Admin/Settings/Page.php:1286 +#: inc/Engine/Admin/Settings/Page.php:1287 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in " @@ -1158,27 +1158,27 @@ msgstr "" "%1$s%2$s%3$s serão detectadas e por omissão nunca serão " "armazenadas em cache." -#: inc/Engine/Admin/Settings/Page.php:1296 inc/admin/options.php:127 +#: inc/Engine/Admin/Settings/Page.php:1297 inc/admin/options.php:127 msgid "Never Cache URL(s)" msgstr "Nunca criar cache dos URL" -#: inc/Engine/Admin/Settings/Page.php:1304 +#: inc/Engine/Admin/Settings/Page.php:1305 msgid "Never Cache Cookies" msgstr "Nunca criar cache de cookies" -#: inc/Engine/Admin/Settings/Page.php:1310 inc/admin/options.php:128 +#: inc/Engine/Admin/Settings/Page.php:1311 inc/admin/options.php:128 msgid "Never Cache User Agent(s)" msgstr "Nunca criar cache de agentes de utilizador" -#: inc/Engine/Admin/Settings/Page.php:1316 inc/admin/options.php:129 +#: inc/Engine/Admin/Settings/Page.php:1317 inc/admin/options.php:129 msgid "Always Purge URL(s)" msgstr "Limpar sempre os URL" -#: inc/Engine/Admin/Settings/Page.php:1322 +#: inc/Engine/Admin/Settings/Page.php:1323 msgid "Cache Query String(s)" msgstr "Cache de parâmetros de consulta" -#: inc/Engine/Admin/Settings/Page.php:1325 +#: inc/Engine/Admin/Settings/Page.php:1326 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " @@ -1187,15 +1187,15 @@ msgstr "" "A %1$scache de parâmetros de consulta%2$s permite forçar a cache de " "parâmetros GET específicos." -#: inc/Engine/Admin/Settings/Page.php:1336 +#: inc/Engine/Admin/Settings/Page.php:1337 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Especifique os URL de páginas ou conteúdos que nunca deverão ser guardados " "em cache (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1337 -#: inc/Engine/Admin/Settings/Page.php:1365 +#: inc/Engine/Admin/Settings/Page.php:1338 +#: inc/Engine/Admin/Settings/Page.php:1366 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -1203,7 +1203,7 @@ msgstr "" "O domínio será removido automaticamente do URL.
Utilize wildcards (.*) " "para incluir múltiplos URL num determinado caminho." -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1347 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -1212,20 +1212,20 @@ msgstr "" " navegador do visitante, deverão impedir uma página de ser guardada em cache" " (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1354 +#: inc/Engine/Admin/Settings/Page.php:1355 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Especifique strings de agentes de utilizador que nunca devem obter páginas " "em cache (uma por linha)" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "Utilize wildcards (.*) para detectar partes de strings de agentes de " "utilizador." -#: inc/Engine/Admin/Settings/Page.php:1364 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -1233,23 +1233,23 @@ msgstr "" "Especifique os URL a limpar da cache sempre que actualizar qualquer conteúdo" " ou página (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1373 +#: inc/Engine/Admin/Settings/Page.php:1374 msgid "Specify query strings for caching (one per line)" msgstr "Especifique parâmetros de consulta a adicionar à cache (um por linha)" -#: inc/Engine/Admin/Settings/Page.php:1398 inc/deprecated/deprecated.php:1775 +#: inc/Engine/Admin/Settings/Page.php:1399 inc/deprecated/deprecated.php:1775 msgid "Database" msgstr "Base de dados" -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1400 msgid "Optimize, reduce bloat" msgstr "Optimize, reduza a sobrecarga" -#: inc/Engine/Admin/Settings/Page.php:1406 +#: inc/Engine/Admin/Settings/Page.php:1407 msgid "Post Cleanup" msgstr "Limpeza de conteúdos" -#: inc/Engine/Admin/Settings/Page.php:1408 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -1257,19 +1257,19 @@ msgstr "" "As revisões e rascunhos de conteúdos serão eliminados permanentemente. Não " "use esta opção se precisar das revisões e dos rascunhos." -#: inc/Engine/Admin/Settings/Page.php:1413 +#: inc/Engine/Admin/Settings/Page.php:1414 msgid "Comments Cleanup" msgstr "Limpeza de comentários" -#: inc/Engine/Admin/Settings/Page.php:1415 +#: inc/Engine/Admin/Settings/Page.php:1416 msgid "Spam and trashed comments will be permanently deleted." msgstr "Os comentários de spam e no lixo serão eliminados permanentemente." -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1420 msgid "Transients Cleanup" msgstr "Limpeza de transientes" -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1422 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -1277,19 +1277,19 @@ msgstr "" "Os transientes são opções temporárias, é seguro removê-los. Serão " "regenerados automaticamente quando os seus plugins precisarem." -#: inc/Engine/Admin/Settings/Page.php:1425 +#: inc/Engine/Admin/Settings/Page.php:1426 msgid "Database Cleanup" msgstr "Limpeza da base de dados" -#: inc/Engine/Admin/Settings/Page.php:1427 +#: inc/Engine/Admin/Settings/Page.php:1428 msgid "Reduces overhead of database tables" msgstr "Reduz a sobrecarga das tabelas da base de dados" -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1432 msgid "Automatic Cleanup" msgstr "Limpeza automática" -#: inc/Engine/Admin/Settings/Page.php:1444 +#: inc/Engine/Admin/Settings/Page.php:1445 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." @@ -1297,7 +1297,7 @@ msgstr[0] "%s revisão na sua base de dados." msgstr[1] "%s revisões na sua base de dados." msgstr[2] "%s revisões na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1454 +#: inc/Engine/Admin/Settings/Page.php:1455 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." @@ -1305,7 +1305,7 @@ msgstr[0] "%s rascunho na sua base de dados." msgstr[1] "%s rascunhos na sua base de dados." msgstr[2] "%s rascunhos na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1464 +#: inc/Engine/Admin/Settings/Page.php:1465 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." @@ -1313,7 +1313,7 @@ msgstr[0] "%s conteúdo no lixo na sua base de dados." msgstr[1] "%s conteúdos no lixo na sua base de dados." msgstr[2] "%s conteúdos no lixo na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1475 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." @@ -1321,7 +1321,7 @@ msgstr[0] "%s comentário de spam na sua base de dados." msgstr[1] "%s comentários de spam na sua base de dados." msgstr[2] "%s comentários de spam na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1485 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." @@ -1329,11 +1329,11 @@ msgstr[0] "%s comentário no lixo na sua base de dados." msgstr[1] "%s comentários no lixo na sua base de dados." msgstr[2] "%s comentários no lixo na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1492 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "All transients" msgstr "Todos os transientes" -#: inc/Engine/Admin/Settings/Page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1495 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." @@ -1341,11 +1341,11 @@ msgstr[0] "%s transiente na sua base de dados." msgstr[1] "%s transientes na sua base de dados." msgstr[2] "%s transientes na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1503 msgid "Optimize Tables" msgstr "Optimizar tabelas" -#: inc/Engine/Admin/Settings/Page.php:1504 +#: inc/Engine/Admin/Settings/Page.php:1505 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." @@ -1353,37 +1353,37 @@ msgstr[0] "%s tabela a optimizar na sua base de dados." msgstr[1] "%s tabelas a optimizar na sua base de dados." msgstr[2] "%s tabelas a optimizar na sua base de dados." -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1516 msgid "Schedule Automatic Cleanup" msgstr "Agendar limpeza automática" -#: inc/Engine/Admin/Settings/Page.php:1527 +#: inc/Engine/Admin/Settings/Page.php:1528 msgid "Frequency" msgstr "Frequência" -#: inc/Engine/Admin/Settings/Page.php:1535 +#: inc/Engine/Admin/Settings/Page.php:1536 msgid "Daily" msgstr "Diariamente" -#: inc/Engine/Admin/Settings/Page.php:1536 +#: inc/Engine/Admin/Settings/Page.php:1537 msgid "Weekly" msgstr "Semanalmente" -#: inc/Engine/Admin/Settings/Page.php:1537 +#: inc/Engine/Admin/Settings/Page.php:1538 msgid "Monthly" msgstr "Mensalmente" -#: inc/Engine/Admin/Settings/Page.php:1553 -#: inc/Engine/Admin/Settings/Page.php:1564 inc/admin/ui/meta-boxes.php:79 +#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1565 inc/admin/ui/meta-boxes.php:79 #: inc/deprecated/deprecated.php:1773 msgid "CDN" msgstr "CDN" -#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1555 msgid "Integrate your CDN" msgstr "Integre a sua CDN" -#: inc/Engine/Admin/Settings/Page.php:1566 +#: inc/Engine/Admin/Settings/Page.php:1567 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -1391,7 +1391,7 @@ msgstr "" "Todos os URL de ficheiros estáticos (CSS, JS, imagens) serão reescritos " "no(s) CNAME(s) que fornecer." -#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1569 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " @@ -1400,11 +1400,11 @@ msgstr "" "Não é necessário para serviços como a Cloudflare e Sucuri. Por favor " "consulte os nossos %1$smódulos%2$s disponíveis." -#: inc/Engine/Admin/Settings/Page.php:1583 inc/admin/options.php:130 +#: inc/Engine/Admin/Settings/Page.php:1584 inc/admin/options.php:130 msgid "Exclude files from CDN" msgstr "Excluir ficheiros da CDN" -#: inc/Engine/Admin/Settings/Page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1610 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -1421,28 +1421,28 @@ msgstr[2] "" "Os %1$smódulos %2$l%3$s estão activos de momento. Não é necessário " "configurar a CDN para os módulos %2$l funcionarem no seu site." -#: inc/Engine/Admin/Settings/Page.php:1634 +#: inc/Engine/Admin/Settings/Page.php:1635 msgid "Enable Content Delivery Network" msgstr "Activar CDN" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1644 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" msgstr "CNAME(s) da CDN" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1645 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" msgstr "Especifique o(s) CNAME(s) abaixo" -#: inc/Engine/Admin/Settings/Page.php:1651 +#: inc/Engine/Admin/Settings/Page.php:1652 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "Especifique os URL dos ficheiros que não devem ser servidos pela CDN (um por" " linha)." -#: inc/Engine/Admin/Settings/Page.php:1652 +#: inc/Engine/Admin/Settings/Page.php:1653 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -1452,16 +1452,16 @@ msgstr "" "para excluir todos os ficheiros de um determinado tipo, localizados num " "caminho específico." -#: inc/Engine/Admin/Settings/Page.php:1675 -#: inc/Engine/Admin/Settings/Page.php:1683 +#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1684 msgid "Heartbeat" msgstr "Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1677 msgid "Control WordPress Heartbeat API" msgstr "Controle a Heartbeat API do WordPress" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1685 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -1469,11 +1469,11 @@ msgstr "" "Reduzir ou desactivar a actividade da Hartbeat API pode economizar alguns " "recursos do seu servidor." -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1691 msgid "Reduce or disable Heartbeat activity" msgstr "Reduzir ou desactivar a actividade do Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -1481,55 +1481,55 @@ msgstr "" "A redução de actividade altera a frequência do Heartbeat de um acesso por " "minuto para um acesso a cada 2 minutos." -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1692 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "Desactivar completamente o Heartbeat pode prejudicar os plugins e temas que " "usem esta API." -#: inc/Engine/Admin/Settings/Page.php:1705 +#: inc/Engine/Admin/Settings/Page.php:1706 msgid "Do not limit" msgstr "Não limitar" -#: inc/Engine/Admin/Settings/Page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1707 msgid "Reduce activity" msgstr "Reduzir actividade" -#: inc/Engine/Admin/Settings/Page.php:1707 +#: inc/Engine/Admin/Settings/Page.php:1708 msgid "Disable" msgstr "Desactivar" -#: inc/Engine/Admin/Settings/Page.php:1715 +#: inc/Engine/Admin/Settings/Page.php:1716 msgid "Control Heartbeat" msgstr "Controlar Heartbeat" -#: inc/Engine/Admin/Settings/Page.php:1724 +#: inc/Engine/Admin/Settings/Page.php:1725 msgid "Behavior in backend" msgstr "Comportamento no painel de administração" -#: inc/Engine/Admin/Settings/Page.php:1731 +#: inc/Engine/Admin/Settings/Page.php:1732 msgid "Behavior in post editor" msgstr "Comportamento no editor de conteúdos" -#: inc/Engine/Admin/Settings/Page.php:1737 +#: inc/Engine/Admin/Settings/Page.php:1738 msgid "Behavior in frontend" msgstr "Comportamento na interface do site" -#: inc/Engine/Admin/Settings/Page.php:1754 +#: inc/Engine/Admin/Settings/Page.php:1755 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Módulos" -#: inc/Engine/Admin/Settings/Page.php:1755 +#: inc/Engine/Admin/Settings/Page.php:1756 msgid "Add more features" msgstr "Adicione mais funcionalidades" -#: inc/Engine/Admin/Settings/Page.php:1762 +#: inc/Engine/Admin/Settings/Page.php:1763 msgid "One-click Rocket Add-ons" msgstr "Módulos do Rocket com um clique" -#: inc/Engine/Admin/Settings/Page.php:1763 +#: inc/Engine/Admin/Settings/Page.php:1764 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -1538,26 +1538,26 @@ msgstr "" "opções disponíveis sem necessidade de configuração. Ligue as opções para " "activar os módulos neste mesmo ecrã." -#: inc/Engine/Admin/Settings/Page.php:1773 +#: inc/Engine/Admin/Settings/Page.php:1774 msgid "Rocket Add-ons" msgstr "Módulos do Rocket" -#: inc/Engine/Admin/Settings/Page.php:1774 +#: inc/Engine/Admin/Settings/Page.php:1775 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Os módulos do Rocket são funcionalidades complementares que aumentam as " "opções disponíveis." -#: inc/Engine/Admin/Settings/Page.php:1785 -#: inc/Engine/Admin/Settings/Page.php:1937 +#: inc/Engine/Admin/Settings/Page.php:1786 +#: inc/Engine/Admin/Settings/Page.php:1938 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1791 +#: inc/Engine/Admin/Settings/Page.php:1792 msgid "Integrate your Cloudflare account with this add-on." msgstr "Integre a sua conta da Cloudflare com este módulo." -#: inc/Engine/Admin/Settings/Page.php:1792 +#: inc/Engine/Admin/Settings/Page.php:1793 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -1567,15 +1567,15 @@ msgstr "" "opções tais como limpar a cache da Cloudflare e permitir a configuração " "ideal com o WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1826 +#: inc/Engine/Admin/Settings/Page.php:1827 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1832 +#: inc/Engine/Admin/Settings/Page.php:1833 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "Se utilizar o Varnish no seu servidor, deve activar este módulo." -#: inc/Engine/Admin/Settings/Page.php:1834 +#: inc/Engine/Admin/Settings/Page.php:1835 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " @@ -1584,15 +1584,15 @@ msgstr "" "O cache do Varnish será limpa sempre que limpar a cache do WP Rocket para " "garantir que o conteúdo está sempre actualizado.
%1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:1869 +#: inc/Engine/Admin/Settings/Page.php:1870 msgid "WebP Compatibility" msgstr "Compatibilidade com WebP" -#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:1876 msgid "Improve browser compatibility for WebP images." msgstr "Melhorar a compatibilidade dos navegadores para imagens WebP." -#: inc/Engine/Admin/Settings/Page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:1880 #, php-format msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " @@ -1605,11 +1605,11 @@ msgstr "" " por si. Para criar imagens WebP recomendamos o %1$sImagify%2$s. %3$sMais " "informações%2$s" -#: inc/Engine/Admin/Settings/Page.php:1899 +#: inc/Engine/Admin/Settings/Page.php:1900 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "Limpar a cache do Sucuri ao limpar a cache do WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1902 +#: inc/Engine/Admin/Settings/Page.php:1903 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -1617,48 +1617,48 @@ msgstr "" "Forneça a sua chave de API para limpar a cache do Sucuri ao limpar a cache " "do WP Rocket." -#: inc/Engine/Admin/Settings/Page.php:1910 -#: inc/Engine/Admin/Settings/Page.php:2054 +#: inc/Engine/Admin/Settings/Page.php:1911 +#: inc/Engine/Admin/Settings/Page.php:2055 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1916 +#: inc/Engine/Admin/Settings/Page.php:1917 msgid "Synchronize Sucuri cache with this add-on." msgstr "Sincronize a cache do Sucuri com este módulo." -#: inc/Engine/Admin/Settings/Page.php:1954 +#: inc/Engine/Admin/Settings/Page.php:1955 msgid "Cloudflare credentials" msgstr "Credenciais da Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1963 +#: inc/Engine/Admin/Settings/Page.php:1964 msgid "Cloudflare settings" msgstr "Opções da Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1977 +#: inc/Engine/Admin/Settings/Page.php:1978 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Chave global de API:" -#: inc/Engine/Admin/Settings/Page.php:1978 +#: inc/Engine/Admin/Settings/Page.php:1979 msgctxt "Cloudflare" msgid "Find your API key" msgstr "Consulte a sua chave de API" -#: inc/Engine/Admin/Settings/Page.php:1990 +#: inc/Engine/Admin/Settings/Page.php:1991 msgctxt "Cloudflare" msgid "Account email" msgstr "Email da conta" -#: inc/Engine/Admin/Settings/Page.php:1999 +#: inc/Engine/Admin/Settings/Page.php:2000 msgctxt "Cloudflare" msgid "Zone ID" msgstr "ID da zona" -#: inc/Engine/Admin/Settings/Page.php:2009 +#: inc/Engine/Admin/Settings/Page.php:2010 msgid "Development mode" msgstr "Modo de desenvolvimento" -#: inc/Engine/Admin/Settings/Page.php:2011 +#: inc/Engine/Admin/Settings/Page.php:2012 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " @@ -1667,11 +1667,11 @@ msgstr "" "Active temporariamente o modo de desenvolvimento no seu site. Esta opção " "desactiva-se automaticamente após 3 horas. %1$sSaiba mais%2$s" -#: inc/Engine/Admin/Settings/Page.php:2019 +#: inc/Engine/Admin/Settings/Page.php:2020 msgid "Optimal settings" msgstr "Configuração ideal" -#: inc/Engine/Admin/Settings/Page.php:2020 +#: inc/Engine/Admin/Settings/Page.php:2021 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -1679,11 +1679,11 @@ msgstr "" "Melhore automaticamente a sua configuração da Cloudflare para melhor " "velocidade, grau de desempenho e compatibilidade." -#: inc/Engine/Admin/Settings/Page.php:2028 +#: inc/Engine/Admin/Settings/Page.php:2029 msgid "Relative protocol" msgstr "Protocolo relativo" -#: inc/Engine/Admin/Settings/Page.php:2029 +#: inc/Engine/Admin/Settings/Page.php:2030 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -1693,11 +1693,11 @@ msgstr "" "ficheiros estáticos (CSS, JS, imagens) serão reescritos para usar // em vez " "de http:// ou https://." -#: inc/Engine/Admin/Settings/Page.php:2067 +#: inc/Engine/Admin/Settings/Page.php:2068 msgid "Sucuri credentials" msgstr "Credenciais do Sucuri" -#: inc/Engine/Admin/Settings/Page.php:2080 +#: inc/Engine/Admin/Settings/Page.php:2081 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -1706,7 +1706,7 @@ msgstr "" "A chave de API da firewall (do plugin) tem de estar no formato {32 " "caracteres}/{32 caracteres}:" -#: inc/Engine/Admin/Settings/Page.php:2081 +#: inc/Engine/Admin/Settings/Page.php:2082 msgctxt "Sucuri" msgid "Find your API key" msgstr "Consulte a sua chave de API" @@ -2075,7 +2075,7 @@ msgstr "A geração do CSS crítico está em curso." msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "Vá às %1$sopções do WP Rocket%2$s para acompanhar o progresso." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:370 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" "Critical CSS generation is currently running: %1$d of %2$d page types " @@ -2084,16 +2084,16 @@ msgstr "" "A geração do CSS crítico está em curso: %1$d de %2$d páginas concluídas. " "(Actualize a página para ver o progresso)" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:442 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 #, php-format msgid "Critical CSS generation finished for %1$d of %2$d page types." msgstr "A geração de CSS crítico foi concluída para %1$d de %2$d páginas." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Critical CSS generation encountered one or more errors." msgstr "Foram encontrados um ou mais erros ao gerar o CSS crítico." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Learn more." msgstr "Saiba mais." @@ -2232,6 +2232,28 @@ msgstr "Pré-carregamento" msgid "Critical Path CSS Generation Process" msgstr "Processo de geração do CSS do caminho crítico" +#: inc/Engine/License/Renewal.php:401 +#, php-format +msgid "" +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" +"Precisa de uma licença válida para continuar a usar esta funcionalidade. " +"%1$sRenove agora%2$s antes de perde o acesso." + +#: inc/Engine/License/Renewal.php:412 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" +"Precisa de uma licença válida para activar esta opção. %1$sRenove agora%2$s." + +#: inc/Engine/License/Renewal.php:423 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." +msgstr "" +"Precisa de uma licença válida para activar esta opção. %1$sMais " +"informações%2$s." + #: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" @@ -2285,38 +2307,94 @@ msgid "Upgrade now" msgstr "Actualize agora" #: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner.php:37 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 #: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 msgid "Dismiss this notice" msgstr "Descartar esta notificação" -#: inc/Engine/License/views/renewal-expired-banner.php:12 -msgid "Your WP Rocket license is expired!" -msgstr "A sua licença do WP Rocket está expirada!" +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." +msgstr "A funcionalidade de optimizar entrega do CSS está desactivada." -#: inc/Engine/License/views/renewal-expired-banner.php:17 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously " +"options." +msgstr "" +"As opções de remoção de CSS não utilizado e de carregamento assíncrono de " +"CSS já não podem ser utilizadas." + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"%1$sYour website could be much faster%2$s if it could take advantage of our " -"new features and enhancements. 🚀" +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " +"which addresses a PageSpeed Insights recommendation and improves your page " +"performance." msgstr "" -"%1$sO seu site poderá ser muito mais rápido%2$s se tirar partido das nossas " -"novas funcionalidades e melhorias. 🚀" +"Precisa de uma %1$slicença activa%2$s para continuar a optimizar a entrega " +"de CSS, para cumprir a recomendação do PageSpeed Insights e melhorar o " +"desempenho da sua página." -#: inc/Engine/License/views/renewal-expired-banner.php:27 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Renew your license to have access to the %1$slatest version of WP Rocket%2$s" -" and to the wonderful %1$sassistance of our Support Team%2$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: " +"you’ll only pay %1$s%4$s%2$s!" msgstr "" -"Renove a sua licença para aceder à %1$sversão mais recente do WP Rocket%2$s " -"e à maravilhosa %1$sassistência da nossa Equipa de Suporte%2$s." +"Renove agora a sua licença por 1 ano e obtenha de imediato %1$s%3$s de " +"desconto%2$s: apenas pagará %1$s%4$s%2$s!" -#: inc/Engine/License/views/renewal-expired-banner.php:35 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 #: inc/Engine/License/views/renewal-soon-banner.php:46 msgid "Renew now" msgstr "Renove agora" +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "Em breve irá perder acesso a algumas funcionalidades" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#, php-format +msgid "" +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." +msgstr "" +"Precisa de uma %1$slicença activa para continuar a optimizar a entrega do " +"CSS%2$s." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options" +" to address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" +"As funcionalidades de remoção de CSS não utilizado e de carregamento " +"assíncrono de CSS são óptimas para cumprir as recomendações do PageSpeed " +"Insights e melhorar o desempenho do seu site." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "Serão %1$sautomaticamente desactivadas em %3$s%2$s." + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "A sua licença do WP Rocket está expirada!" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 +#, php-format +msgid "" +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" +msgstr "" +"Pode tornar o seu site muito mais rápido se tiver acesso às %1$snossas novas" +" funcionalidades e melhorias%2$s. 🚀" + #: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" @@ -2458,13 +2536,13 @@ msgstr "%1$s: A opção do CSS utilizado não está activa!" msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: A cache do CSS utilizado foi limpa!" -#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:702 +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:713 msgid "Clear Used CSS of this URL" msgstr "Limpar CSS utilizado deste URL" #: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 -msgid "WP Rocket RUCSS pending jobs" -msgstr "Tarefas pendentes do WP Rocket RUCSS" +msgid "WP Rocket Remove Unused CSS pending jobs" +msgstr "Tarefas pendentes do WP Rocket de remoção de CSS não utilizado" #: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 #: inc/deprecated/3.3.php:770 @@ -2478,6 +2556,20 @@ msgstr "" "ou na configuração deste servidor. Se o problema persistir, contacte o suporte." +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 +#, php-format +msgid "%s Update Rollback" +msgstr "Reversão da actualização do %s" + +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 +#, php-format +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" +msgstr "%1$sVolte para o WP Rocket%2$s ou %3$svá para a página de plugins%2$s" + #: inc/Engine/Preload/Homepage.php:153 #, php-format msgid "" @@ -2701,10 +2793,10 @@ msgid "" "advantage of Load CSS Asynchronously Execution." msgstr "" "%1$sWP Rocket: %2$sFoi detectado que está activa a funcionalidade de agregar" -" CSS integrado em linha do Autoptimize. O carregamento de CSS de modo " -"assíncrono do WP Rocket não funcionará correctamente. Sugerimos que " -"desactive a opção %1$sAgregar CSS integrado em linha%2$s para tirar partido " -"das vantagens de carregar CSS de modo assíncrono." +" CSS integrado em linha do Autoptimize. O carregamento assíncrono de CSS do " +"WP Rocket não funcionará correctamente. Sugerimos que desactive a opção " +"%1$sAgregar CSS integrado em linha%2$s para tirar partido das vantagens de " +"carregar CSS de modo assíncrono." #: inc/ThirdParty/Plugins/Optimization/Ezoic.php:45 #, php-format @@ -2820,43 +2912,31 @@ msgstr "Perguntas frequentes" msgid "Settings" msgstr "Opções" -#: inc/admin/admin.php:237 inc/admin/admin.php:252 -#: inc/classes/class-wp-rocket-requirements-check.php:203 -#: inc/classes/class-wp-rocket-requirements-check.php:214 -#, php-format -msgid "%s Update Rollback" -msgstr "Reversão da actualização do %s" - -#: inc/admin/admin.php:278 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" -msgstr "%1$sVolte para o WP Rocket%2$s ou %3$svá para a página de plugins%2$s" - -#: inc/admin/admin.php:516 +#: inc/admin/admin.php:435 msgid "Settings import failed: you do not have the permissions to do this." msgstr "Falhou ao importar as opções: Não tem permissões para fazer isto." -#: inc/admin/admin.php:520 +#: inc/admin/admin.php:439 msgid "Settings import failed: no file uploaded." msgstr "Falhou ao importar as opções: Nenhum ficheiro carregado." -#: inc/admin/admin.php:524 +#: inc/admin/admin.php:443 msgid "Settings import failed: incorrect filename." msgstr "Falhou ao importar as opções: Nome de ficheiro incorrecto." -#: inc/admin/admin.php:535 +#: inc/admin/admin.php:454 msgid "Settings import failed: incorrect filetype." msgstr "Falhou ao importar as opções: Tipo de ficheiro incorrecto." -#: inc/admin/admin.php:545 +#: inc/admin/admin.php:464 msgid "Settings import failed: " msgstr "Falhou ao importar as opções: " -#: inc/admin/admin.php:561 +#: inc/admin/admin.php:480 msgid "Settings import failed: unexpected file content." msgstr "Falhou ao importar as opções: Ficheiro com conteúdo inesperado." -#: inc/admin/admin.php:591 +#: inc/admin/admin.php:510 msgid "Settings imported and saved." msgstr "As opções foram importadas e guardadas." @@ -3615,16 +3695,16 @@ msgstr "Opções do WP Rocket anonimizadas:" msgid "Which WP Rocket settings are active" msgstr "Quais as opções activadas no WP Rocket" -#: inc/functions/options.php:471 +#: inc/functions/options.php:473 msgid "The provided license data are not valid." msgstr "Os dados de licença fornecidos não são válidos." -#: inc/functions/options.php:474 +#: inc/functions/options.php:476 #, php-format msgid "To resolve, please %1$scontact support%2$s." msgstr "Para resolver o problema, por favor %1$scontacte o suporte%2$s." -#: inc/functions/options.php:533 inc/functions/options.php:572 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from " "your website." @@ -3632,7 +3712,7 @@ msgstr "" "Falhou ao validar a licença. O nosso servidor não conseguiu resolver o " "pedido do seu site." -#: inc/functions/options.php:533 +#: inc/functions/options.php:535 #, php-format msgid "" "Try clicking %1$sValidate License%2$s below. If the error persists, follow " @@ -3641,7 +3721,7 @@ msgstr "" "Tente clicar em %1$sValidar licença%2$s abaixo. Se o erro persistir, siga " "%3$seste guia%4$s." -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" @@ -3649,46 +3729,46 @@ msgstr "" "Falhou ao validar a licença. Pode estar a usar uma versão cancelada do " "plugin. Faça o seguinte:" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" msgstr "Inicie sessão na sua %1$sconta%2$s do WP Rocket" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" msgstr "Descarregue o ficheiro zip" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" msgstr "Reinstalar" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 #, php-format msgid "" "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." msgstr "Se não tiver uma conta WP Rocket, %1$scompre uma licença%2$s." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" "Falhou ao validar a licença. Esta conta de utilizador não existe na nossa " "base de dados." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." msgstr "Para resolver o problema, por favor contacte o suporte." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 msgid "License validation failed. This user account is blocked." msgstr "Falhou ao validar a licença. Esta conta de utilizador está bloqueada." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." msgstr "Consulte %1$seste guia%2$s para mais informações." -#: inc/functions/options.php:572 +#: inc/functions/options.php:574 #, php-format msgid "" "Try clicking %1$sSave Changes%2$s below. If the error persists, follow " @@ -3697,20 +3777,20 @@ msgstr "" "Tente clicar em %1$sGuardar alterações%2$s abaixo. Se o erro persistir, siga" " %3$seste guia%4$s." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 msgid "Your license is not valid." msgstr "A sua licença não é válida." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." msgstr "Certifique-se de que tem uma %1$slicença do WP Rocket%2$s activa." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "Já alcançou o máximo de sites permitidos pela sua licença actual." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this " @@ -3719,25 +3799,25 @@ msgstr "" "Actualize a sua %1$sconta%2$s ou %3$stransfira a sua licença%2$s para este " "domínio." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 msgid "This website is not allowed." msgstr "Este site não é permitido." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." msgstr "Por favor %1$scontacte o suporte%2$s." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 msgid "This license key is not recognized." msgstr "Esta chave de licença não é reconhecida." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "Se o problema persistir, %1$scontacte o suporte%2$s." -#: inc/functions/options.php:597 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" msgstr "A validação da licença falhou: %s" @@ -3764,7 +3844,7 @@ msgstr "Voltar" #: views/cpcss/activate-cpcss-mobile.php:13 msgid "Load CSS asynchronously for mobile" -msgstr "Carregar CSS de modo assíncrono em dispositivos móveis" +msgstr "Carregamento assíncrono de CSS em dispositivos móveis" #: views/cpcss/activate-cpcss-mobile.php:14 msgid "" diff --git a/languages/rocket-tr_TR.mo b/languages/rocket-tr_TR.mo index 33b26f6670..bb63fd186d 100644 Binary files a/languages/rocket-tr_TR.mo and b/languages/rocket-tr_TR.mo differ diff --git a/languages/rocket-tr_TR.po b/languages/rocket-tr_TR.po index fde46ecf71..626795998b 100644 --- a/languages/rocket-tr_TR.po +++ b/languages/rocket-tr_TR.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2022-06-23 14:06-0400\n" +"POT-Creation-Date: 2022-08-16 15:13-0400\n" "PO-Revision-Date: 2019-08-26 15:14+0000\n" "Last-Translator: BouRock, 2022\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/wp-media/teams/18133/tr_TR/)\n" @@ -50,50 +50,12 @@ msgstr "" "Siteniz %s üzerinde barındırılıyor, uyumluluk için Varnish oto-temizle’yi " "etkinleştirdik." -#: inc/3rd-party/plugins/jetpack.php:86 -msgid "Jetpack XML Sitemaps" -msgstr "Jetpack XML Site Haritaları" - -#: inc/3rd-party/plugins/jetpack.php:88 -msgid "Preload the sitemap from the Jetpack plugin" -msgstr "Jetpack eklentisinden site haritasını önyükleme yap" - -#: inc/3rd-party/plugins/jetpack.php:96 -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:118 -#: inc/3rd-party/plugins/seo/rank-math-seo.php:34 -#: inc/3rd-party/plugins/seo/seopress.php:86 -#: inc/3rd-party/plugins/seo/the-seo-framework.php:144 -#: inc/ThirdParty/Plugins/SEO/Yoast.php:62 inc/deprecated/3.11.php:83 -#, php-format -msgid "" -"We automatically detected the sitemap generated by the %s plugin. You can " -"check the option to preload it." -msgstr "" -"%s eklentisi tarafından üretilen site haritasını otomatik olarak algıladık. " -"Önyüklemek için seçeneği işaretleyebilirsiniz." - -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:116 -msgid "All in One SEO XML sitemap" -msgstr "All in One SEO XML site haritası" - -#: inc/3rd-party/plugins/seo/rank-math-seo.php:32 -msgid "Rank Math XML sitemap" -msgstr "Rank Math XML site haritası" - -#: inc/3rd-party/plugins/seo/seopress.php:84 -msgid "SEOPress XML sitemap" -msgstr "SEOPress XML site haritası" - -#: inc/3rd-party/plugins/seo/the-seo-framework.php:142 -msgid "The SEO Framework XML sitemap" -msgstr "SEO Framework XML site haritası" - #: inc/Addon/Cloudflare/APIClient.php:309 msgid "Cloudflare did not provide any reply. Please try again later." msgstr "Cloudflare hiçbir yanıt vermedi. Lütfen daha sonra tekrar deneyin." -#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:122 -#: inc/deprecated/3.5.php:179 +#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:112 +#: inc/deprecated/3.5.php:169 msgid "Incorrect Cloudflare email address or API key." msgstr "Yanlış Cloudflare e-posta adresi veya API anahtarı." @@ -102,9 +64,9 @@ msgstr "Yanlış Cloudflare e-posta adresi veya API anahtarı." #: inc/Addon/Cloudflare/Cloudflare.php:112 #: inc/Addon/Cloudflare/Cloudflare.php:144 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:157 -#: inc/deprecated/3.5.php:102 inc/deprecated/3.5.php:126 -#: inc/deprecated/3.5.php:139 inc/deprecated/3.5.php:167 -#: inc/deprecated/3.5.php:183 +#: inc/deprecated/3.5.php:92 inc/deprecated/3.5.php:116 +#: inc/deprecated/3.5.php:129 inc/deprecated/3.5.php:157 +#: inc/deprecated/3.5.php:173 #, php-format msgid "Read the %1$sdocumentation%2$s for further guidance." msgstr "İleriki rehberlik için %1$sbelgeleri%2$s okuyun." @@ -113,10 +75,10 @@ msgstr "İleriki rehberlik için %1$sbelgeleri%2$s okuyun." #: inc/Addon/Cloudflare/APIClient.php:337 #: inc/Addon/Cloudflare/Cloudflare.php:101 #: inc/Addon/Cloudflare/Cloudflare.php:114 -#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:91 -#: inc/deprecated/3.5.php:104 inc/deprecated/3.5.php:128 -#: inc/deprecated/3.5.php:141 inc/deprecated/3.5.php:169 -#: inc/deprecated/3.5.php:185 inc/deprecated/3.5.php:218 +#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:81 +#: inc/deprecated/3.5.php:94 inc/deprecated/3.5.php:118 +#: inc/deprecated/3.5.php:131 inc/deprecated/3.5.php:159 +#: inc/deprecated/3.5.php:175 inc/deprecated/3.5.php:208 msgid "" "https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" "cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" @@ -124,7 +86,7 @@ msgstr "" "https://docs.wp-rocket.me/article/18-using-wp-rocket-with-" "cloudflare/?utm_source=wp_plugin&utm_medium=wp_rocket#add-on" -#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:135 +#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:125 msgid "Incorrect Cloudflare Zone ID." msgstr "Yanlış Cloudflare Bölge Kimliği." @@ -137,20 +99,20 @@ msgstr "" "Cloudflare e-posta adresi ve/veya API anahtarı ayarlı değil. Daha fazla " "rehberlik için %1$sbelgeleri%2$s okuyun." -#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:98 +#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:88 msgid "Missing Cloudflare Zone ID." msgstr "Eksik Cloudflare Bölge Kimliği." -#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:163 +#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:153 msgid "It looks like your domain is not set up on Cloudflare." msgstr "Etki alanınız Cloudflare’de ayarlanmamış gibi görünüyor." -#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:597 +#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:587 #, php-format msgid "WP Rocket: %s" msgstr "WP Rocket: %s" -#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:602 +#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:592 msgid "WP Rocket: Cloudflare cache successfully purged." msgstr "" "WP Rocket: Cloudflare önbelleği başarılı olarak temizlendi." @@ -275,27 +237,27 @@ msgstr[1] "" "Sucuri güvenlik duvarı API’si şurada belirtilen hataları döndürdü: %s" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1442 +#: inc/Engine/Admin/Settings/Page.php:1399 msgid "Revisions" msgstr "Düzeltmeler" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1452 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "Auto Drafts" msgstr "Otomatik Taslaklar" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1419 msgid "Trashed Posts" msgstr "Çöpe Atılmış Yazılar" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1472 +#: inc/Engine/Admin/Settings/Page.php:1429 msgid "Spam Comments" msgstr "İstenmeyen Yorumlar" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1439 msgid "Trashed Comments" msgstr "Çöpe Atılmış Yorumlar" @@ -352,36 +314,36 @@ msgstr "Lisansı Doğrula" msgid "Unavailable" msgstr "Mevcut değil" -#: inc/Engine/Admin/Settings/Page.php:341 inc/deprecated/deprecated.php:1789 +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 #: views/settings/page-sections/dashboard.php:80 msgid "License" msgstr "Lisans" -#: inc/Engine/Admin/Settings/Page.php:358 +#: inc/Engine/Admin/Settings/Page.php:359 msgid "API key" msgstr "API anahtarı" -#: inc/Engine/Admin/Settings/Page.php:373 +#: inc/Engine/Admin/Settings/Page.php:374 msgid "Email address" msgstr "E-posta adresi" -#: inc/Engine/Admin/Settings/Page.php:399 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Dashboard" msgstr "Panel" -#: inc/Engine/Admin/Settings/Page.php:400 +#: inc/Engine/Admin/Settings/Page.php:401 msgid "Get help, account info" msgstr "Yardım alın, hesap bilgisi" -#: inc/Engine/Admin/Settings/Page.php:409 +#: inc/Engine/Admin/Settings/Page.php:410 msgid "My Status" msgstr "Durumum" -#: inc/Engine/Admin/Settings/Page.php:419 views/settings/page.php:75 +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 msgid "Rocket Analytics" msgstr "Rocket Çözümsel" -#: inc/Engine/Admin/Settings/Page.php:421 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" "I agree to share anonymous data with the development team to help improve WP" @@ -390,23 +352,23 @@ msgstr "" "WP Rocket’i iyileştirmeye yardımcı olmak için geliştirme ekibiyle isimsiz " "verileri paylaşmayı kabul ediyorum. %1$sNe tür bilgi toplayacağız?%2$s" -#: inc/Engine/Admin/Settings/Page.php:445 inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 msgid "Cache" msgstr "Önbellek" -#: inc/Engine/Admin/Settings/Page.php:446 +#: inc/Engine/Admin/Settings/Page.php:447 msgid "Basic cache options" msgstr "Temel önbellek seçenekleri" -#: inc/Engine/Admin/Settings/Page.php:453 +#: inc/Engine/Admin/Settings/Page.php:454 msgid "Mobile Cache" msgstr "Mobil Önbelleği" -#: inc/Engine/Admin/Settings/Page.php:455 +#: inc/Engine/Admin/Settings/Page.php:456 msgid "Speed up your site for mobile visitors." msgstr "Mobil ziyaretçiler için sitenizi hızlandırın." -#: inc/Engine/Admin/Settings/Page.php:460 +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" "We detected you use a plugin that requires a separate cache for mobile, and " "automatically enabled this option for compatibility." @@ -414,11 +376,11 @@ msgstr "" "Mobil için ayrı önbellek gerektiren bir eklenti kullandığınızı saptadık ve " "uyumluluk için bu seçeneği otomatik olarak etkinleştirdik." -#: inc/Engine/Admin/Settings/Page.php:464 +#: inc/Engine/Admin/Settings/Page.php:465 msgid "User Cache" msgstr "Kullanıcı Önbelleği" -#: inc/Engine/Admin/Settings/Page.php:467 +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" "%1$sUser cache%2$s is great when you have user-specific or restricted " @@ -427,11 +389,11 @@ msgstr "" "Web sitenizde kullanıcıya özgü ya da kısıtlı içeriğe sahip olduğunuzda " "%1$skullanıcı önbelleği%2$s mükemmeldir." -#: inc/Engine/Admin/Settings/Page.php:475 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Cache Lifespan" msgstr "Önbellek Geçerlilik Süresi" -#: inc/Engine/Admin/Settings/Page.php:478 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " @@ -442,19 +404,19 @@ msgstr "" "silinecektir.
Geçerlilik süresi sona erdikten sonra otomatik olarak " "yeniden oluşturulması için önbellek %1$sönyüklemeyi%2$s etkinleştirin." -#: inc/Engine/Admin/Settings/Page.php:492 +#: inc/Engine/Admin/Settings/Page.php:493 msgid "Enable caching for logged-in WordPress users" msgstr "Oturum açmış WordPress kullanıcıları için önbelleklemeyi etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:500 +#: inc/Engine/Admin/Settings/Page.php:501 msgid "Enable caching for mobile devices" msgstr "Mobil cihazlar için önbelleklemeyi etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:515 +#: inc/Engine/Admin/Settings/Page.php:516 msgid "Separate cache files for mobile devices" msgstr "Mobil cihazlar için önbellek dosyalarını ayır" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:518 #, php-format msgid "" "Most modern themes are responsive and should work without a separate cache. " @@ -465,14 +427,14 @@ msgstr "" "Bunu sadece tahsis edilmiş bir mobil temanız veya eklentiniz varsa " "etkinleştirin. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "" "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" "Genel önbelleğin ne kadar süre sonra temizleneceği zamanı belirtin
(0 = " "sınırsız)" -#: inc/Engine/Admin/Settings/Page.php:535 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear" @@ -481,32 +443,32 @@ msgstr "" "Eğer belirli aralıklarla görünen sorunları fark ederseniz geçerlilik " "süresini 10 saat veya daha azına düşürün. %1$sNeden?%2$s" -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:542 #: inc/Engine/License/views/promo-banner.php:30 #: inc/Engine/License/views/renewal-soon-banner.php:13 msgid "Hours" msgstr "Saat" -#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/Admin/Settings/Page.php:543 #: inc/Engine/License/views/promo-banner.php:29 #: inc/Engine/License/views/renewal-soon-banner.php:12 msgid "Days" msgstr "Gün" -#: inc/Engine/Admin/Settings/Page.php:577 +#: inc/Engine/Admin/Settings/Page.php:578 msgid "File Optimization" msgstr "Dosyaları İyileştirme" -#: inc/Engine/Admin/Settings/Page.php:578 +#: inc/Engine/Admin/Settings/Page.php:579 msgid "Optimize CSS & JS" msgstr "CSS ve JS kodlarını iyileştirin" -#: inc/Engine/Admin/Settings/Page.php:585 +#: inc/Engine/Admin/Settings/Page.php:586 msgid "CSS Files" msgstr "CSS Dosyaları" -#: inc/Engine/Admin/Settings/Page.php:592 -#: inc/Engine/Admin/Settings/Page.php:602 +#: inc/Engine/Admin/Settings/Page.php:593 +#: inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" "%1$s Minification is currently activated in Autoptimize. If" @@ -516,11 +478,11 @@ msgstr "" " %2$s’in küçültmesini kullanmak istiyorsanız, Autoptimize içindeki bu " "seçenekleri etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:595 +#: inc/Engine/Admin/Settings/Page.php:596 msgid "JavaScript Files" msgstr "JavaScript Dosyaları" -#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" "If you have problems after activating this option, copy and paste the " @@ -533,7 +495,7 @@ msgstr "" "yapıştırın:
%1$s

Ayrıca, lütfen uyumluluk " "dışlamalarının bir listesi için %2$sbelgelerimizi%3$s gözden geçirin." -#: inc/Engine/Admin/Settings/Page.php:616 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to " @@ -544,27 +506,29 @@ msgstr "" "seçenekten tam olarak yararlanmak için bunları kaldırın.
Eğer bu soruna " "neden olursa, %1$sburada%2$s bulunan, varsayılan dışlamaları geri yükleyin" -#: inc/Engine/Admin/Settings/Page.php:625 +#: inc/Engine/Admin/Settings/Page.php:626 msgid "Minify CSS files" msgstr "CSS dosyalarını küçült" -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:627 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" "CSS’yi küçültme, dosya boyutunu düşürmek için boşlukları ve açıklamaları " "kaldırır." -#: inc/Engine/Admin/Settings/Page.php:639 -#: inc/Engine/Admin/Settings/Page.php:663 -#: inc/Engine/Admin/Settings/Page.php:793 -#: inc/Engine/Admin/Settings/Page.php:817 -msgid "This could break things!" -msgstr "Bu birşeyleri bozabilir!" - #: inc/Engine/Admin/Settings/Page.php:640 #: inc/Engine/Admin/Settings/Page.php:664 +#: inc/Engine/Admin/Settings/Page.php:728 #: inc/Engine/Admin/Settings/Page.php:794 #: inc/Engine/Admin/Settings/Page.php:818 +msgid "This could break things!" +msgstr "Bu birşeyleri bozabilir!" + +#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" "If you notice any errors on your website after having activated this " "setting, just deactivate it again, and your site will be back to normal." @@ -572,17 +536,17 @@ msgstr "" "Bu ayarı aktif ettikten sonra web sitenizde herhangi bir hata fark " "ederseniz, sadece tekrar devre dışı bırakın, ve siteniz normale dönecektir." -#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:642 msgid "Activate minify CSS" msgstr "CSS küçültmeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:646 +#: inc/Engine/Admin/Settings/Page.php:647 msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" "CSS dosyalarını birleştir (Seçmek için CSS dosyalarını küçült’ü " "etkinleştirin)" -#: inc/Engine/Admin/Settings/Page.php:648 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" "Combine CSS merges all your files into 1, reducing HTTP requests. Not " @@ -592,7 +556,7 @@ msgstr "" "HTTP isteklerini azaltır. Siteniz HTTP/2 kullanıyorsa önerilemez. %1$sDaha " "fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:649 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" "For compatibility and best results, this option is disabled when Remove " "unused CSS is enabled." @@ -600,15 +564,15 @@ msgstr "" "Uyumluluk ve en iyi sonuçlar için Kullanılmayan CSS’yi Kaldır " "etkinleştirildiğinde, bu seçenek etkisizleştirilir." -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:666 msgid "Activate combine CSS" msgstr "CSS birleştirmeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:670 inc/admin/options.php:122 +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 msgid "Excluded CSS Files" msgstr "Hariç Tutulan CSS Dosyaları" -#: inc/Engine/Admin/Settings/Page.php:671 +#: inc/Engine/Admin/Settings/Page.php:672 msgid "" "Specify URLs of CSS files to be excluded from minification and concatenation" " (one per line)." @@ -616,7 +580,7 @@ msgstr "" "Küçültmeden ve birleştirmeden hariç tutulacak CSS dosyalarının URL’lerini " "belirtin (her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:672 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " @@ -626,7 +590,7 @@ msgstr "" "sadeleştirilecektir. Belirli bir yolda bulunan tüm CSS dosyalarını hariç " "tutmak için (.*).css joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:674 +#: inc/Engine/Admin/Settings/Page.php:675 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -635,12 +599,12 @@ msgstr "" "3. Taraf: Harici CSS dosyalarını dahil etmemek için ya URL " "tam yolunu ya da sadece etki alanı adını kullanın. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:687 -#: inc/Engine/Admin/Settings/Page.php:709 +#: inc/Engine/Admin/Settings/Page.php:688 +#: inc/Engine/Admin/Settings/Page.php:710 msgid "Optimize CSS delivery" msgstr "CSS teslimini iyileştir" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -651,7 +615,7 @@ msgstr "" "Kullanılmayan CSS’yi Kaldır önerilir, ancak sadece aktif lisansa sahip " "kullanıcılarla sınırlıdır." -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only " "one method can be selected. Remove Unused CSS is recommended for optimal " @@ -661,7 +625,7 @@ msgstr "" "ortadan kaldırır. Sadece bir yöntem seçilebilir. En iyi performans için " "Kullanılmayan CSS’yi Kaldır önerilir." -#: inc/Engine/Admin/Settings/Page.php:702 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn" @@ -670,11 +634,11 @@ msgstr "" "CSS teslimini iyileştir özellikleri yerel ortamlarda etkisizleştirilir. " "%1$sDaha fazla bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:722 -msgid "Remove Unused CSS (Beta)" -msgstr "Kullanılmayan CSS’yi Kaldır (Beta)" +#: inc/Engine/Admin/Settings/Page.php:723 inc/admin/ui/meta-boxes.php:77 +msgid "Remove Unused CSS" +msgstr "Kullanılmayan CSS’yi Kaldır" -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests." @@ -684,29 +648,15 @@ msgstr "" "isteklerini azaltmaya yardımcı olur. Daha iyi performans için önerilir. " "İyice deneyin! %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:727 -msgid "We’re still working on it!" -msgstr "Hala üzerinde çalışıyoruz!" - -#: inc/Engine/Admin/Settings/Page.php:728 -msgid "" -"This is a beta feature. We’re providing you early access but some changes " -"might be added later on. If you notice any errors on your website, simply " -"deactivate the feature." -msgstr "" -"Bu bir beta özelliğidir. Size erken erişim sağlıyoruz, ancak daha sonra bazı" -" değişiklikler eklenebilir. Eğer web sitenizde herhangi bir hata fark " -"ederseniz, özelliği devre dışı bırakmanız yeterli." - -#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:730 msgid "Activate Remove Unused CSS" msgstr "Kullanılmayan CSS’yi Kaldır’ı Aktif Et" -#: inc/Engine/Admin/Settings/Page.php:735 +#: inc/Engine/Admin/Settings/Page.php:736 msgid "CSS safelist" msgstr "CSS güvenli listesi" -#: inc/Engine/Admin/Settings/Page.php:736 +#: inc/Engine/Admin/Settings/Page.php:737 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per " "line)." @@ -714,11 +664,11 @@ msgstr "" "Kaldırılmaması gereken CSS dosya adlarını, kimliklerini veya sınıfları " "belirtin (her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:751 inc/admin/ui/meta-boxes.php:80 +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 msgid "Load CSS asynchronously" msgstr "CSS’yi eşzamanlı olmadan yükle" -#: inc/Engine/Admin/Settings/Page.php:754 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format msgctxt "WP Critical CSS compatibility" msgid "" @@ -729,7 +679,7 @@ msgstr "" "işlenmektedir. WP Rocket’in CSS’yi eşzamanlı olmadan yükleme seçeneğini " "kullanmak istiyorsanız, %1$s eklentisini etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:756 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format msgid "" "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" @@ -737,11 +687,11 @@ msgstr "" "Önemli Yol CSS’yi oluşturur ve CSS’yi eşzamanlı olmadan yükler. %1$sDaha " "fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:762 +#: inc/Engine/Admin/Settings/Page.php:763 msgid "Fallback critical CSS" msgstr "Son çare önemli CSS" -#: inc/Engine/Admin/Settings/Page.php:764 +#: inc/Engine/Admin/Settings/Page.php:765 #, php-format msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. " @@ -750,29 +700,29 @@ msgstr "" "Otomatik oluşturulmuş önemli yol CSS tamamlanmazsa son bir çare sağlar. " "%1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:779 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "Minify JavaScript files" msgstr "JavaScript dosyalarını küçült" -#: inc/Engine/Admin/Settings/Page.php:780 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "" "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" "JavaScript’i küçültme, dosya boyutunu düşürmek için boşlukları ve " "açıklamaları kaldırır." -#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:796 msgid "Activate minify JavaScript" msgstr "JavaScript küçültmeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:800 +#: inc/Engine/Admin/Settings/Page.php:801 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" "JavaScript dosyalarını birleştir (Seçmek için JavaScript dosyalarını " "küçült’ü etkinleştirin)" -#: inc/Engine/Admin/Settings/Page.php:802 +#: inc/Engine/Admin/Settings/Page.php:803 #, php-format msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline" @@ -783,7 +733,7 @@ msgstr "" "JS dosyalarını birleştirir, HTTP isteklerini azaltır. Siteniz HTTP/2 " "kullanıyorsa önerilmez. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:803 +#: inc/Engine/Admin/Settings/Page.php:804 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." @@ -791,15 +741,15 @@ msgstr "" "Uyumluluk ve en iyi sonuçlar için javascript’i geciktir yürütmesi " "etkinleştirildiğinde bu seçenek etkisizleştirilir." -#: inc/Engine/Admin/Settings/Page.php:819 +#: inc/Engine/Admin/Settings/Page.php:820 msgid "Activate combine JavaScript" msgstr "JavaScript birleştirmeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:824 inc/admin/options.php:123 +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 msgid "Excluded Inline JavaScript" msgstr "Hariç Tutulan Satır İçi JavaScript" -#: inc/Engine/Admin/Settings/Page.php:826 +#: inc/Engine/Admin/Settings/Page.php:827 #, php-format msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one" @@ -808,13 +758,13 @@ msgstr "" "Birleştirmeden hariç tutulacak satır içi JavaScript dosyalarının örneklerini" " belirtin (her satıra bir tane). %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:842 -#: inc/Engine/Admin/Settings/Page.php:875 -#: inc/Engine/Admin/Settings/Page.php:904 inc/admin/options.php:124 +#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 msgid "Excluded JavaScript Files" msgstr "Hariç Tutulan JavaScript Dosyaları" -#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:844 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." @@ -822,7 +772,7 @@ msgstr "" "Küçültmeden ve birleştirmeden hariç tutulacak JavaScript dosyalarının " "URL’lerini belirtin (her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:844 +#: inc/Engine/Admin/Settings/Page.php:845 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " @@ -832,7 +782,7 @@ msgstr "" "sadeleştirilecektir. Belirli bir yolda bulunan tüm JS dosyalarını hariç " "tutmak için (.*).js joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:846 +#: inc/Engine/Admin/Settings/Page.php:847 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " @@ -841,11 +791,11 @@ msgstr "" "3. Taraf: Harici JS dosyalarını dahil etmemek için ya URL " "tam yolunu ya da sadece etki alanı adını kullanın. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:862 +#: inc/Engine/Admin/Settings/Page.php:863 msgid "Load JavaScript deferred" msgstr "Ertelenmiş JavaScript yükle" -#: inc/Engine/Admin/Settings/Page.php:864 +#: inc/Engine/Admin/Settings/Page.php:865 #, php-format msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " @@ -855,7 +805,7 @@ msgstr "" "sitenizdeki işleyişi engelleyen JS’yi aradan kaldırır. %1$sDaha fazla " "bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:877 +#: inc/Engine/Admin/Settings/Page.php:878 #, php-format msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one " @@ -865,11 +815,11 @@ msgstr "" "anahtar kelimelerini belirtin (her satıra bir tane). %1$sDaha fazla " "bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:893 inc/admin/ui/meta-boxes.php:82 +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 msgid "Delay JavaScript execution" msgstr "JavaScript’i Geciktir yürütmesi" -#: inc/Engine/Admin/Settings/Page.php:895 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" "Improves performance by delaying the loading of JavaScript files until user " @@ -878,7 +828,7 @@ msgstr "" "JavaScript dosyalarının yüklenmesini, kullanıcı etkileşimine (örn. kaydırma," " tıklama) kadar geciktirerek performansı artırır. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:905 +#: inc/Engine/Admin/Settings/Page.php:906 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." @@ -887,23 +837,23 @@ msgstr "" "dosyalarını tanımlayabilecek URL’leri veya anahtar kelimeleri belirtin (her " "satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:937 msgid "Media" msgstr "Ortam" -#: inc/Engine/Admin/Settings/Page.php:937 +#: inc/Engine/Admin/Settings/Page.php:938 msgid "LazyLoad, image dimensions" msgstr "LazyLoad, resim boyutları" -#: inc/Engine/Admin/Settings/Page.php:946 +#: inc/Engine/Admin/Settings/Page.php:947 msgid "Autoptimize" -msgstr "Autoptimize" +msgstr "Otoiyileştir" -#: inc/Engine/Admin/Settings/Page.php:991 +#: inc/Engine/Admin/Settings/Page.php:992 msgid "LazyLoad" msgstr "LazyLoad" -#: inc/Engine/Admin/Settings/Page.php:994 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" "It can improve actual and perceived loading time as images, iframes, and " @@ -915,7 +865,7 @@ msgstr "" "süresini iyileştirebilir ve HTTP isteklerinin sayısını azaltır. %1$sDaha " "Fazla Bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1001 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " @@ -924,11 +874,11 @@ msgstr "" "LazyLoad şu anda %2$s içinde aktif edildi. Eğer WP Rocket’in LazyLoad’ını " "kullanmak istiyorsanız, %2$s içindeki bu seçeneği etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:1004 +#: inc/Engine/Admin/Settings/Page.php:1005 msgid "Image Dimensions" msgstr "Resim Boyutları" -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" "Add missing width and height attributes to images. Helps prevent layout " @@ -939,11 +889,11 @@ msgstr "" "değişimlerini önlemeye ve ziyaretçileriniz için okuma deneyimini " "iyileştirmeye yardımcı olur. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1026 +#: inc/Engine/Admin/Settings/Page.php:1027 msgid "Enable for images" msgstr "Resimler için etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1038 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use " @@ -953,21 +903,21 @@ msgstr "" "LazyLoad’ını kullanmak istiyorsanız, %2$s içindeki bu seçeneği " "etkisizleştirin." -#: inc/Engine/Admin/Settings/Page.php:1046 +#: inc/Engine/Admin/Settings/Page.php:1047 msgid "Enable for iframes and videos" msgstr "Iframe’ler ve görüntüler için etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1061 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "Replace YouTube iframe with preview image" msgstr "Önizleme resmi ile YouTube iframe’ini değiştir" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 #, php-format msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" "Önizleme resmi ile değiştirilen YouTube iframe’i %2$s ile uyumlu değil." -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 msgid "" "This can significantly improve your loading time if you have a lot of " "YouTube videos on a page." @@ -975,11 +925,11 @@ msgstr "" "Bir sayfada çok sayıda YouTube görüntüsüne sahipseniz bu önemli ölçüde " "yükleme sürenizi iyileştirebilir." -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1079 msgid "Excluded images or iframes" msgstr "Hariç tutulan resimler veya iframe’ler" -#: inc/Engine/Admin/Settings/Page.php:1080 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" "Specify keywords (e.g. image filename, CSS class, domain) from the image or " @@ -989,42 +939,37 @@ msgstr "" "dosya adı, CSS sınıfı, etki alanı) belirtin (her satıra bir tane). %1$sDaha " "fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1089 msgid "Add missing image dimensions" msgstr "Eksik resim boyutlarını ekle" -#: inc/Engine/Admin/Settings/Page.php:1107 inc/deprecated/deprecated.php:1776 +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 msgid "Preload" msgstr "Önyükleme" -#: inc/Engine/Admin/Settings/Page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1109 msgid "Generate cache files, preload fonts" msgstr "Önbellek dosyalarını oluşturun, yazı tiplerini önyükleyin" -#: inc/Engine/Admin/Settings/Page.php:1119 +#: inc/Engine/Admin/Settings/Page.php:1120 msgid "Preload Cache" msgstr "Önbelleği Önyükle" -#: inc/Engine/Admin/Settings/Page.php:1122 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" -"When you enable preloading WP Rocket will generate the cache starting with " -"the links on your homepage followed by the sitemaps you specify. Preloading " -"is automatically triggered when you add or update content and can also be " -"manually triggered from the admin bar or from the %1$sWP Rocket " -"Dashboard%2$s." +"When you enable preloading WP Rocket will automatically detect your sitemaps" +" and save all URLs to the database. The plugin will make sure that your " +"cache is always preloaded." msgstr "" -"Önyüklemeyi etkinleştirdiğinizde WP Rocket size belirttiğiniz site " -"haritaları tarafından izlenen ana sayfanızda bağlantılar ile başlayan " -"önbelleği oluşturacaktır. Önyükleme, içerik eklediğinizde veya " -"güncellediğinizde otomatik olarak tetiklenir ve ayrıca yönetici çubuğundan " -"veya %1$sWP Rocket Paneli%2$s’nden el ile tetiklenebilir." +"Önceden yüklemeyi etkinleştirdiğinizde WP Rocket, site haritalarınızı " +"otomatik olarak algılayacak ve tüm URL’leri veritabanına kaydedecek. " +"Eklenti, önbelleğinizin her zaman önceden yüklendiğinden emin olacak." -#: inc/Engine/Admin/Settings/Page.php:1130 +#: inc/Engine/Admin/Settings/Page.php:1131 msgid "Preload Links" msgstr "Bağlantıları Önyükle" -#: inc/Engine/Admin/Settings/Page.php:1133 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" "Link preloading improves the perceived load time by downloading a page when " @@ -1033,11 +978,11 @@ msgstr "" "Bağlantı önyükleme, kullanıcı bağlantının üzerine geldiğinde bir sayfa " "indirerek algılanan yükleme süresini iyileştirir. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1141 +#: inc/Engine/Admin/Settings/Page.php:1142 msgid "Prefetch DNS Requests" msgstr "DNS İsteklerini Önceden Getirme" -#: inc/Engine/Admin/Settings/Page.php:1143 +#: inc/Engine/Admin/Settings/Page.php:1144 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" @@ -1045,11 +990,11 @@ msgstr "" "Önceden DNS getirme, harici dosyaları daha hızlı yüklemeyi sağlayabilir, " "özellikle de mobil ağlarda" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1149 msgid "Preload Fonts" msgstr "Yazı Tiplerini Önyükle" -#: inc/Engine/Admin/Settings/Page.php:1151 +#: inc/Engine/Admin/Settings/Page.php:1152 #, php-format msgid "" "Improves performance by helping browsers discover fonts in CSS files. " @@ -1058,27 +1003,15 @@ msgstr "" "Tarayıcıların CSS dosyalarındaki yazı tiplerini keşfetmelerine yardımcı " "olarak performansı artırır. %1$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1165 +#: inc/Engine/Admin/Settings/Page.php:1166 msgid "Activate Preloading" msgstr "Önyüklemeyi aktif et" -#: inc/Engine/Admin/Settings/Page.php:1184 -msgid "Activate sitemap-based cache preloading" -msgstr "Site haritası tabanlı önbellek önyüklemesini aktif et" - -#: inc/Engine/Admin/Settings/Page.php:1203 -msgid "Sitemaps for preloading" -msgstr "Önyükleme için site haritaları" - -#: inc/Engine/Admin/Settings/Page.php:1207 -msgid "Specify XML sitemap(s) to be used for preloading" -msgstr "Önyükleme için kullanılacak XML site harita(larını)sını belirtin" - -#: inc/Engine/Admin/Settings/Page.php:1217 +#: inc/Engine/Admin/Settings/Page.php:1174 msgid "URLs to prefetch" msgstr "Önceden gertirmek için URL’ler" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1175 msgid "" "Specify external hosts to be prefetched (no http:, one per " "line)" @@ -1086,11 +1019,11 @@ msgstr "" "Önceden getirilecek olan harici anamakineleri belirtin (http: " "olmadan, her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1227 +#: inc/Engine/Admin/Settings/Page.php:1184 msgid "Fonts to preload" msgstr "Önyüklenecek yazı tipleri" -#: inc/Engine/Admin/Settings/Page.php:1228 +#: inc/Engine/Admin/Settings/Page.php:1185 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be" " hosted on your own domain, or the domain you have specified on the CDN tab." @@ -1099,7 +1032,7 @@ msgstr "" "tane). Yazı tipleri kendi etki alanınızda veya CDN sekmesinde belirttiğiniz " "etki alanında barındırılmak zorundadır." -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1186 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." @@ -1107,51 +1040,51 @@ msgstr "" "URL’nin etki alanı kısmı otomatik olarak sadeleştirilecektir.
İzin " "verilen yazı tipi uzantıları: otf, ttf, svg, woff, woff2." -#: inc/Engine/Admin/Settings/Page.php:1238 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "Enable link preloading" msgstr "Bağlantı önyüklemeyi etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1257 +#: inc/Engine/Admin/Settings/Page.php:1214 msgid "Advanced Rules" msgstr "Gelişmiş Kurallar" -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1215 msgid "Fine-tune cache rules" msgstr "Önbellek kurallarına ince ayar yapın" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1226 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" "Özel oturum açma/oturum kapatma URL’leri gibi hassas sayfalar önbellekten " "hariç tutulmalıdır." -#: inc/Engine/Admin/Settings/Page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1229 msgctxt "plugin name" msgid "WooCommerce" msgstr "WooCommerce" -#: inc/Engine/Admin/Settings/Page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1231 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "Easy Digital Downloads" -#: inc/Engine/Admin/Settings/Page.php:1276 +#: inc/Engine/Admin/Settings/Page.php:1233 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "iThemes Exchange" -#: inc/Engine/Admin/Settings/Page.php:1278 +#: inc/Engine/Admin/Settings/Page.php:1235 msgctxt "plugin name" msgid "Jigoshop" msgstr "Jigoshop" -#: inc/Engine/Admin/Settings/Page.php:1280 +#: inc/Engine/Admin/Settings/Page.php:1237 msgctxt "plugin name" msgid "WP-Shop" msgstr "WP-Shop" -#: inc/Engine/Admin/Settings/Page.php:1286 +#: inc/Engine/Admin/Settings/Page.php:1243 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in " @@ -1161,27 +1094,27 @@ msgstr "" "\"hesabım\" sayfaları algılanacak ve varsayılan olarak asla " "önbelleklenmeyecektir." -#: inc/Engine/Admin/Settings/Page.php:1296 inc/admin/options.php:127 +#: inc/Engine/Admin/Settings/Page.php:1253 inc/admin/options.php:127 msgid "Never Cache URL(s)" msgstr "Asla Önbelleklenmeyen URL(ler)" -#: inc/Engine/Admin/Settings/Page.php:1304 +#: inc/Engine/Admin/Settings/Page.php:1261 msgid "Never Cache Cookies" msgstr "Asla Önbelleklenmeyen Tanımlama Bilgileri" -#: inc/Engine/Admin/Settings/Page.php:1310 inc/admin/options.php:128 +#: inc/Engine/Admin/Settings/Page.php:1267 inc/admin/options.php:128 msgid "Never Cache User Agent(s)" msgstr "Asla Önbelleklenmeyen Kullanıcı Tanıtıcı(ları)sı" -#: inc/Engine/Admin/Settings/Page.php:1316 inc/admin/options.php:129 +#: inc/Engine/Admin/Settings/Page.php:1273 inc/admin/options.php:129 msgid "Always Purge URL(s)" msgstr "Her Zaman Temizlenen URL(ler)" -#: inc/Engine/Admin/Settings/Page.php:1322 +#: inc/Engine/Admin/Settings/Page.php:1279 msgid "Cache Query String(s)" msgstr "Önbelleklenen Sorgu Dizgi(leri)si" -#: inc/Engine/Admin/Settings/Page.php:1325 +#: inc/Engine/Admin/Settings/Page.php:1282 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific " @@ -1190,15 +1123,15 @@ msgstr "" "%1$sSorgu dizgilerini önbelleklemek%2$s belirli GET parametreleri için " "önbelleklemeye zorlamanızı etkinleştirir." -#: inc/Engine/Admin/Settings/Page.php:1336 +#: inc/Engine/Admin/Settings/Page.php:1293 msgid "" "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" "Asla önbelleklenmemesi gereken sayfa ve yazıların URL’lerini belirtin (her " "satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1337 -#: inc/Engine/Admin/Settings/Page.php:1365 +#: inc/Engine/Admin/Settings/Page.php:1294 +#: inc/Engine/Admin/Settings/Page.php:1322 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to address multiple URLs under a given path." @@ -1206,7 +1139,7 @@ msgstr "" "URL’nin etki alanı kısmı otomatik olarak sadeleştirilecektir.
Verilen yol" " altında çoklu URL’leri adreslemek için (.*) joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1303 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's " "browser, should prevent a page from getting cached (one per line)" @@ -1215,20 +1148,20 @@ msgstr "" "engel olması gereken, tanımlama bilgilerinin tam ya da kısmi kimliklerini " "belirtin (satır başına bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1354 +#: inc/Engine/Admin/Settings/Page.php:1311 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" "Önbelleklenmiş sayfaları asla görmemesi gereken kullanıcı tanıtıcı dizgisini" " belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1312 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" "UA dizgilerinin parçalarını algılamak için (.*) joker karakterlerini " "kullanın." -#: inc/Engine/Admin/Settings/Page.php:1364 +#: inc/Engine/Admin/Settings/Page.php:1321 msgid "" "Specify URLs you always want purged from cache whenever you update any post " "or page (one per line)" @@ -1236,23 +1169,23 @@ msgstr "" "Herhangi bir yazıyı veya sayfayı her güncellediğinizde daima önbellekten " "temizlenmesini istediğiniz URL’leri belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1373 +#: inc/Engine/Admin/Settings/Page.php:1330 msgid "Specify query strings for caching (one per line)" msgstr "Önbellekleme için sorgu dizgilerini belirtin (her satıra bir tane)" -#: inc/Engine/Admin/Settings/Page.php:1398 inc/deprecated/deprecated.php:1775 +#: inc/Engine/Admin/Settings/Page.php:1355 inc/deprecated/deprecated.php:1775 msgid "Database" msgstr "Veritabanı" -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Optimize, reduce bloat" msgstr "İyileştirin, şişmeyi azaltın" -#: inc/Engine/Admin/Settings/Page.php:1406 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Post Cleanup" msgstr "Yazı Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1408 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this " "option if you need to retain revisions or drafts." @@ -1260,19 +1193,19 @@ msgstr "" "Yazı incelemeleri ve taslaklar kalıcı olarak silinecektir. İncelemeleri ya " "da taslakları tutmanız gerekiyorsa bu seçeneği kullanmayın." -#: inc/Engine/Admin/Settings/Page.php:1413 +#: inc/Engine/Admin/Settings/Page.php:1370 msgid "Comments Cleanup" msgstr "Yorumları Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1415 +#: inc/Engine/Admin/Settings/Page.php:1372 msgid "Spam and trashed comments will be permanently deleted." msgstr "İstenmeyen mesaj ve çöpe atılmış yorumlar kalıcı olarak silinecektir." -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1376 msgid "Transients Cleanup" msgstr "Geçicileri Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1378 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." @@ -1280,106 +1213,106 @@ msgstr "" "Geçiciler geçici seçeneklerdir; kaldırması güvenlidir. Eklentilerinizin " "gerektirdiklerini otomatik olarak oluşturacaklardır." -#: inc/Engine/Admin/Settings/Page.php:1425 +#: inc/Engine/Admin/Settings/Page.php:1382 msgid "Database Cleanup" msgstr "Veritabanı Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1427 +#: inc/Engine/Admin/Settings/Page.php:1384 msgid "Reduces overhead of database tables" msgstr "Veritabanı tablolarının ek yükünü azaltır" -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1388 msgid "Automatic Cleanup" msgstr "Otomatik Temizleme" -#: inc/Engine/Admin/Settings/Page.php:1444 +#: inc/Engine/Admin/Settings/Page.php:1401 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "Veritabanınızda %s düzeltme." msgstr[1] "Veritabanınızda %s düzeltme." -#: inc/Engine/Admin/Settings/Page.php:1454 +#: inc/Engine/Admin/Settings/Page.php:1411 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "Veritabanınızda %s taslak." msgstr[1] "Veritabanınızda %s taslak." -#: inc/Engine/Admin/Settings/Page.php:1464 +#: inc/Engine/Admin/Settings/Page.php:1421 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "Veritabanınızda %s çöpe atılmış yazı." msgstr[1] "Veritabanınızda %s çöpe atılmış yazı." -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1431 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "Veritabanınızda %s istenmeyen yorum." msgstr[1] "Veritabanınızda %s istenmeyen yorum." -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1441 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "Veritabanınızda %s çöpe atılmış yorum." msgstr[1] "Veritabanınızda %s çöpe atılmış yorum." -#: inc/Engine/Admin/Settings/Page.php:1492 +#: inc/Engine/Admin/Settings/Page.php:1449 msgid "All transients" msgstr "Tüm geçiciler" -#: inc/Engine/Admin/Settings/Page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1451 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "Veritabanınızda %s geçici." msgstr[1] "Veritabanınızda %s geçici." -#: inc/Engine/Admin/Settings/Page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1459 msgid "Optimize Tables" msgstr "Tabloları iyileştir" -#: inc/Engine/Admin/Settings/Page.php:1504 +#: inc/Engine/Admin/Settings/Page.php:1461 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "Veritabanınızda iyileştirmek için %s tablo." msgstr[1] "Veritabanınızda iyileştirmek için %s tablo." -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1472 msgid "Schedule Automatic Cleanup" msgstr "Otomatik Temizlemeyi Zamanla" -#: inc/Engine/Admin/Settings/Page.php:1527 +#: inc/Engine/Admin/Settings/Page.php:1484 msgid "Frequency" msgstr "Sıklıkla" -#: inc/Engine/Admin/Settings/Page.php:1535 +#: inc/Engine/Admin/Settings/Page.php:1492 msgid "Daily" msgstr "Günlük" -#: inc/Engine/Admin/Settings/Page.php:1536 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "Weekly" msgstr "Haftalık" -#: inc/Engine/Admin/Settings/Page.php:1537 +#: inc/Engine/Admin/Settings/Page.php:1494 msgid "Monthly" msgstr "Aylık" -#: inc/Engine/Admin/Settings/Page.php:1553 -#: inc/Engine/Admin/Settings/Page.php:1564 inc/admin/ui/meta-boxes.php:79 +#: inc/Engine/Admin/Settings/Page.php:1510 +#: inc/Engine/Admin/Settings/Page.php:1521 inc/admin/ui/meta-boxes.php:79 #: inc/deprecated/deprecated.php:1773 msgid "CDN" msgstr "CDN" -#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1511 msgid "Integrate your CDN" msgstr "CDN’nizi bütünleştirin" -#: inc/Engine/Admin/Settings/Page.php:1566 +#: inc/Engine/Admin/Settings/Page.php:1523 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s)" " you provide." @@ -1387,7 +1320,7 @@ msgstr "" "Sabit dosyaların (CSS, JS, resimler) tüm URL’leri, verdiğiniz CNAME(lere)e " "yeniden yazılacaktır." -#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1525 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our " @@ -1396,11 +1329,11 @@ msgstr "" "Cloudflare ve Sucuri gibi hizmetler için gerekmez. Lütfen mevcut " "%1$sEklentilerimize%2$s bakın." -#: inc/Engine/Admin/Settings/Page.php:1583 inc/admin/options.php:130 +#: inc/Engine/Admin/Settings/Page.php:1540 inc/admin/options.php:130 msgid "Exclude files from CDN" msgstr "CDN’den hariç tutulan dosyalar" -#: inc/Engine/Admin/Settings/Page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1566 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings " "is not required for %2$l to work on your site." @@ -1414,28 +1347,28 @@ msgstr[1] "" "%1$s%2$l Eklentileri%3$s şu anda etkinleştirildi. CDN ayarlarının " "yapılandırması, sitenizde çalışması amacıyla %2$l için gerekmez." -#: inc/Engine/Admin/Settings/Page.php:1634 +#: inc/Engine/Admin/Settings/Page.php:1591 msgid "Enable Content Delivery Network" msgstr "İçerik Dağıtım Ağını (CDN) etkinleştir" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1600 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" msgstr "CDN CNAME(ler)" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1601 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" msgstr "Aşağıda CNAME(leri) belirtin" -#: inc/Engine/Admin/Settings/Page.php:1651 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "" "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" "CDN aracılığıyla sunulmaması gereken dosyaların URL(lerini)sini belirtin " "(her satıra bir tane)." -#: inc/Engine/Admin/Settings/Page.php:1652 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) " "wildcards to exclude all files of a given file type located at a specific " @@ -1445,16 +1378,16 @@ msgstr "" " yolda bulunan verilen bir dosya türünün tüm dosyalarını hariç tutmak için " "(.*) joker karakterlerini kullanın." -#: inc/Engine/Admin/Settings/Page.php:1675 -#: inc/Engine/Admin/Settings/Page.php:1683 +#: inc/Engine/Admin/Settings/Page.php:1632 +#: inc/Engine/Admin/Settings/Page.php:1640 msgid "Heartbeat" msgstr "Kalp Atışı" -#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1633 msgid "Control WordPress Heartbeat API" msgstr "WordPress Kalp Atışı API’sini denetleyin" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1641 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of " "your server’s resources." @@ -1462,11 +1395,11 @@ msgstr "" "Kalp Atışı API’si etkinliğini azaltmak veya etkisizleştirmek, sunucunuzun " "kaynaklarının bazılarını kurtarmasına yardımcı olabilir." -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1647 msgid "Reduce or disable Heartbeat activity" msgstr "Kalp Atışı etkinliğini azaltma veya etkisizleştirme" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute " "to one hit every 2 minutes." @@ -1474,55 +1407,55 @@ msgstr "" "Etkinliği azaltmak Kalp Atışı sıklığını, her dakikada bir vuruştan her 2 " "dakikada bir vuruşa değiştirecektir." -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "" "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" "Kalp Atışı’nın tamamen etkisizleştirilmesi bu API’yi kullanan eklentileri ve" " temaları bozabilir." -#: inc/Engine/Admin/Settings/Page.php:1705 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Do not limit" msgstr "Sınırlandırma" -#: inc/Engine/Admin/Settings/Page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1663 msgid "Reduce activity" msgstr "Etkinliği azalt" -#: inc/Engine/Admin/Settings/Page.php:1707 +#: inc/Engine/Admin/Settings/Page.php:1664 msgid "Disable" msgstr "Etkisizleştir" -#: inc/Engine/Admin/Settings/Page.php:1715 +#: inc/Engine/Admin/Settings/Page.php:1672 msgid "Control Heartbeat" msgstr "Kalp Atışı’nı denetle" -#: inc/Engine/Admin/Settings/Page.php:1724 +#: inc/Engine/Admin/Settings/Page.php:1681 msgid "Behavior in backend" msgstr "Arka uçtaki davranış" -#: inc/Engine/Admin/Settings/Page.php:1731 +#: inc/Engine/Admin/Settings/Page.php:1688 msgid "Behavior in post editor" msgstr "Yazı düzenleyicideki davranış" -#: inc/Engine/Admin/Settings/Page.php:1737 +#: inc/Engine/Admin/Settings/Page.php:1694 msgid "Behavior in frontend" msgstr "Ön uçtaki davranış" -#: inc/Engine/Admin/Settings/Page.php:1754 +#: inc/Engine/Admin/Settings/Page.php:1711 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "Eklentiler" -#: inc/Engine/Admin/Settings/Page.php:1755 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "Add more features" msgstr "Daha fazla özellik ekleyin" -#: inc/Engine/Admin/Settings/Page.php:1762 +#: inc/Engine/Admin/Settings/Page.php:1719 msgid "One-click Rocket Add-ons" msgstr "Tek Tık Rocket Eklentileri" -#: inc/Engine/Admin/Settings/Page.php:1763 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "One-Click Add-ons are features extending available options without " "configuration needed. Switch the option \"on\" to enable from this screen." @@ -1531,25 +1464,25 @@ msgstr "" "özelliklerdir. Etkinleştirmek için seçeneği bu ekrandan \"açık\" olarak " "değiştirin." -#: inc/Engine/Admin/Settings/Page.php:1773 +#: inc/Engine/Admin/Settings/Page.php:1730 msgid "Rocket Add-ons" msgstr "Rocket Eklentileri" -#: inc/Engine/Admin/Settings/Page.php:1774 +#: inc/Engine/Admin/Settings/Page.php:1731 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" "Rocket Eklentileri mevcut seçenekleri genişleten tamamlayıcı özelliklerdir." -#: inc/Engine/Admin/Settings/Page.php:1785 -#: inc/Engine/Admin/Settings/Page.php:1937 +#: inc/Engine/Admin/Settings/Page.php:1742 +#: inc/Engine/Admin/Settings/Page.php:1894 msgid "Cloudflare" msgstr "Cloudflare" -#: inc/Engine/Admin/Settings/Page.php:1791 +#: inc/Engine/Admin/Settings/Page.php:1748 msgid "Integrate your Cloudflare account with this add-on." msgstr "Bu eklenti ile Cloudflare hesabınızı bütünleştirin." -#: inc/Engine/Admin/Settings/Page.php:1792 +#: inc/Engine/Admin/Settings/Page.php:1749 msgid "" "Provide your account email, global API key, and domain to use options such " "as clearing the Cloudflare cache and enabling optimal settings with WP " @@ -1559,16 +1492,16 @@ msgstr "" "etkinleştirmek gibi seçenekleri kullanmak için hesap e-postanızı, genel API " "anahtarını ve etki alanını sağlar." -#: inc/Engine/Admin/Settings/Page.php:1826 +#: inc/Engine/Admin/Settings/Page.php:1783 msgid "Varnish" msgstr "Varnish" -#: inc/Engine/Admin/Settings/Page.php:1832 +#: inc/Engine/Admin/Settings/Page.php:1789 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" "Varnish sunucunuzda çalışıyorsa, bu eklentiyi aktif etmek zorundasınız." -#: inc/Engine/Admin/Settings/Page.php:1834 +#: inc/Engine/Admin/Settings/Page.php:1791 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " @@ -1578,15 +1511,15 @@ msgstr "" "zaman güncel olduğunu garantilemek için temizlenecektir.
%1$sDaha fazla " "bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:1869 +#: inc/Engine/Admin/Settings/Page.php:1826 msgid "WebP Compatibility" msgstr "WebP Uyumluluğu" -#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:1832 msgid "Improve browser compatibility for WebP images." msgstr "WebP resimleri için tarayıcı uyumluluğunu iyileştirin." -#: inc/Engine/Admin/Settings/Page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:1836 #, php-format msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " @@ -1599,11 +1532,11 @@ msgstr "" "oluşturamayacağını lütfen unutmayın. WebP resimleri oluşturmak için " "%1$sImagify%2$s öneriyoruz. %3$sDaha fazla bilgi%2$s" -#: inc/Engine/Admin/Settings/Page.php:1899 +#: inc/Engine/Admin/Settings/Page.php:1856 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "WP Rocket’in önbelleği temizlendiğinde Sucuri önbelleğini temizler." -#: inc/Engine/Admin/Settings/Page.php:1902 +#: inc/Engine/Admin/Settings/Page.php:1859 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is " "cleared." @@ -1611,48 +1544,48 @@ msgstr "" "WP Rocket’in önbelleği temizlendiğinde Sucuri önbelleğini temizlemek için " "API anahtarınızı verin." -#: inc/Engine/Admin/Settings/Page.php:1910 -#: inc/Engine/Admin/Settings/Page.php:2054 +#: inc/Engine/Admin/Settings/Page.php:1867 +#: inc/Engine/Admin/Settings/Page.php:2011 msgid "Sucuri" msgstr "Sucuri" -#: inc/Engine/Admin/Settings/Page.php:1916 +#: inc/Engine/Admin/Settings/Page.php:1873 msgid "Synchronize Sucuri cache with this add-on." msgstr "Bu eklenti ile Sucuri önbelleğini eşitleyin." -#: inc/Engine/Admin/Settings/Page.php:1954 +#: inc/Engine/Admin/Settings/Page.php:1911 msgid "Cloudflare credentials" msgstr "Cloudflare kimlik bilgileri" -#: inc/Engine/Admin/Settings/Page.php:1963 +#: inc/Engine/Admin/Settings/Page.php:1920 msgid "Cloudflare settings" msgstr "Cloudflare ayarları" -#: inc/Engine/Admin/Settings/Page.php:1977 +#: inc/Engine/Admin/Settings/Page.php:1934 msgctxt "Cloudflare" msgid "Global API key:" msgstr "Genel API anahtarı" -#: inc/Engine/Admin/Settings/Page.php:1978 +#: inc/Engine/Admin/Settings/Page.php:1935 msgctxt "Cloudflare" msgid "Find your API key" msgstr "API anahtarınızı bulun" -#: inc/Engine/Admin/Settings/Page.php:1990 +#: inc/Engine/Admin/Settings/Page.php:1947 msgctxt "Cloudflare" msgid "Account email" msgstr "Hesap e-postası" -#: inc/Engine/Admin/Settings/Page.php:1999 +#: inc/Engine/Admin/Settings/Page.php:1956 msgctxt "Cloudflare" msgid "Zone ID" msgstr "Bölge Kimliği - Zone ID" -#: inc/Engine/Admin/Settings/Page.php:2009 +#: inc/Engine/Admin/Settings/Page.php:1966 msgid "Development mode" msgstr "Geliştirme kipi" -#: inc/Engine/Admin/Settings/Page.php:2011 +#: inc/Engine/Admin/Settings/Page.php:1968 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " @@ -1661,11 +1594,11 @@ msgstr "" "Web sitenizde geçici olarak geliştirme kipini aktif edin. Bu ayar otomatik " "olarak 3 saat sonra kapanacak. %1$sDaha fazla bilgi edinin%2$s" -#: inc/Engine/Admin/Settings/Page.php:2019 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "Optimal settings" msgstr "En uygun ayarlar" -#: inc/Engine/Admin/Settings/Page.php:2020 +#: inc/Engine/Admin/Settings/Page.php:1977 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." @@ -1673,11 +1606,11 @@ msgstr "" "Hız, performans puanı ve uyumluluk için Cloudflare yapılandırmanızı otomatik" " olarak iyileştirir." -#: inc/Engine/Admin/Settings/Page.php:2028 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "Relative protocol" msgstr "Göreli protokol" -#: inc/Engine/Admin/Settings/Page.php:2029 +#: inc/Engine/Admin/Settings/Page.php:1986 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static " "files (CSS, JS, images) will be rewritten to use // instead of http:// or " @@ -1687,11 +1620,11 @@ msgstr "" "dosyaların (CSS, JS, resimler) URL’leri, http:// veya https:// yerine // " "kullanmak için yeniden yazılacaktır." -#: inc/Engine/Admin/Settings/Page.php:2067 +#: inc/Engine/Admin/Settings/Page.php:2024 msgid "Sucuri credentials" msgstr "Sucuri kimlik bilgileri" -#: inc/Engine/Admin/Settings/Page.php:2080 +#: inc/Engine/Admin/Settings/Page.php:2037 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " @@ -1700,7 +1633,7 @@ msgstr "" "Güvenlik Duvarı API anahtarı (eklenti için), {32 karakter}/{32 " "karakter} biçiminde olmak zorundadır:" -#: inc/Engine/Admin/Settings/Page.php:2081 +#: inc/Engine/Admin/Settings/Page.php:2038 msgctxt "Sucuri" msgid "Find your API key" msgstr "API anahtarınızı bulun" @@ -1709,7 +1642,7 @@ msgstr "API anahtarınızı bulun" msgid "Upload file and import settings" msgstr "Dosyayı gönder ve ayarları içe aktar" -#: inc/Engine/Admin/Settings/Settings.php:391 +#: inc/Engine/Admin/Settings/Settings.php:375 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format " "{32 characters}/{32 characters}." @@ -1717,12 +1650,12 @@ msgstr "" "Sucuri Eklentisi: Sucuri güvenlik duvarı için API anahtarı, {32 " "karakter}/{32 karakter} biçiminde olmak zorundadır." -#: inc/Engine/Admin/Settings/Settings.php:482 +#: inc/Engine/Admin/Settings/Settings.php:466 #: inc/deprecated/deprecated.php:1245 msgid "Settings saved." msgstr "Ayarlar kaydedildi." -#: inc/Engine/Admin/Settings/Settings.php:698 +#: inc/Engine/Admin/Settings/Settings.php:682 msgid "" "Sorry! Adding /(.*) in Advanced Rules > Never Cache URL(s) was not saved " "because it disables caching and optimizations for every page on your site." @@ -1931,7 +1864,7 @@ msgstr "" "RocketCDN, WP Rocket’in İçerik Dağıtım Ağı ile web sitenizi hızlandırın!" #: inc/Engine/Cache/AdminSubscriber.php:118 inc/admin/admin.php:75 -#: inc/admin/admin.php:97 inc/deprecated/3.5.php:908 +#: inc/admin/admin.php:97 inc/deprecated/3.5.php:898 msgid "Clear this cache" msgstr "Bu önbelleği temizle" @@ -1963,6 +1896,7 @@ msgstr "WP_CACHE ayarlı değil" msgid "WP_CACHE is set to false" msgstr "WP_CACHE, false olarak ayarlı" +#: inc/Engine/Common/Queue/PreloadQueueRunner.php:232 #: inc/Engine/Common/Queue/RUCSSQueueRunner.php:252 msgid "Every minute" msgstr "Her dakika" @@ -2064,12 +1998,11 @@ msgid "Critical CSS generation is currently running." msgstr "Önemli CSS üretimi şu anda çalışıyor." #: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:159 -#: inc/Engine/Preload/PreloadSubscriber.php:234 #, php-format msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "İlerlemeyi izlemek için %1$sWP Rocket ayarları%2$s sayfasına gidin." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:370 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" "Critical CSS generation is currently running: %1$d of %2$d page types " @@ -2078,16 +2011,16 @@ msgstr "" "Önemli CSS oluşturma şu anda çalışıyor: %1$d / %2$d sayfa türü tamamlandı. " "(İlerlemeyi görmek için bu sayfayı yenileyin)" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:442 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 #, php-format msgid "Critical CSS generation finished for %1$d of %2$d page types." msgstr "Önemli CSS oluşturma, %1$d / %2$d sayfa türü için bitti." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Critical CSS generation encountered one or more errors." msgstr "Önemli CSS oluşturma, bir ya da daha fazla hata ile karşılaştı." -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Learn more." msgstr "Daha fazla bilgi edinin." @@ -2175,7 +2108,7 @@ msgstr "İstenen yazı yok." msgid "Cannot generate CPCSS for unpublished post." msgstr "Yayınlanmamış yazı için ÖYCSS oluşturulamıyor." -#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:868 +#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:858 msgid "" "The following scheduled event failed to run. This may indicate the CRON " "system is not running properly, which can prevent some WP Rocket features " @@ -2193,11 +2126,11 @@ msgstr[1] "" "sisteminin düzgün bir şekilde çalışmadığını gösterebilir ve bu da bazı WP " "Rocket özelliklerinin beklendiği gibi çalışmasını engelleyebilir:" -#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:877 +#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:867 msgid "Please contact your host to check if CRON is working." msgstr "" -"CRON’un çalışıp çalışmadığını denetlemek için lütfen barındırıcınza " -"başvurun." +"CRON’un çalışıp çalışmadığını denetlemek için lütfen barındırıcınız ile " +"iletişime geçin." #: inc/Engine/HealthCheck/HealthCheck.php:142 msgid "Scheduled Cache Purge" @@ -2220,6 +2153,29 @@ msgstr "Önyükleme" msgid "Critical Path CSS Generation Process" msgstr "Önemli Yol CSS’yi Oluşturma İşlemi" +#: inc/Engine/License/Renewal.php:432 +#, php-format +msgid "" +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" +"Bu özelliği kullanmaya devam etmek için geçerli bir lisansa ihtiyacınız var." +" Erişimi kaybetmeden önce %1$sşimdi yenileyin%2$s." + +#: inc/Engine/License/Renewal.php:453 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" +"Bu seçeneği etkinleştirmek için aktif bir lisansa ihtiyacınız var. %1$sŞimdi" +" yenile%2$s." + +#: inc/Engine/License/Renewal.php:481 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." +msgstr "" +"Bu seçeneği etkinleştirmek için aktif bir lisansa ihtiyacınız var. %1$sDaha " +"fazla bilgi%2$s." + #: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" @@ -2270,38 +2226,94 @@ msgid "Upgrade now" msgstr "Şimdi yükselt" #: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner.php:37 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 #: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 msgid "Dismiss this notice" msgstr "Bu bildirimi anımsatma" -#: inc/Engine/License/views/renewal-expired-banner.php:12 -msgid "Your WP Rocket license is expired!" -msgstr "WP Rocket lisansınızın süresi doldu!" +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." +msgstr "CSS teslimini iyileştir özelliği etkisizleştirildi." + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously " +"options." +msgstr "" +"Artık Kullanılmayan CSS’yi Kaldır veya CSS’yi eşzamansız olarak yükle " +"seçeneklerini kullanamazsınız." -#: inc/Engine/License/views/renewal-expired-banner.php:17 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"%1$sYour website could be much faster%2$s if it could take advantage of our " -"new features and enhancements. 🚀" +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, " +"which addresses a PageSpeed Insights recommendation and improves your page " +"performance." msgstr "" -"Yeni özelliklerimizden ve geliştirmelerimizden yararlanabilseydi %1$sweb " -"siteniz çok daha hızlı olabilirdi%2$s. 🚀" +"CSS teslimini iyileştirmeye devam etmek için bir PageSpeed ​​Insights " +"önerisini ele alan ve sayfa performansınızı iyileştiren %1$saktif bir " +"lisansa%2$s ihtiyacınız var." -#: inc/Engine/License/views/renewal-expired-banner.php:27 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Renew your license to have access to the %1$slatest version of WP Rocket%2$s" -" and to the wonderful %1$sassistance of our Support Team%2$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: " +"you’ll only pay %1$s%4$s%2$s!" msgstr "" -"%1$sWP Rocket’in en son sürümüne%2$s ve %1$sDestek Ekibimizin harika " -"yardımına%2$s erişmek için lisansınızı yenileyin." +"Lisansınızı 1 yıllığına yenileyin ve hemen %1$s%3$s İNDİRİM%2$s alın: sadece" +" %1$s%4$s%2$s ödeyeceksiniz!" -#: inc/Engine/License/views/renewal-expired-banner.php:35 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 #: inc/Engine/License/views/renewal-soon-banner.php:46 msgid "Renew now" msgstr "Şimdi yenile" +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "Yakında bazı özelliklere erişiminizi kaybedeceksiniz" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#, php-format +msgid "" +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." +msgstr "" +"%1$sCSS teslimini iyileştirmeye devam etmek için aktif bir lisansa%2$s " +"ihtiyacınız var." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options" +" to address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" +"Kullanılmayan CSS’yi Kaldır veya CSS’yi eşzamansız olarak yükle özellikleri," +" PageSpeed ​​Insights önerilerini ele almak ve web sitenizin performansını " +"artırmak için harika seçeneklerdir." + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "%1$s%3$s tarihinde otomatik olarak etkisizleştirileceklerdir%2$s." + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "WP Rocket lisansınızın süresi doldu!" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 +#, php-format +msgid "" +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" +msgstr "" +"%1$sYeni özelliklerimize ve geliştirmelerimize%2$s erişiminiz olsaydı, web " +"sitenizi çok daha hızlı hale getirebilirdiniz. 🚀" + #: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" @@ -2372,7 +2384,7 @@ msgstr "" "farkını ödeyeceksiniz)." #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:120 -#: views/settings/page-sections/dashboard.php:206 +#: views/settings/page-sections/dashboard.php:188 msgid "Clear Used CSS" msgstr "Kullanılan CSS’yi Temizle" @@ -2409,6 +2421,7 @@ msgstr "" "geçirin." #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:291 +#: inc/Engine/Preload/Admin/Settings.php:94 #, php-format msgid "" "%1$s: We detected missing database table related to Action Scheduler. Please" @@ -2435,23 +2448,55 @@ msgstr "" msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "%1$s indirimle WP Rocket tekli lisansı almak için burayı tıklayın!" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:299 +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:554 +msgid "You are about to lose access to an important feature" +msgstr "Önemli bir özelliğe erişiminizi kaybetmek üzeresiniz" + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:561 +#, php-format +msgid "" +"Rolling back to WP Rocket 3.10.10.1, the %1$sRemove Unused CSS%2$s feature " +"will not be available any longer in your file optimization tab." +msgstr "" +"WP Rocket 3.10.10.1’e geri dönerseniz, %1$sKullanılmayan CSS’yi Kaldır%2$s " +"özelliği artık dosya iyileştirme sekmenizde mevcut olmayacaktır." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:571 +#, php-format +msgid "" +"If you are encountering any issue related to this feature, you can simply " +"disable the option, or %1$scontact support for help%2$s." +msgstr "" +"Eğer bu özellikle ilgili herhangi bir sorunla karşılaşırsanız, seçeneği " +"basitçe etkisizleştirebilir veya %1$syardım için destek ile iletişime " +"geçebilirsiniz%2$s." + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:578 +#: views/deactivation-intent/form.php:63 +msgid "Cancel" +msgstr "İptal" + +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:579 +msgid "Confirm rollback" +msgstr "Geri almayı onayla" + +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:302 #, php-format msgid "%1$s: Used CSS option is not enabled!" msgstr "%1$s: Kullanılan CSS seçeneği etkinleştirilmedi!" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:320 +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:323 #, php-format msgid "%1$s: Used CSS cache cleared!" msgstr "%1$s: Kullanılan CSS önbelleği temizlendi!" -#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:702 +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:704 msgid "Clear Used CSS of this URL" msgstr "Bu URL’nin Kullanılan CSS’sini Temizle" -#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 -msgid "WP Rocket RUCSS pending jobs" -msgstr "WP Rocket RUCSS bekleyen işleri" +#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:144 +msgid "WP Rocket Remove Unused CSS pending jobs" +msgstr "WP Rocket Kullanılmayan CSS’yi Kaldır bekleyen işleri" #: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 #: inc/deprecated/3.3.php:770 @@ -2465,171 +2510,33 @@ msgstr "" "yapılandırması ile ilgili birşey yanlış gitmiş olabilir. Eğer sorunlar " "yaşamaya devam ederseniz, destekle iletişime geçin." -#: inc/Engine/Preload/Homepage.php:153 -#, php-format -msgid "" -"Preload encountered an error. Could not gather links on %1$s because of the " -"following error: %2$s. %3$sLearn more%4$s." -msgstr "" -"Önyükleme bir hatayla karşılaştı. Şu hatadan dolayı, %1$s üzerindeki " -"bağlantılar toplanamadı: %2$s. %3$sDaha fazla bilgi edinin%4$s." - -#: inc/Engine/Preload/Homepage.php:166 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: %2$s. Security measures could be preventing access. " -"%3$sLearn more%4$s." -msgstr "" -"Önyükleme bir hatayla karşılaştı. %1$s, şu yanıt kodundan dolayı " -"erişilebilir değil: %2$s. Güvenlik önlemleri erişimi engelliyor olabilir. " -"%3$sDaha fazla bilgi edinin%4$s." - -#: inc/Engine/Preload/Homepage.php:172 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 404. Please make sure your homepage is accessible in your " -"browser. %2$sLearn more%3$s." -msgstr "" -"Önyükleme bir hatayla karşılaştı. %1$s, şu yanıt kodundan dolayı " -"erişilebilir değil: 404. Lütfen ana sayfanızın tarayıcınızda erişilebilir " -"olduğundan emin olun. %2$sDaha fazla bilgi edinin%3$s." - -#: inc/Engine/Preload/Homepage.php:178 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following" -" response code: 500. Please check with your web host about server access. " -"%2$sLearn more%3$s." -msgstr "" -"Önyükleme bir hatayla karşılaştı. %1$s, şu yanıt kodundan dolayı " -"erişilebilir değil: 500. Lütfen sunucu erişimi ile ilgili olarak web " -"barındırıcınızı gözden geçirin. %2$sDaha fazla bilgi edinin%3$s." - -#: inc/Engine/Preload/Homepage.php:184 -#, php-format -msgid "" -"Preload encountered an error. Could not gather links on %1$s because it " -"returned the following response code: %2$s. %3$sLearn more%4$s." -msgstr "" -"Önyükleme bir hatayla karşılaştı. Şu yanıt kodunu döndürdüğünden, %1$s " -"üzerindeki bağlantılar toplanamadı: %2$s. %3$sDaha fazla bilgi edinin%4$s." - -#: inc/Engine/Preload/PreloadSubscriber.php:229 -msgid "Preload: WP Rocket has started preloading your website." -msgstr "Önyükleme: WP Rocket, web sitenizi önyüklemeye başladı." - -#: inc/Engine/Preload/PreloadSubscriber.php:276 -#, php-format -msgid "" -"Preload: %1$s uncached page has now been preloaded. (refresh to see " -"progress)" -msgid_plural "" -"Preload: %1$s uncached pages have now been preloaded. (refresh to see " -"progress)" -msgstr[0] "" -"Önyükleme: %1$s önbelleklenmeyen sayfanın şimdi önyüklemesi yapıldı. " -"(ilerlemeyi görmek için yenileyin)" -msgstr[1] "" -"Önyükleme: %1$s önbelleklenmeyen sayfanın şimdi önyüklemesi yapıldı. " -"(ilerlemeyi görmek için yenileyin)" - -#: inc/Engine/Preload/PreloadSubscriber.php:285 -msgid "The following error happened during gathering of the URLs to preload:" -msgid_plural "" -"The following errors happened during gathering of the URLs to preload:" -msgstr[0] "Önyükleme için URL’lerin toplanması sırasında aşağıdaki hata oldu:" -msgstr[1] "" -"Önyükleme için URL’lerin toplanması sırasında aşağıdaki hatalar oldu:" - -#: inc/Engine/Preload/PreloadSubscriber.php:338 -#, php-format -msgid "Preload complete: %d pages have been cached." -msgstr "Önyükleme tamamlandı: %d sayfa önbelleklendi." - -#: inc/Engine/Preload/Sitemap.php:150 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" of the following error: %2$s. %3$sLearn more%4$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. Şu hatadan dolayı, %1$s " -"üzerindeki bağlantılar toplanamadı: %2$s. %3$sDaha fazla bilgi edinin%4$s." - -#: inc/Engine/Preload/Sitemap.php:165 -#, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: %2$s. Security measures could be preventing access." -" %3$sLearn more%4$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. %1$s, şu yanıt kodundan " -"dolayı erişilebilir değil: %2$s. Güvenlik önlemleri erişimi engelliyor " -"olabilir. %3$sDaha fazla bilgi edinin%4$s." - -#: inc/Engine/Preload/Sitemap.php:170 +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 #, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 404. Please make sure you entered the correct " -"sitemap URL and it is accessible in your browser. %2$sLearn more%3$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. %1$s, şu yanıt kodundan " -"dolayı erişilebilir değil: 404. Lütfen doğru site haritası URL’si " -"girdiğinizden ve tarayıcınızda erişilebilir olduğundan emin olun. %2$sDaha " -"fazla bilgi edinin%3$s." +msgid "%s Update Rollback" +msgstr "%s Güncellemesi Geri Alma" -#: inc/Engine/Preload/Sitemap.php:175 +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 #, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 500. Please check with your web host about server " -"access. %2$sLearn more%3$s." +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. %1$s, şu yanıt kodundan " -"dolayı erişilebilir değil: 500. Lütfen sunucu erişimi ile ilgili olarak web " -"barındırıcınızı gözden geçirin. %2$sDaha fazla bilgi edinin%3$s." +"%1$sWP Rocket’a geri dönün%2$s ya da %3$sEklentiler sayfasına gidin%2$s" -#: inc/Engine/Preload/Sitemap.php:180 +#: inc/Engine/Preload/Admin/Settings.php:41 #, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because" -" it returned the following response code: %2$s. %3$sLearn more%4$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. Şu yanıt kodunu " -"döndürdüğünden, %1$s üzerindeki bağlantılar toplanamadı: %2$s. %3$sDaha " -"fazla bilgi edinin%4$s." +msgid "%1$s: Please wait. The preload service is processing your pages." +msgstr "%1$s: Lütfen bekleyin. Önyükleme hizmeti sayfalarınızı işliyor." -#: inc/Engine/Preload/Sitemap.php:196 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because the file is empty. %2$sLearn more%3$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. Dosya boş olduğundan, %1$s" -" adresinden gelen bağlantılar toplanamadı. %2$sDaha fazla bilgi edinin%3$s." +#: inc/Engine/Preload/Cron/Subscriber.php:129 +msgid "WP Rocket Preload pending jobs" +msgstr "WP Rocket Önyükleme bekleyen işleri" -#: inc/Engine/Preload/Sitemap.php:217 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s " -"because of an error during the XML sitemap parsing. %2$sLearn more%3$s." -msgstr "" -"Site haritası önyüklemesi bir hatayla karşılaştı. XML site haritası " -"ayrıştırması sırasında bir hata olduğundan, %1$s adresinden gelen " -"bağlantılar toplanamadı. %2$sDaha fazla bilgi edinin%3$s." - -#: inc/Engine/Preload/SitemapPreloadSubscriber.php:122 -#, php-format -msgid "" -"%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please " -"contact your host to enable it before running sitemap-based cache " -"preloading." -msgstr "" -"%1$sSimpleXML PHP uzantısı%2$s sunucunuzda etkinleştirilmedi. Site haritası " -"tabanlı önbellek önyüklemesini çalıştırmadan önce etkinleştirmek için lütfen" -" barındırıcınıza başvurun." +#: inc/Engine/Preload/Cron/Subscriber.php:157 +msgid "WP Rocket Preload revert stuck in-progress jobs" +msgstr "WP Rocket Önyükleme, takılı kalmış devam eden işleri geri alır" #: inc/ThirdParty/Hostings/Cloudways.php:82 #, php-format @@ -2773,10 +2680,6 @@ msgstr "" "JS’yi geciktir, şu anda %1$s içinde aktif edildi. Eğer WP Rocket’in JS’yi " "geciktir’ini kullanmak istiyorsanız, %1$s etkisizleştirin." -#: inc/ThirdParty/Plugins/SEO/Yoast.php:60 inc/deprecated/3.11.php:81 -msgid "Yoast SEO XML sitemap" -msgstr "Yoast SEO XML site haritası" - #: inc/ThirdParty/Plugins/Smush.php:108 inc/ThirdParty/Plugins/Smush.php:126 msgid "Smush" msgstr "Smush" @@ -2785,7 +2688,7 @@ msgstr "Smush" msgid "Avada" msgstr "Avada" -#: inc/admin/admin.php:18 inc/common/admin-bar.php:333 +#: inc/admin/admin.php:18 inc/common/admin-bar.php:255 #: inc/deprecated/deprecated.php:1787 msgid "Support" msgstr "Destek" @@ -2794,7 +2697,7 @@ msgstr "Destek" msgid "Docs" msgstr "Belgeler" -#: inc/admin/admin.php:22 inc/common/admin-bar.php:321 +#: inc/admin/admin.php:22 inc/common/admin-bar.php:243 msgid "FAQ" msgstr "SSS" @@ -2802,44 +2705,31 @@ msgstr "SSS" msgid "Settings" msgstr "Ayarlar" -#: inc/admin/admin.php:237 inc/admin/admin.php:252 -#: inc/classes/class-wp-rocket-requirements-check.php:203 -#: inc/classes/class-wp-rocket-requirements-check.php:214 -#, php-format -msgid "%s Update Rollback" -msgstr "%s Güncellemesi Geri Alma" - -#: inc/admin/admin.php:278 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" -msgstr "" -"%1$sWP Rocket’a geri dönün%2$s ya da %3$sEklentiler sayfasına gidin%2$s" - -#: inc/admin/admin.php:516 +#: inc/admin/admin.php:429 msgid "Settings import failed: you do not have the permissions to do this." msgstr "Ayarları içe aktarma başarısız oldu: bunu yapmak için izniniz yok." -#: inc/admin/admin.php:520 +#: inc/admin/admin.php:433 msgid "Settings import failed: no file uploaded." msgstr "Ayarları içe aktarma başarısız oldu: gönderilen dosya yok." -#: inc/admin/admin.php:524 +#: inc/admin/admin.php:437 msgid "Settings import failed: incorrect filename." msgstr "Ayarları içe aktarma başarısız oldu: yanlış dosya adı." -#: inc/admin/admin.php:535 +#: inc/admin/admin.php:448 msgid "Settings import failed: incorrect filetype." msgstr "Ayarları içe aktarma başarısız oldu: yanlış dosya türü." -#: inc/admin/admin.php:545 +#: inc/admin/admin.php:458 msgid "Settings import failed: " msgstr "Ayarları içe aktarma başarısız oldu:" -#: inc/admin/admin.php:561 +#: inc/admin/admin.php:474 msgid "Settings import failed: unexpected file content." msgstr "Ayarları içe aktarma başarısız oldu: beklenmeyen dosya içeriği." -#: inc/admin/admin.php:591 +#: inc/admin/admin.php:504 msgid "Settings imported and saved." msgstr "Ayarlar içe aktarıldı ve kaydedildi." @@ -2896,10 +2786,6 @@ msgstr "Iframe’ler ve görüntüler için LazyLoad" msgid "Minify/combine CSS" msgstr "CSS’yi küçült/birleştir" -#: inc/admin/ui/meta-boxes.php:77 -msgid "Remove Unused CSS" -msgstr "Kullanılmayan CSS’yi Kaldır" - #: inc/admin/ui/meta-boxes.php:78 msgid "Minify/combine JS" msgstr "JS’yi küçült/birleştir" @@ -3184,7 +3070,7 @@ msgstr "Günlük dosyası okunamadı." msgid "The logs are not saved into a file." msgstr "Günlükler bir dosya içine kaydedilmedi." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:269 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:266 #, php-format msgid "" "You are using %1$s to serve WebP images so you do not need to enable this " @@ -3205,12 +3091,12 @@ msgstr[1] "" "WebP’nin yerine sizin için WP Rocket’in sunmasını tercih ederseniz, lütfen " "%1$s içinde WebP görüntülemeyi etkisizleştirin." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:281 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:278 msgid "WebP cache is disabled by filter." msgstr "WebP önbelleği, süzgeç tarafından etkisizleştirildi." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:291 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:317 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:288 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:314 #, php-format msgid "" "You are using %1$s to convert images to WebP. If you want WP Rocket to serve" @@ -3227,8 +3113,8 @@ msgstr[1] "" "bunları sizin için sunmasını istiyorsanız, bu seçeneği aktif edin. %2$sDaha " "fazla bilgi%3$s" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:303 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:329 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:300 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:326 #, php-format msgid "" "You are using %1$s to convert images to WebP. WP Rocket will create separate" @@ -3245,7 +3131,7 @@ msgstr[1] "" "resimlerinizi sunmak için ayrı önbellek dosyaları oluşturacak. %2$sDaha " "fazla bilgi%3$s" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:349 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:346 #, php-format msgid "" "%5$sWe have not detected any compatible WebP plugin!%6$s%4$s If you don’t " @@ -3258,7 +3144,7 @@ msgstr "" "başka bir eklenti kullanmayı düşünün. %1$sDaha fazla bilgi%2$s %4$s Eğer " "WebP kullanmıyorsanız, bu seçeneği etkinleştirmeyin." -#: inc/classes/subscriber/Media/class-webp-subscriber.php:361 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:358 msgid "WP Rocket will create separate cache files to serve your WebP images." msgstr "" "WP Rocket, WebP resimlerinizi sunmak için ayrı önbellek dosyaları " @@ -3285,8 +3171,13 @@ msgstr "" "https://docs.wp-rocket.me/article/99-pages-not-cached-or-minify-cssjs-not-" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" -#: inc/common/admin-bar.php:124 inc/common/admin-bar.php:259 -#: inc/functions/i18n.php:41 inc/functions/i18n.php:51 +#: inc/common/admin-bar.php:84 inc/common/admin-bar.php:136 +#: views/settings/page-sections/dashboard.php:150 +msgid "Clear and preload cache" +msgstr "Önbelleği temizle ve önyükle" + +#: inc/common/admin-bar.php:124 inc/functions/i18n.php:41 +#: inc/functions/i18n.php:51 msgid "All languages" msgstr "Tüm diller" @@ -3302,16 +3193,11 @@ msgstr "Bu URL’yi temizle" msgid "Purge Sucuri cache" msgstr "Sucuri önbelleğini temizle" -#: inc/common/admin-bar.php:217 inc/common/admin-bar.php:271 -#: views/settings/page-sections/dashboard.php:170 -msgid "Preload cache" -msgstr "Önbelleği önyükle" - -#: inc/common/admin-bar.php:296 views/settings/fields/rocket-cdn.php:55 +#: inc/common/admin-bar.php:218 views/settings/fields/rocket-cdn.php:55 msgid "Purge RocketCDN cache" msgstr "RocketCDN önbelleğini temizle" -#: inc/common/admin-bar.php:309 views/settings/partials/documentation.php:14 +#: inc/common/admin-bar.php:231 views/settings/partials/documentation.php:14 msgid "Documentation" msgstr "Belgeler" @@ -3323,6 +3209,45 @@ msgstr "OPcache temizleme başarısız oldu." msgid "OPcache successfully purged" msgstr "OPcache başarılı olarak temizlendi" +#: inc/deprecated/3.11.php:81 +msgid "Yoast SEO XML sitemap" +msgstr "Yoast SEO XML site haritası" + +#: inc/deprecated/3.11.php:83 inc/deprecated/3.12.php:58 +#: inc/deprecated/3.12.php:87 inc/deprecated/3.12.php:186 +#: inc/deprecated/3.12.php:253 inc/deprecated/3.12.php:342 +#, php-format +msgid "" +"We automatically detected the sitemap generated by the %s plugin. You can " +"check the option to preload it." +msgstr "" +"%s eklentisi tarafından üretilen site haritasını otomatik olarak algıladık. " +"Önyüklemek için seçeneği işaretleyebilirsiniz." + +#: inc/deprecated/3.12.php:56 +msgid "All in One SEO XML sitemap" +msgstr "All in One SEO XML site haritası" + +#: inc/deprecated/3.12.php:85 +msgid "Rank Math XML sitemap" +msgstr "Rank Math XML site haritası" + +#: inc/deprecated/3.12.php:184 +msgid "SEOPress XML sitemap" +msgstr "SEOPress XML site haritası" + +#: inc/deprecated/3.12.php:251 +msgid "The SEO Framework XML sitemap" +msgstr "SEO Framework XML site haritası" + +#: inc/deprecated/3.12.php:332 +msgid "Jetpack XML Sitemaps" +msgstr "Jetpack XML Site Haritaları" + +#: inc/deprecated/3.12.php:334 +msgid "Preload the sitemap from the Jetpack plugin" +msgstr "Jetpack eklentisinden site haritasını önyükleme yap" + #: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 msgid "Activate Imagify" msgstr "Imagify’ı Etkinleştir" @@ -3365,7 +3290,7 @@ msgstr "Listeden bir etki alanı seçin" msgid "No domain available in your Cloudflare account" msgstr "Cloudflare hesabınızda hiç etki alanı mevcut değil" -#: inc/deprecated/3.5.php:81 inc/deprecated/3.5.php:205 +#: inc/deprecated/3.5.php:71 inc/deprecated/3.5.php:195 msgid "" "Curl is disabled on your server. Please ask your host to enable it. This is " "required for the Cloudflare Add-on to work correctly." @@ -3374,7 +3299,7 @@ msgstr "" "etkinleştirmesini isteyin. Bu, Cloudflare Eklentisinin doğru çalışması için " "gereklidir." -#: inc/deprecated/3.5.php:89 +#: inc/deprecated/3.5.php:79 #, php-format msgid "" "Cloudflare email, API key and Zone ID are not set. Read the " @@ -3383,7 +3308,7 @@ msgstr "" "Cloudflare e-posta adresi, API anahtarı ve Bölge Kimliği ayarlı değil. Daha " "fazla rehberlik için %1$sbelgeleri%2$s okuyun." -#: inc/deprecated/3.5.php:216 +#: inc/deprecated/3.5.php:206 #, php-format msgid "" "Cloudflare email and API key are not set. Read the %1$sdocumentation%2$s for" @@ -3392,7 +3317,7 @@ msgstr "" "Cloudflare e-posta adresi ve API anahtarı ayarlı değil. Daha fazla rehberlik" " için %1$sbelgeleri%2$s okuyun." -#: inc/deprecated/3.5.php:281 +#: inc/deprecated/3.5.php:271 msgid "Connection to Cloudflare failed" msgstr "Cloudflare’a bağlantı başarısız oldu" @@ -3584,16 +3509,16 @@ msgstr "İsimsizleştirilmiş WP Rocket ayarları:" msgid "Which WP Rocket settings are active" msgstr "Hangi WP Rocket ayarları aktif" -#: inc/functions/options.php:471 +#: inc/functions/options.php:473 msgid "The provided license data are not valid." msgstr "Verilen lisans verileri geçerli değil." -#: inc/functions/options.php:474 +#: inc/functions/options.php:476 #, php-format msgid "To resolve, please %1$scontact support%2$s." msgstr "Çözmek için lütfen %1$sdestek ile iletişime geçin%2$s." -#: inc/functions/options.php:533 inc/functions/options.php:572 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from " "your website." @@ -3601,7 +3526,7 @@ msgstr "" "Lisans doğrulama başarısız oldu. Sunucumuz web sitenizden gelen isteği " "çözemedi." -#: inc/functions/options.php:533 +#: inc/functions/options.php:535 #, php-format msgid "" "Try clicking %1$sValidate License%2$s below. If the error persists, follow " @@ -3610,7 +3535,7 @@ msgstr "" "Aşağıda %1$sLisansı Doğrula%2$s düğmesine tıklamaya çalışın. Eğer hata devam" " ederse, %3$sbu kılavuzu%4$s takip edin." -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" @@ -3618,46 +3543,46 @@ msgstr "" "Lisans doğrulama başarısız oldu. Eklentinin nulled sürümünü kullanıyorsunuz." " Lütfen aşağıdakini yapın:" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" msgstr "WP Rocket %1$shesabınıza%2$s oturum açın" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" msgstr "Zip dosyasını indir" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" msgstr "Yeniden Yükle" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 #, php-format msgid "" "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." msgstr "" "Eğer bir WP Rocket hesabınız yoksa, lütfen %1$sbir lisans satın alın%2$s." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" "Lisans doğrulama başarısız oldu. Bu kullanıcı veritabanımızda mevcut değil." -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." msgstr "Çözmek için lütfen destek ile iletişime geçin." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 msgid "License validation failed. This user account is blocked." msgstr "Lisans doğrulama başarısız oldu. Bu kullanıcı hesabı engellendi." -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." msgstr "Daha fazla bilgi için lütfen %1$sbu kılavuza%2$s bakın." -#: inc/functions/options.php:572 +#: inc/functions/options.php:574 #, php-format msgid "" "Try clicking %1$sSave Changes%2$s below. If the error persists, follow " @@ -3666,20 +3591,20 @@ msgstr "" "Aşağıda %1$sDeğişiklikleri Kaydet%2$s düğmesine tıklamaya çalışın. Eğer hata" " devam ederse, %3$sbu kılavuzu%4$s takip edin." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 msgid "Your license is not valid." msgstr "Lisansınız geçerli değil." -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." msgstr "Aktif bir %1$sWP Rocket lisansına%2$s sahip olduğunuzdan emin olun." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "Şu anki lisansınızın izin verdiği kadar çok site eklediniz." -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this " @@ -3688,25 +3613,25 @@ msgstr "" "%1$sHesabınızı%2$s yükseltin ya da %3$slisansınızı bu etki alanına " "aktarın%2$s." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 msgid "This website is not allowed." msgstr "Bu web sitesine izin verilmedi." -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." msgstr "Lütfen %1$sdestek ile iletişime geçin%2$s." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 msgid "This license key is not recognized." msgstr "Bu lisans anahtarı tanınmadı." -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "Eğer sorun devam ederse, lütfen %1$sdestek ile iletişime geçin%2$s." -#: inc/functions/options.php:597 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" msgstr "Lisans doğrulama başarısız oldu: %s" @@ -3847,10 +3772,6 @@ msgstr "30 gün" msgid "Forever" msgstr "Sürekli" -#: views/deactivation-intent/form.php:63 -msgid "Cancel" -msgstr "İptal" - #: views/deactivation-intent/form.php:64 msgid "Confirm" msgstr "Onayla" @@ -4009,34 +3930,30 @@ msgid "Remove all cached files" msgstr "Tüm önbelleklenen dosyaları kaldırın" #: views/settings/page-sections/dashboard.php:164 -msgid "Start cache preloading" -msgstr "Önbellek önyüklemesini başlatın" - -#: views/settings/page-sections/dashboard.php:182 -#: views/settings/page-sections/dashboard.php:188 +#: views/settings/page-sections/dashboard.php:170 msgid "Regenerate Critical CSS" msgstr "Önemli CSS’yi yeniden oluştur" -#: views/settings/page-sections/dashboard.php:200 +#: views/settings/page-sections/dashboard.php:182 msgid "Remove Used CSS Cache" msgstr "Kullanılan CSS Önbelleğini Kaldır" -#: views/settings/page-sections/dashboard.php:223 +#: views/settings/page-sections/dashboard.php:205 msgid "Frequently Asked Questions" msgstr "Sıkça Sorulan Sorular" -#: views/settings/page-sections/dashboard.php:237 +#: views/settings/page-sections/dashboard.php:219 msgid "Still cannot find a solution?" msgstr "Hala bir çözüm bulamadınız mı?" -#: views/settings/page-sections/dashboard.php:238 +#: views/settings/page-sections/dashboard.php:220 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" "Bir çağrı gönderin ve arkadaş yanlısı ve bilgili Roketçilerimizden yardım " "alın." -#: views/settings/page-sections/dashboard.php:246 +#: views/settings/page-sections/dashboard.php:228 msgid "Ask support" msgstr "Destek iste" @@ -4174,11 +4091,11 @@ msgstr "" msgid "Reinstall version %s" msgstr "%s sürümünü yeniden yükle" -#: views/settings/page-sections/tools.php:106 +#: views/settings/page-sections/tools.php:108 msgid "Debug mode" msgstr "Hata ayıklama kipi" -#: views/settings/page-sections/tools.php:111 +#: views/settings/page-sections/tools.php:113 msgid "Create a debug log file." msgstr "Hata ayıklama günlük dosyası oluşturun." diff --git a/languages/rocket.pot b/languages/rocket.pot index 4e79cb47f6..61f773c07d 100644 --- a/languages/rocket.pot +++ b/languages/rocket.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: WP Rocket 3.11\n" "Report-Msgid-Bugs-To: http://wp-rocket.me/\n" -"POT-Creation-Date: 2022-06-23 14:06-0400\n" +"POT-Creation-Date: 2022-08-16 15:13-0400\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -41,71 +41,35 @@ msgid "" "Your site is hosted on %s, we have enabled Varnish auto-purge for compatibility." msgstr "" -#: inc/3rd-party/plugins/jetpack.php:86 -msgid "Jetpack XML Sitemaps" -msgstr "" - -#: inc/3rd-party/plugins/jetpack.php:88 -msgid "Preload the sitemap from the Jetpack plugin" -msgstr "" - -#: inc/3rd-party/plugins/jetpack.php:96 -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:118 -#: inc/3rd-party/plugins/seo/rank-math-seo.php:34 -#: inc/3rd-party/plugins/seo/seopress.php:86 -#: inc/3rd-party/plugins/seo/the-seo-framework.php:144 -#: inc/ThirdParty/Plugins/SEO/Yoast.php:62 inc/deprecated/3.11.php:83 -#, php-format -msgid "" -"We automatically detected the sitemap generated by the %s plugin. You can check " -"the option to preload it." -msgstr "" - -#: inc/3rd-party/plugins/seo/all-in-one-seo-pack.php:116 -msgid "All in One SEO XML sitemap" -msgstr "" - -#: inc/3rd-party/plugins/seo/rank-math-seo.php:32 -msgid "Rank Math XML sitemap" -msgstr "" - -#: inc/3rd-party/plugins/seo/seopress.php:84 -msgid "SEOPress XML sitemap" -msgstr "" - -#: inc/3rd-party/plugins/seo/the-seo-framework.php:142 -msgid "The SEO Framework XML sitemap" -msgstr "" - #: inc/Addon/Cloudflare/APIClient.php:309 msgid "Cloudflare did not provide any reply. Please try again later." msgstr "" -#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:122 -#: inc/deprecated/3.5.php:179 +#: inc/Addon/Cloudflare/APIClient.php:318 inc/deprecated/3.5.php:112 +#: inc/deprecated/3.5.php:169 msgid "Incorrect Cloudflare email address or API key." msgstr "" #: inc/Addon/Cloudflare/APIClient.php:322 inc/Addon/Cloudflare/APIClient.php:335 #: inc/Addon/Cloudflare/Cloudflare.php:112 inc/Addon/Cloudflare/Cloudflare.php:144 #: inc/classes/subscriber/Tools/class-detect-missing-tags-subscriber.php:157 -#: inc/deprecated/3.5.php:102 inc/deprecated/3.5.php:126 inc/deprecated/3.5.php:139 -#: inc/deprecated/3.5.php:167 inc/deprecated/3.5.php:183 +#: inc/deprecated/3.5.php:92 inc/deprecated/3.5.php:116 inc/deprecated/3.5.php:129 +#: inc/deprecated/3.5.php:157 inc/deprecated/3.5.php:173 #, php-format msgid "Read the %1$sdocumentation%2$s for further guidance." msgstr "" #: inc/Addon/Cloudflare/APIClient.php:324 inc/Addon/Cloudflare/APIClient.php:337 #: inc/Addon/Cloudflare/Cloudflare.php:101 inc/Addon/Cloudflare/Cloudflare.php:114 -#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:91 -#: inc/deprecated/3.5.php:104 inc/deprecated/3.5.php:128 inc/deprecated/3.5.php:141 -#: inc/deprecated/3.5.php:169 inc/deprecated/3.5.php:185 inc/deprecated/3.5.php:218 +#: inc/Addon/Cloudflare/Cloudflare.php:146 inc/deprecated/3.5.php:81 +#: inc/deprecated/3.5.php:94 inc/deprecated/3.5.php:118 inc/deprecated/3.5.php:131 +#: inc/deprecated/3.5.php:159 inc/deprecated/3.5.php:175 inc/deprecated/3.5.php:208 msgid "" "https://docs.wp-rocket.me/article/18-using-wp-rocket-with-cloudflare/?" "utm_source=wp_plugin&utm_medium=wp_rocket#add-on" msgstr "" -#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:135 +#: inc/Addon/Cloudflare/APIClient.php:331 inc/deprecated/3.5.php:125 msgid "Incorrect Cloudflare Zone ID." msgstr "" @@ -116,20 +80,20 @@ msgid "" "further guidance." msgstr "" -#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:98 +#: inc/Addon/Cloudflare/Cloudflare.php:108 inc/deprecated/3.5.php:88 msgid "Missing Cloudflare Zone ID." msgstr "" -#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:163 +#: inc/Addon/Cloudflare/Cloudflare.php:140 inc/deprecated/3.5.php:153 msgid "It looks like your domain is not set up on Cloudflare." msgstr "" -#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:597 +#: inc/Addon/Cloudflare/Subscriber.php:215 inc/deprecated/3.5.php:587 #, php-format msgid "WP Rocket: %s" msgstr "" -#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:602 +#: inc/Addon/Cloudflare/Subscriber.php:220 inc/deprecated/3.5.php:592 msgid "WP Rocket: Cloudflare cache successfully purged." msgstr "" @@ -242,27 +206,27 @@ msgstr[0] "" msgstr[1] "" #: inc/Engine/Admin/Database/Optimization.php:30 -#: inc/Engine/Admin/Settings/Page.php:1442 +#: inc/Engine/Admin/Settings/Page.php:1399 msgid "Revisions" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:31 -#: inc/Engine/Admin/Settings/Page.php:1452 +#: inc/Engine/Admin/Settings/Page.php:1409 msgid "Auto Drafts" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:32 -#: inc/Engine/Admin/Settings/Page.php:1462 +#: inc/Engine/Admin/Settings/Page.php:1419 msgid "Trashed Posts" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:33 -#: inc/Engine/Admin/Settings/Page.php:1472 +#: inc/Engine/Admin/Settings/Page.php:1429 msgid "Spam Comments" msgstr "" #: inc/Engine/Admin/Database/Optimization.php:34 -#: inc/Engine/Admin/Settings/Page.php:1482 +#: inc/Engine/Admin/Settings/Page.php:1439 msgid "Trashed Comments" msgstr "" @@ -315,80 +279,80 @@ msgstr "" msgid "Unavailable" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:341 inc/deprecated/deprecated.php:1789 +#: inc/Engine/Admin/Settings/Page.php:342 inc/deprecated/deprecated.php:1789 #: views/settings/page-sections/dashboard.php:80 msgid "License" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:358 +#: inc/Engine/Admin/Settings/Page.php:359 msgid "API key" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:373 +#: inc/Engine/Admin/Settings/Page.php:374 msgid "Email address" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:399 +#: inc/Engine/Admin/Settings/Page.php:400 msgid "Dashboard" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:400 +#: inc/Engine/Admin/Settings/Page.php:401 msgid "Get help, account info" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:409 +#: inc/Engine/Admin/Settings/Page.php:410 msgid "My Status" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:419 views/settings/page.php:75 +#: inc/Engine/Admin/Settings/Page.php:420 views/settings/page.php:75 msgid "Rocket Analytics" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:421 +#: inc/Engine/Admin/Settings/Page.php:422 #, php-format msgid "" "I agree to share anonymous data with the development team to help improve WP " "Rocket. %1$sWhat info will we collect?%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:445 inc/Engine/Cache/WPCache.php:354 +#: inc/Engine/Admin/Settings/Page.php:446 inc/Engine/Cache/WPCache.php:354 msgid "Cache" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:446 +#: inc/Engine/Admin/Settings/Page.php:447 msgid "Basic cache options" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:453 +#: inc/Engine/Admin/Settings/Page.php:454 msgid "Mobile Cache" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:455 +#: inc/Engine/Admin/Settings/Page.php:456 msgid "Speed up your site for mobile visitors." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:460 +#: inc/Engine/Admin/Settings/Page.php:461 msgid "" "We detected you use a plugin that requires a separate cache for mobile, and " "automatically enabled this option for compatibility." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:464 +#: inc/Engine/Admin/Settings/Page.php:465 msgid "User Cache" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:467 +#: inc/Engine/Admin/Settings/Page.php:468 #, php-format msgid "" "%1$sUser cache%2$s is great when you have user-specific or restricted content on " "your website." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:475 +#: inc/Engine/Admin/Settings/Page.php:476 msgid "Cache Lifespan" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:478 +#: inc/Engine/Admin/Settings/Page.php:479 #, php-format msgid "" "Cache files older than the specified lifespan will be deleted.
Enable " @@ -396,19 +360,19 @@ msgid "" "expiration." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:492 +#: inc/Engine/Admin/Settings/Page.php:493 msgid "Enable caching for logged-in WordPress users" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:500 +#: inc/Engine/Admin/Settings/Page.php:501 msgid "Enable caching for mobile devices" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:515 +#: inc/Engine/Admin/Settings/Page.php:516 msgid "Separate cache files for mobile devices" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:517 +#: inc/Engine/Admin/Settings/Page.php:518 #, php-format msgid "" "Most modern themes are responsive and should work without a separate cache. " @@ -416,53 +380,53 @@ msgid "" "%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:533 +#: inc/Engine/Admin/Settings/Page.php:534 msgid "Specify time after which the global cache is cleared
(0 = unlimited )" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:535 +#: inc/Engine/Admin/Settings/Page.php:536 #, php-format msgid "" "Reduce lifespan to 10 hours or less if you notice issues that seem to appear " "periodically. %1$sWhy?%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:541 +#: inc/Engine/Admin/Settings/Page.php:542 #: inc/Engine/License/views/promo-banner.php:30 #: inc/Engine/License/views/renewal-soon-banner.php:13 msgid "Hours" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:542 +#: inc/Engine/Admin/Settings/Page.php:543 #: inc/Engine/License/views/promo-banner.php:29 #: inc/Engine/License/views/renewal-soon-banner.php:12 msgid "Days" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:577 +#: inc/Engine/Admin/Settings/Page.php:578 msgid "File Optimization" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:578 +#: inc/Engine/Admin/Settings/Page.php:579 msgid "Optimize CSS & JS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:585 +#: inc/Engine/Admin/Settings/Page.php:586 msgid "CSS Files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:592 inc/Engine/Admin/Settings/Page.php:602 +#: inc/Engine/Admin/Settings/Page.php:593 inc/Engine/Admin/Settings/Page.php:603 #, php-format msgid "" "%1$s Minification is currently activated in Autoptimize. If you " "want to use %2$s’s minification, disable those options in Autoptimize." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:595 +#: inc/Engine/Admin/Settings/Page.php:596 msgid "JavaScript Files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:609 +#: inc/Engine/Admin/Settings/Page.php:610 #, php-format msgid "" "If you have problems after activating this option, copy and paste the default " @@ -470,7 +434,7 @@ msgid "" "please check our %2$sdocumentation%3$s for a list of compatibility exclusions." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:616 +#: inc/Engine/Admin/Settings/Page.php:617 #, php-format msgid "" "Internal scripts are excluded by default to prevent issues. Remove them to take " @@ -478,139 +442,130 @@ msgid "" "exclusions, found %1$shere%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:625 +#: inc/Engine/Admin/Settings/Page.php:626 msgid "Minify CSS files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:626 +#: inc/Engine/Admin/Settings/Page.php:627 msgid "Minify CSS removes whitespace and comments to reduce the file size." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:639 inc/Engine/Admin/Settings/Page.php:663 -#: inc/Engine/Admin/Settings/Page.php:793 inc/Engine/Admin/Settings/Page.php:817 +#: inc/Engine/Admin/Settings/Page.php:640 inc/Engine/Admin/Settings/Page.php:664 +#: inc/Engine/Admin/Settings/Page.php:728 inc/Engine/Admin/Settings/Page.php:794 +#: inc/Engine/Admin/Settings/Page.php:818 msgid "This could break things!" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:640 inc/Engine/Admin/Settings/Page.php:664 -#: inc/Engine/Admin/Settings/Page.php:794 inc/Engine/Admin/Settings/Page.php:818 +#: inc/Engine/Admin/Settings/Page.php:641 inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:729 inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:819 msgid "" "If you notice any errors on your website after having activated this setting, " "just deactivate it again, and your site will be back to normal." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:641 +#: inc/Engine/Admin/Settings/Page.php:642 msgid "Activate minify CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:646 +#: inc/Engine/Admin/Settings/Page.php:647 msgid "Combine CSS files (Enable Minify CSS files to select)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:648 +#: inc/Engine/Admin/Settings/Page.php:649 #, php-format msgid "" "Combine CSS merges all your files into 1, reducing HTTP requests. Not " "recommended if your site uses HTTP/2. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:649 +#: inc/Engine/Admin/Settings/Page.php:650 msgid "" "For compatibility and best results, this option is disabled when Remove unused " "CSS is enabled." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:665 +#: inc/Engine/Admin/Settings/Page.php:666 msgid "Activate combine CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:670 inc/admin/options.php:122 +#: inc/Engine/Admin/Settings/Page.php:671 inc/admin/options.php:122 msgid "Excluded CSS Files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:671 +#: inc/Engine/Admin/Settings/Page.php:672 msgid "" "Specify URLs of CSS files to be excluded from minification and concatenation " "(one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:672 +#: inc/Engine/Admin/Settings/Page.php:673 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).css wildcards to exclude all CSS files located at a " "specific path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:674 +#: inc/Engine/Admin/Settings/Page.php:675 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external CSS. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:687 inc/Engine/Admin/Settings/Page.php:709 +#: inc/Engine/Admin/Settings/Page.php:688 inc/Engine/Admin/Settings/Page.php:710 msgid "Optimize CSS delivery" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only one " "method can be selected. Remove Unused CSS is recommended for optimal " "performance, but limited only to the users with active license." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:692 +#: inc/Engine/Admin/Settings/Page.php:693 msgid "" "Optimize CSS delivery eliminates render-blocking CSS on your website. Only one " "method can be selected. Remove Unused CSS is recommended for optimal performance." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:702 +#: inc/Engine/Admin/Settings/Page.php:703 #, php-format msgid "" "Optimize CSS Delivery features are disabled on local environments. %1$sLearn more" "%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:722 -msgid "Remove Unused CSS (Beta)" +#: inc/Engine/Admin/Settings/Page.php:723 inc/admin/ui/meta-boxes.php:77 +msgid "Remove Unused CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:725 +#: inc/Engine/Admin/Settings/Page.php:726 #, php-format msgid "" "Removes unused CSS per page and helps to reduce page size and HTTP requests. " "Recommended for best performance. Test thoroughly! %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:727 -msgid "We’re still working on it!" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:728 -msgid "" -"This is a beta feature. We’re providing you early access but some changes might " -"be added later on. If you notice any errors on your website, simply deactivate " -"the feature." -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:729 +#: inc/Engine/Admin/Settings/Page.php:730 msgid "Activate Remove Unused CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:735 +#: inc/Engine/Admin/Settings/Page.php:736 msgid "CSS safelist" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:736 +#: inc/Engine/Admin/Settings/Page.php:737 msgid "" "Specify CSS filenames, IDs or classes that should not be removed (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:751 inc/admin/ui/meta-boxes.php:80 +#: inc/Engine/Admin/Settings/Page.php:752 inc/admin/ui/meta-boxes.php:80 msgid "Load CSS asynchronously" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:754 +#: inc/Engine/Admin/Settings/Page.php:755 #, php-format msgctxt "WP Critical CSS compatibility" msgid "" @@ -618,40 +573,40 @@ msgid "" "use WP Rocket’s load CSS asynchronously option, disable the %1$s plugin." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:756 +#: inc/Engine/Admin/Settings/Page.php:757 #, php-format msgid "Generates critical path CSS and loads CSS asynchronously. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:762 +#: inc/Engine/Admin/Settings/Page.php:763 msgid "Fallback critical CSS" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:764 +#: inc/Engine/Admin/Settings/Page.php:765 #, php-format msgid "" "Provides a fallback if auto-generated critical path CSS is incomplete. %1$sMore " "info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:779 +#: inc/Engine/Admin/Settings/Page.php:780 msgid "Minify JavaScript files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:780 +#: inc/Engine/Admin/Settings/Page.php:781 msgid "Minify JavaScript removes whitespace and comments to reduce the file size." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:795 +#: inc/Engine/Admin/Settings/Page.php:796 msgid "Activate minify JavaScript" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:800 +#: inc/Engine/Admin/Settings/Page.php:801 msgid "" "Combine JavaScript files (Enable Minify JavaScript files to select)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:802 +#: inc/Engine/Admin/Settings/Page.php:803 #, php-format msgid "" "Combine JavaScript files combines your site’s internal, 3rd party and inline JS " @@ -659,104 +614,104 @@ msgid "" "%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:803 +#: inc/Engine/Admin/Settings/Page.php:804 msgid "" "For compatibility and best results, this option is disabled when delay " "javascript execution is enabled." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:819 +#: inc/Engine/Admin/Settings/Page.php:820 msgid "Activate combine JavaScript" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:824 inc/admin/options.php:123 +#: inc/Engine/Admin/Settings/Page.php:825 inc/admin/options.php:123 msgid "Excluded Inline JavaScript" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:826 +#: inc/Engine/Admin/Settings/Page.php:827 #, php-format msgid "" "Specify patterns of inline JavaScript to be excluded from concatenation (one per " "line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:842 inc/Engine/Admin/Settings/Page.php:875 -#: inc/Engine/Admin/Settings/Page.php:904 inc/admin/options.php:124 +#: inc/Engine/Admin/Settings/Page.php:843 inc/Engine/Admin/Settings/Page.php:876 +#: inc/Engine/Admin/Settings/Page.php:905 inc/admin/options.php:124 msgid "Excluded JavaScript Files" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:843 +#: inc/Engine/Admin/Settings/Page.php:844 msgid "" "Specify URLs of JavaScript files to be excluded from minification and " "concatenation (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:844 +#: inc/Engine/Admin/Settings/Page.php:845 msgid "" "Internal: The domain part of the URL will be stripped " "automatically. Use (.*).js wildcards to exclude all JS files located at a " "specific path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:846 +#: inc/Engine/Admin/Settings/Page.php:847 #, php-format msgid "" "3rd Party: Use either the full URL path or only the domain " "name, to exclude external JS. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:862 +#: inc/Engine/Admin/Settings/Page.php:863 msgid "Load JavaScript deferred" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:864 +#: inc/Engine/Admin/Settings/Page.php:865 #, php-format msgid "" "Load JavaScript deferred eliminates render-blocking JS on your site and can " "improve load time. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:877 +#: inc/Engine/Admin/Settings/Page.php:878 #, php-format msgid "" "Specify URLs or keywords of JavaScript files to be excluded from defer (one per " "line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:893 inc/admin/ui/meta-boxes.php:82 +#: inc/Engine/Admin/Settings/Page.php:894 inc/admin/ui/meta-boxes.php:82 msgid "Delay JavaScript execution" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:895 +#: inc/Engine/Admin/Settings/Page.php:896 #, php-format msgid "" "Improves performance by delaying the loading of JavaScript files until user " "interaction (e.g. scroll, click). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:905 +#: inc/Engine/Admin/Settings/Page.php:906 msgid "" "Specify URLs or keywords that can identify inline or JavaScript files to be " "excluded from delaying execution (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:936 +#: inc/Engine/Admin/Settings/Page.php:937 msgid "Media" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:937 +#: inc/Engine/Admin/Settings/Page.php:938 msgid "LazyLoad, image dimensions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:946 +#: inc/Engine/Admin/Settings/Page.php:947 msgid "Autoptimize" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:991 +#: inc/Engine/Admin/Settings/Page.php:992 msgid "LazyLoad" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:994 +#: inc/Engine/Admin/Settings/Page.php:995 #, php-format msgid "" "It can improve actual and perceived loading time as images, iframes, and videos " @@ -764,426 +719,412 @@ msgid "" "the number of HTTP requests. %1$sMore Info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1001 +#: inc/Engine/Admin/Settings/Page.php:1002 #, php-format msgid "" "LazyLoad is currently activated in %2$s. If you want to use WP Rocket’s " "LazyLoad, disable this option in %2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1004 +#: inc/Engine/Admin/Settings/Page.php:1005 msgid "Image Dimensions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1007 +#: inc/Engine/Admin/Settings/Page.php:1008 #, php-format msgid "" "Add missing width and height attributes to images. Helps prevent layout shifts " "and improve the reading experience for your visitors. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1026 +#: inc/Engine/Admin/Settings/Page.php:1027 msgid "Enable for images" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1038 +#: inc/Engine/Admin/Settings/Page.php:1039 #, php-format msgid "" "LazyLoad for images is currently activated in %2$s. If you want to use %1$s’s " "LazyLoad, disable this option in %2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1046 +#: inc/Engine/Admin/Settings/Page.php:1047 msgid "Enable for iframes and videos" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1061 +#: inc/Engine/Admin/Settings/Page.php:1062 msgid "Replace YouTube iframe with preview image" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 #, php-format msgid "Replace YouTube iframe with preview image is not compatible with %2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1063 +#: inc/Engine/Admin/Settings/Page.php:1064 msgid "" "This can significantly improve your loading time if you have a lot of YouTube " "videos on a page." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1078 +#: inc/Engine/Admin/Settings/Page.php:1079 msgid "Excluded images or iframes" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1080 +#: inc/Engine/Admin/Settings/Page.php:1081 #, php-format msgid "" "Specify keywords (e.g. image filename, CSS class, domain) from the image or " "iframe code to be excluded (one per line). %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1088 +#: inc/Engine/Admin/Settings/Page.php:1089 msgid "Add missing image dimensions" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1107 inc/deprecated/deprecated.php:1776 +#: inc/Engine/Admin/Settings/Page.php:1108 inc/deprecated/deprecated.php:1776 msgid "Preload" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1108 +#: inc/Engine/Admin/Settings/Page.php:1109 msgid "Generate cache files, preload fonts" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1119 +#: inc/Engine/Admin/Settings/Page.php:1120 msgid "Preload Cache" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1122 -#, php-format +#: inc/Engine/Admin/Settings/Page.php:1123 msgid "" -"When you enable preloading WP Rocket will generate the cache starting with the " -"links on your homepage followed by the sitemaps you specify. Preloading is " -"automatically triggered when you add or update content and can also be manually " -"triggered from the admin bar or from the %1$sWP Rocket Dashboard%2$s." +"When you enable preloading WP Rocket will automatically detect your sitemaps and " +"save all URLs to the database. The plugin will make sure that your cache is " +"always preloaded." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1130 +#: inc/Engine/Admin/Settings/Page.php:1131 msgid "Preload Links" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1133 +#: inc/Engine/Admin/Settings/Page.php:1134 #, php-format msgid "" "Link preloading improves the perceived load time by downloading a page when a " "user hovers over the link. %1$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1141 +#: inc/Engine/Admin/Settings/Page.php:1142 msgid "Prefetch DNS Requests" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1143 +#: inc/Engine/Admin/Settings/Page.php:1144 msgid "" "DNS prefetching can make external files load faster, especially on mobile " "networks" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1148 +#: inc/Engine/Admin/Settings/Page.php:1149 msgid "Preload Fonts" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1151 +#: inc/Engine/Admin/Settings/Page.php:1152 #, php-format msgid "" "Improves performance by helping browsers discover fonts in CSS files. %1$sMore " "info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1165 +#: inc/Engine/Admin/Settings/Page.php:1166 msgid "Activate Preloading" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1184 -msgid "Activate sitemap-based cache preloading" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:1203 -msgid "Sitemaps for preloading" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:1207 -msgid "Specify XML sitemap(s) to be used for preloading" -msgstr "" - -#: inc/Engine/Admin/Settings/Page.php:1217 +#: inc/Engine/Admin/Settings/Page.php:1174 msgid "URLs to prefetch" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1218 +#: inc/Engine/Admin/Settings/Page.php:1175 msgid "" "Specify external hosts to be prefetched (no http:, one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1227 +#: inc/Engine/Admin/Settings/Page.php:1184 msgid "Fonts to preload" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1228 +#: inc/Engine/Admin/Settings/Page.php:1185 msgid "" "Specify urls of the font files to be preloaded (one per line). Fonts must be " "hosted on your own domain, or the domain you have specified on the CDN tab." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1229 +#: inc/Engine/Admin/Settings/Page.php:1186 msgid "" "The domain part of the URL will be stripped automatically.
Allowed font " "extensions: otf, ttf, svg, woff, woff2." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1238 +#: inc/Engine/Admin/Settings/Page.php:1195 msgid "Enable link preloading" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1257 +#: inc/Engine/Admin/Settings/Page.php:1214 msgid "Advanced Rules" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1258 +#: inc/Engine/Admin/Settings/Page.php:1215 msgid "Fine-tune cache rules" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1269 +#: inc/Engine/Admin/Settings/Page.php:1226 msgid "" "Sensitive pages like custom login/logout URLs should be excluded from cache." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1272 +#: inc/Engine/Admin/Settings/Page.php:1229 msgctxt "plugin name" msgid "WooCommerce" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1274 +#: inc/Engine/Admin/Settings/Page.php:1231 msgctxt "plugin name" msgid "Easy Digital Downloads" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1276 +#: inc/Engine/Admin/Settings/Page.php:1233 msgctxt "plugin name" msgid "iThemes Exchange" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1278 +#: inc/Engine/Admin/Settings/Page.php:1235 msgctxt "plugin name" msgid "Jigoshop" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1280 +#: inc/Engine/Admin/Settings/Page.php:1237 msgctxt "plugin name" msgid "WP-Shop" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1286 +#: inc/Engine/Admin/Settings/Page.php:1243 #, php-format msgid "" "
Cart, checkout and \"my account\" pages set in %1$s%2$s%3$s " "will be detected and never cached by default." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1296 inc/admin/options.php:127 +#: inc/Engine/Admin/Settings/Page.php:1253 inc/admin/options.php:127 msgid "Never Cache URL(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1304 +#: inc/Engine/Admin/Settings/Page.php:1261 msgid "Never Cache Cookies" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1310 inc/admin/options.php:128 +#: inc/Engine/Admin/Settings/Page.php:1267 inc/admin/options.php:128 msgid "Never Cache User Agent(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1316 inc/admin/options.php:129 +#: inc/Engine/Admin/Settings/Page.php:1273 inc/admin/options.php:129 msgid "Always Purge URL(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1322 +#: inc/Engine/Admin/Settings/Page.php:1279 msgid "Cache Query String(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1325 +#: inc/Engine/Admin/Settings/Page.php:1282 #, php-format msgid "" "%1$sCache for query strings%2$s enables you to force caching for specific GET " "parameters." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1336 +#: inc/Engine/Admin/Settings/Page.php:1293 msgid "Specify URLs of pages or posts that should never be cached (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1337 inc/Engine/Admin/Settings/Page.php:1365 +#: inc/Engine/Admin/Settings/Page.php:1294 inc/Engine/Admin/Settings/Page.php:1322 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) wildcards " "to address multiple URLs under a given path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1346 +#: inc/Engine/Admin/Settings/Page.php:1303 msgid "" "Specify full or partial IDs of cookies that, when set in the visitor's browser, " "should prevent a page from getting cached (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1354 +#: inc/Engine/Admin/Settings/Page.php:1311 msgid "" "Specify user agent strings that should never see cached pages (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1355 +#: inc/Engine/Admin/Settings/Page.php:1312 msgid "Use (.*) wildcards to detect parts of UA strings." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1364 +#: inc/Engine/Admin/Settings/Page.php:1321 msgid "" "Specify URLs you always want purged from cache whenever you update any post or " "page (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1373 +#: inc/Engine/Admin/Settings/Page.php:1330 msgid "Specify query strings for caching (one per line)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1398 inc/deprecated/deprecated.php:1775 +#: inc/Engine/Admin/Settings/Page.php:1355 inc/deprecated/deprecated.php:1775 msgid "Database" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1399 +#: inc/Engine/Admin/Settings/Page.php:1356 msgid "Optimize, reduce bloat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1406 +#: inc/Engine/Admin/Settings/Page.php:1363 msgid "Post Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1408 +#: inc/Engine/Admin/Settings/Page.php:1365 msgid "" "Post revisions and drafts will be permanently deleted. Do not use this option if " "you need to retain revisions or drafts." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1413 +#: inc/Engine/Admin/Settings/Page.php:1370 msgid "Comments Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1415 +#: inc/Engine/Admin/Settings/Page.php:1372 msgid "Spam and trashed comments will be permanently deleted." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1419 +#: inc/Engine/Admin/Settings/Page.php:1376 msgid "Transients Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1421 +#: inc/Engine/Admin/Settings/Page.php:1378 msgid "" "Transients are temporary options; they are safe to remove. They will be " "automatically regenerated as your plugins require them." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1425 +#: inc/Engine/Admin/Settings/Page.php:1382 msgid "Database Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1427 +#: inc/Engine/Admin/Settings/Page.php:1384 msgid "Reduces overhead of database tables" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1431 +#: inc/Engine/Admin/Settings/Page.php:1388 msgid "Automatic Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1444 +#: inc/Engine/Admin/Settings/Page.php:1401 #, php-format msgid "%s revision in your database." msgid_plural "%s revisions in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1454 +#: inc/Engine/Admin/Settings/Page.php:1411 #, php-format msgid "%s draft in your database." msgid_plural "%s drafts in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1464 +#: inc/Engine/Admin/Settings/Page.php:1421 #, php-format msgid "%s trashed post in your database." msgid_plural "%s trashed posts in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1474 +#: inc/Engine/Admin/Settings/Page.php:1431 #, php-format msgid "%s spam comment in your database." msgid_plural "%s spam comments in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1484 +#: inc/Engine/Admin/Settings/Page.php:1441 #, php-format msgid "%s trashed comment in your database." msgid_plural "%s trashed comments in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1492 +#: inc/Engine/Admin/Settings/Page.php:1449 msgid "All transients" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1494 +#: inc/Engine/Admin/Settings/Page.php:1451 #, php-format msgid "%s transient in your database." msgid_plural "%s transients in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1502 +#: inc/Engine/Admin/Settings/Page.php:1459 msgid "Optimize Tables" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1504 +#: inc/Engine/Admin/Settings/Page.php:1461 #, php-format msgid "%s table to optimize in your database." msgid_plural "%s tables to optimize in your database." msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1515 +#: inc/Engine/Admin/Settings/Page.php:1472 msgid "Schedule Automatic Cleanup" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1527 +#: inc/Engine/Admin/Settings/Page.php:1484 msgid "Frequency" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1535 +#: inc/Engine/Admin/Settings/Page.php:1492 msgid "Daily" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1536 +#: inc/Engine/Admin/Settings/Page.php:1493 msgid "Weekly" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1537 +#: inc/Engine/Admin/Settings/Page.php:1494 msgid "Monthly" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1553 inc/Engine/Admin/Settings/Page.php:1564 +#: inc/Engine/Admin/Settings/Page.php:1510 inc/Engine/Admin/Settings/Page.php:1521 #: inc/admin/ui/meta-boxes.php:79 inc/deprecated/deprecated.php:1773 msgid "CDN" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1554 +#: inc/Engine/Admin/Settings/Page.php:1511 msgid "Integrate your CDN" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1566 +#: inc/Engine/Admin/Settings/Page.php:1523 msgid "" "All URLs of static files (CSS, JS, images) will be rewritten to the CNAME(s) you " "provide." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1568 +#: inc/Engine/Admin/Settings/Page.php:1525 #, php-format msgid "" "Not required for services like Cloudflare and Sucuri. Please see our available " "%1$sAdd-ons%2$s." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1583 inc/admin/options.php:130 +#: inc/Engine/Admin/Settings/Page.php:1540 inc/admin/options.php:130 msgid "Exclude files from CDN" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1609 +#: inc/Engine/Admin/Settings/Page.php:1566 msgid "" "%1$s%2$l Add-on%3$s is currently enabled. Configuration of the CDN settings is " "not required for %2$l to work on your site." @@ -1193,151 +1134,151 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: inc/Engine/Admin/Settings/Page.php:1634 +#: inc/Engine/Admin/Settings/Page.php:1591 msgid "Enable Content Delivery Network" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1643 +#: inc/Engine/Admin/Settings/Page.php:1600 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:150 msgid "CDN CNAME(s)" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1644 +#: inc/Engine/Admin/Settings/Page.php:1601 #: inc/Engine/CDN/RocketCDN/AdminPageSubscriber.php:151 msgid "Specify the CNAME(s) below" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1651 +#: inc/Engine/Admin/Settings/Page.php:1608 msgid "Specify URL(s) of files that should not get served via CDN (one per line)." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1652 +#: inc/Engine/Admin/Settings/Page.php:1609 msgid "" "The domain part of the URL will be stripped automatically.
Use (.*) wildcards " "to exclude all files of a given file type located at a specific path." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1675 inc/Engine/Admin/Settings/Page.php:1683 +#: inc/Engine/Admin/Settings/Page.php:1632 inc/Engine/Admin/Settings/Page.php:1640 msgid "Heartbeat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1676 +#: inc/Engine/Admin/Settings/Page.php:1633 msgid "Control WordPress Heartbeat API" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1684 +#: inc/Engine/Admin/Settings/Page.php:1641 msgid "" "Reducing or disabling the Heartbeat API’s activity can help save some of your " "server’s resources." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1690 +#: inc/Engine/Admin/Settings/Page.php:1647 msgid "Reduce or disable Heartbeat activity" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "" "Reducing activity will change Heartbeat frequency from one hit each minute to " "one hit every 2 minutes." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1691 +#: inc/Engine/Admin/Settings/Page.php:1648 msgid "Disabling Heartbeat entirely may break plugins and themes using this API." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1705 +#: inc/Engine/Admin/Settings/Page.php:1662 msgid "Do not limit" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1706 +#: inc/Engine/Admin/Settings/Page.php:1663 msgid "Reduce activity" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1707 +#: inc/Engine/Admin/Settings/Page.php:1664 msgid "Disable" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1715 +#: inc/Engine/Admin/Settings/Page.php:1672 msgid "Control Heartbeat" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1724 +#: inc/Engine/Admin/Settings/Page.php:1681 msgid "Behavior in backend" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1731 +#: inc/Engine/Admin/Settings/Page.php:1688 msgid "Behavior in post editor" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1737 +#: inc/Engine/Admin/Settings/Page.php:1694 msgid "Behavior in frontend" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1754 +#: inc/Engine/Admin/Settings/Page.php:1711 #: views/settings/page-sections/tutorials.php:39 msgid "Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1755 +#: inc/Engine/Admin/Settings/Page.php:1712 msgid "Add more features" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1762 +#: inc/Engine/Admin/Settings/Page.php:1719 msgid "One-click Rocket Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1763 +#: inc/Engine/Admin/Settings/Page.php:1720 msgid "" "One-Click Add-ons are features extending available options without configuration " "needed. Switch the option \"on\" to enable from this screen." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1773 +#: inc/Engine/Admin/Settings/Page.php:1730 msgid "Rocket Add-ons" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1774 +#: inc/Engine/Admin/Settings/Page.php:1731 msgid "Rocket Add-ons are complementary features extending available options." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1785 inc/Engine/Admin/Settings/Page.php:1937 +#: inc/Engine/Admin/Settings/Page.php:1742 inc/Engine/Admin/Settings/Page.php:1894 msgid "Cloudflare" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1791 +#: inc/Engine/Admin/Settings/Page.php:1748 msgid "Integrate your Cloudflare account with this add-on." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1792 +#: inc/Engine/Admin/Settings/Page.php:1749 msgid "" "Provide your account email, global API key, and domain to use options such as " "clearing the Cloudflare cache and enabling optimal settings with WP Rocket." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1826 +#: inc/Engine/Admin/Settings/Page.php:1783 msgid "Varnish" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1832 +#: inc/Engine/Admin/Settings/Page.php:1789 msgid "If Varnish runs on your server, you must activate this add-on." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1834 +#: inc/Engine/Admin/Settings/Page.php:1791 #, php-format msgid "" "Varnish cache will be purged each time WP Rocket clears its cache to ensure " "content is always up-to-date.
%1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1869 +#: inc/Engine/Admin/Settings/Page.php:1826 msgid "WebP Compatibility" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1875 +#: inc/Engine/Admin/Settings/Page.php:1832 msgid "Improve browser compatibility for WebP images." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1879 +#: inc/Engine/Admin/Settings/Page.php:1836 #, php-format msgid "" "Enable this option if you would like WP Rocket to serve WebP images to " @@ -1345,94 +1286,94 @@ msgid "" "you. To create WebP images we recommend %1$sImagify%2$s. %3$sMore info%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1899 +#: inc/Engine/Admin/Settings/Page.php:1856 msgid "Clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1902 +#: inc/Engine/Admin/Settings/Page.php:1859 msgid "" "Provide your API key to clear the Sucuri cache when WP Rocket’s cache is cleared." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1910 inc/Engine/Admin/Settings/Page.php:2054 +#: inc/Engine/Admin/Settings/Page.php:1867 inc/Engine/Admin/Settings/Page.php:2011 msgid "Sucuri" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1916 +#: inc/Engine/Admin/Settings/Page.php:1873 msgid "Synchronize Sucuri cache with this add-on." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1954 +#: inc/Engine/Admin/Settings/Page.php:1911 msgid "Cloudflare credentials" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1963 +#: inc/Engine/Admin/Settings/Page.php:1920 msgid "Cloudflare settings" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1977 +#: inc/Engine/Admin/Settings/Page.php:1934 msgctxt "Cloudflare" msgid "Global API key:" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1978 +#: inc/Engine/Admin/Settings/Page.php:1935 msgctxt "Cloudflare" msgid "Find your API key" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1990 +#: inc/Engine/Admin/Settings/Page.php:1947 msgctxt "Cloudflare" msgid "Account email" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:1999 +#: inc/Engine/Admin/Settings/Page.php:1956 msgctxt "Cloudflare" msgid "Zone ID" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2009 +#: inc/Engine/Admin/Settings/Page.php:1966 msgid "Development mode" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2011 +#: inc/Engine/Admin/Settings/Page.php:1968 #, php-format msgid "" "Temporarily activate development mode on your website. This setting will " "automatically turn off after 3 hours. %1$sLearn more%2$s" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2019 +#: inc/Engine/Admin/Settings/Page.php:1976 msgid "Optimal settings" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2020 +#: inc/Engine/Admin/Settings/Page.php:1977 msgid "" "Automatically enhances your Cloudflare configuration for speed, performance " "grade and compatibility." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2028 +#: inc/Engine/Admin/Settings/Page.php:1985 msgid "Relative protocol" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2029 +#: inc/Engine/Admin/Settings/Page.php:1986 msgid "" "Should only be used with Cloudflare's flexible SSL feature. URLs of static files " "(CSS, JS, images) will be rewritten to use // instead of http:// or https://." msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2067 +#: inc/Engine/Admin/Settings/Page.php:2024 msgid "Sucuri credentials" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2080 +#: inc/Engine/Admin/Settings/Page.php:2037 msgctxt "Sucuri" msgid "" "Firewall API key (for plugin), must be in format {32 characters}/{32 " "characters}:" msgstr "" -#: inc/Engine/Admin/Settings/Page.php:2081 +#: inc/Engine/Admin/Settings/Page.php:2038 msgctxt "Sucuri" msgid "Find your API key" msgstr "" @@ -1441,17 +1382,17 @@ msgstr "" msgid "Upload file and import settings" msgstr "" -#: inc/Engine/Admin/Settings/Settings.php:391 +#: inc/Engine/Admin/Settings/Settings.php:375 msgid "" "Sucuri Add-on: The API key for the Sucuri firewall must be in format {32 " "characters}/{32 characters}." msgstr "" -#: inc/Engine/Admin/Settings/Settings.php:482 inc/deprecated/deprecated.php:1245 +#: inc/Engine/Admin/Settings/Settings.php:466 inc/deprecated/deprecated.php:1245 msgid "Settings saved." msgstr "" -#: inc/Engine/Admin/Settings/Settings.php:698 +#: inc/Engine/Admin/Settings/Settings.php:682 msgid "" "Sorry! Adding /(.*) in Advanced Rules > Never Cache URL(s) was not saved because " "it disables caching and optimizations for every page on your site." @@ -1631,7 +1572,7 @@ msgid "Speed up your website with RocketCDN, WP Rocket’s Content Delivery Netw msgstr "" #: inc/Engine/Cache/AdminSubscriber.php:118 inc/admin/admin.php:75 -#: inc/admin/admin.php:97 inc/deprecated/3.5.php:908 +#: inc/admin/admin.php:97 inc/deprecated/3.5.php:898 msgid "Clear this cache" msgstr "" @@ -1661,6 +1602,7 @@ msgstr "" msgid "WP_CACHE is set to false" msgstr "" +#: inc/Engine/Common/Queue/PreloadQueueRunner.php:232 #: inc/Engine/Common/Queue/RUCSSQueueRunner.php:252 msgid "Every minute" msgstr "" @@ -1752,28 +1694,27 @@ msgid "Critical CSS generation is currently running." msgstr "" #: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:159 -#: inc/Engine/Preload/PreloadSubscriber.php:234 #, php-format msgid "Go to the %1$sWP Rocket settings%2$s page to track progress." msgstr "" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:370 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:374 #, php-format msgid "" "Critical CSS generation is currently running: %1$d of %2$d page types completed. " "(Refresh this page to view progress)" msgstr "" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:442 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:450 #, php-format msgid "Critical CSS generation finished for %1$d of %2$d page types." msgstr "" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Critical CSS generation encountered one or more errors." msgstr "" -#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:449 +#: inc/Engine/CriticalPath/CriticalCSSSubscriber.php:457 msgid "Learn more." msgstr "" @@ -1854,7 +1795,7 @@ msgstr "" msgid "Cannot generate CPCSS for unpublished post." msgstr "" -#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:868 +#: inc/Engine/HealthCheck/HealthCheck.php:82 inc/deprecated/3.5.php:858 msgid "" "The following scheduled event failed to run. This may indicate the CRON system " "is not running properly, which can prevent some WP Rocket features from working " @@ -1866,7 +1807,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:877 +#: inc/Engine/HealthCheck/HealthCheck.php:88 inc/deprecated/3.5.php:867 msgid "Please contact your host to check if CRON is working." msgstr "" @@ -1891,6 +1832,23 @@ msgstr "" msgid "Critical Path CSS Generation Process" msgstr "" +#: inc/Engine/License/Renewal.php:432 +#, php-format +msgid "" +"You need a valid license to continue using this feature. %1$sRenew now%2$s " +"before losing access." +msgstr "" + +#: inc/Engine/License/Renewal.php:453 +#, php-format +msgid "You need an active license to enable this option. %1$sRenew now%2$s." +msgstr "" + +#: inc/Engine/License/Renewal.php:481 +#, php-format +msgid "You need an active license to enable this option. %1$sMore info%2$s." +msgstr "" + #: inc/Engine/License/Upgrade.php:252 #, php-format msgid "" @@ -1936,34 +1894,78 @@ msgid "Upgrade now" msgstr "" #: inc/Engine/License/views/promo-banner.php:36 -#: inc/Engine/License/views/renewal-expired-banner.php:37 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:43 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:53 +#: inc/Engine/License/views/renewal-expired-banner.php:41 #: inc/admin/ui/notices.php:802 views/settings/page-sections/dashboard.php:46 msgid "Dismiss this notice" msgstr "" -#: inc/Engine/License/views/renewal-expired-banner.php:12 -msgid "Your WP Rocket license is expired!" +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:11 +msgid "The Optimize CSS Delivery feature is disabled." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner.php:17 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:15 +msgid "" +"You can no longer use the Remove Unused CSS or Load CSS asynchronously options." +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:20 #, php-format msgid "" -"%1$sYour website could be much faster%2$s if it could take advantage of our new " -"features and enhancements. 🚀" +"You need an %1$sactive license%2$s to keep optimizing your CSS delivery, which " +"addresses a PageSpeed Insights recommendation and improves your page performance." msgstr "" -#: inc/Engine/License/views/renewal-expired-banner.php:27 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:30 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:40 +#: inc/Engine/License/views/renewal-expired-banner.php:28 #, php-format msgid "" -"Renew your license to have access to the %1$slatest version of WP Rocket%2$s and " -"to the wonderful %1$sassistance of our Support Team%2$s." +"Renew your license for 1 year now and get %1$s%3$s OFF%2$s immediately: you’ll " +"only pay %1$s%4$s%2$s!" msgstr "" -#: inc/Engine/License/views/renewal-expired-banner.php:35 +#: inc/Engine/License/views/renewal-expired-banner-ocd-disabled.php:40 +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:50 +#: inc/Engine/License/views/renewal-expired-banner.php:38 #: inc/Engine/License/views/renewal-soon-banner.php:46 msgid "Renew now" msgstr "" +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:11 +msgid "You will soon lose access to some features" +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:18 +#, php-format +msgid "" +"You need an %1$sactive license to continue optimizing your CSS delivery%2$s." +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:24 +msgid "" +"The Remove Unused CSS and Load CSS asynchronously features are great options to " +"address the PageSpeed Insights recommendations and improve your website " +"performance." +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner-ocd.php:29 +#, php-format +msgid "They will be %1$sautomatically disabled on %3$s%2$s." +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner.php:11 +msgid "Your WP Rocket license is expired!" +msgstr "" + +#: inc/Engine/License/views/renewal-expired-banner.php:18 +#, php-format +msgid "" +"You could make your website so much faster if you had access to our %1$snew " +"features and enhancements%2$s. 🚀" +msgstr "" + #: inc/Engine/License/views/renewal-soon-banner.php:22 #, php-format msgid "" @@ -2021,7 +2023,7 @@ msgid "" msgstr "" #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:120 -#: views/settings/page-sections/dashboard.php:206 +#: views/settings/page-sections/dashboard.php:188 msgid "Clear Used CSS" msgstr "" @@ -2050,6 +2052,7 @@ msgid "To learn more about the process check our %1$sdocumentation%2$s." msgstr "" #: inc/Engine/Optimization/RUCSS/Admin/Settings.php:291 +#: inc/Engine/Preload/Admin/Settings.php:94 #, php-format msgid "" "%1$s: We detected missing database table related to Action Scheduler. Please " @@ -2069,153 +2072,85 @@ msgstr "" msgid "Click here to get a WP Rocket single license at %1$s off!" msgstr "" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:299 -#, php-format -msgid "%1$s: Used CSS option is not enabled!" +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:554 +msgid "You are about to lose access to an important feature" msgstr "" -#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:320 -#, php-format -msgid "%1$s: Used CSS cache cleared!" -msgstr "" - -#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:702 -msgid "Clear Used CSS of this URL" -msgstr "" - -#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:145 -msgid "WP Rocket RUCSS pending jobs" -msgstr "" - -#: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 -#: inc/deprecated/3.3.php:770 +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:561 #, php-format msgid "" -"An unexpected error occurred. Something may be wrong with WP-Rocket.me or this " -"server’s configuration. If you continue to have problems, contact support." +"Rolling back to WP Rocket 3.10.10.1, the %1$sRemove Unused CSS%2$s feature will " +"not be available any longer in your file optimization tab." msgstr "" -#: inc/Engine/Preload/Homepage.php:153 +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:571 #, php-format msgid "" -"Preload encountered an error. Could not gather links on %1$s because of the " -"following error: %2$s. %3$sLearn more%4$s." +"If you are encountering any issue related to this feature, you can simply " +"disable the option, or %1$scontact support for help%2$s." msgstr "" -#: inc/Engine/Preload/Homepage.php:166 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following " -"response code: %2$s. Security measures could be preventing access. %3$sLearn more" -"%4$s." -msgstr "" - -#: inc/Engine/Preload/Homepage.php:172 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following " -"response code: 404. Please make sure your homepage is accessible in your " -"browser. %2$sLearn more%3$s." +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:578 +#: views/deactivation-intent/form.php:63 +msgid "Cancel" msgstr "" -#: inc/Engine/Preload/Homepage.php:178 -#, php-format -msgid "" -"Preload encountered an error. %1$s is not accessible to due to the following " -"response code: 500. Please check with your web host about server access. " -"%2$sLearn more%3$s." +#: inc/Engine/Optimization/RUCSS/Admin/Settings.php:579 +msgid "Confirm rollback" msgstr "" -#: inc/Engine/Preload/Homepage.php:184 +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:302 #, php-format -msgid "" -"Preload encountered an error. Could not gather links on %1$s because it returned " -"the following response code: %2$s. %3$sLearn more%4$s." -msgstr "" - -#: inc/Engine/Preload/PreloadSubscriber.php:229 -msgid "Preload: WP Rocket has started preloading your website." +msgid "%1$s: Used CSS option is not enabled!" msgstr "" -#: inc/Engine/Preload/PreloadSubscriber.php:276 -#, php-format -msgid "" -"Preload: %1$s uncached page has now been preloaded. (refresh to see progress)" -msgid_plural "" -"Preload: %1$s uncached pages have now been preloaded. (refresh to see progress)" -msgstr[0] "" -msgstr[1] "" - -#: inc/Engine/Preload/PreloadSubscriber.php:285 -msgid "The following error happened during gathering of the URLs to preload:" -msgid_plural "" -"The following errors happened during gathering of the URLs to preload:" -msgstr[0] "" -msgstr[1] "" - -#: inc/Engine/Preload/PreloadSubscriber.php:338 +#: inc/Engine/Optimization/RUCSS/Admin/Subscriber.php:323 #, php-format -msgid "Preload complete: %d pages have been cached." +msgid "%1$s: Used CSS cache cleared!" msgstr "" -#: inc/Engine/Preload/Sitemap.php:150 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because of " -"the following error: %2$s. %3$sLearn more%4$s." +#: inc/Engine/Optimization/RUCSS/Controller/UsedCSS.php:704 +msgid "Clear Used CSS of this URL" msgstr "" -#: inc/Engine/Preload/Sitemap.php:165 -#, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: %2$s. Security measures could be preventing access. " -"%3$sLearn more%4$s." +#: inc/Engine/Optimization/RUCSS/Cron/Subscriber.php:144 +msgid "WP Rocket Remove Unused CSS pending jobs" msgstr "" -#: inc/Engine/Preload/Sitemap.php:170 +#: inc/Engine/Plugin/UpdaterApiTools.php:32 inc/deprecated/3.3.php:761 +#: inc/deprecated/3.3.php:770 #, php-format msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 404. Please make sure you entered the correct sitemap " -"URL and it is accessible in your browser. %2$sLearn more%3$s." +"An unexpected error occurred. Something may be wrong with WP-Rocket.me or this " +"server’s configuration. If you continue to have problems, contact support." msgstr "" -#: inc/Engine/Preload/Sitemap.php:175 +#: inc/Engine/Plugin/UpdaterSubscriber.php:462 +#: inc/Engine/Plugin/UpdaterSubscriber.php:476 +#: inc/classes/class-wp-rocket-requirements-check.php:203 +#: inc/classes/class-wp-rocket-requirements-check.php:214 +#: inc/deprecated/3.11.php:236 inc/deprecated/3.11.php:251 #, php-format -msgid "" -"Sitemap preload encountered an error. %1$s is not accessible to due to the " -"following response code: 500. Please check with your web host about server " -"access. %2$sLearn more%3$s." +msgid "%s Update Rollback" msgstr "" -#: inc/Engine/Preload/Sitemap.php:180 +#: inc/Engine/Plugin/UpdaterSubscriber.php:499 inc/deprecated/3.11.php:279 #, php-format -msgid "" -"Sitemap preload encountered an error. Could not gather links on %1$s because it " -"returned the following response code: %2$s. %3$sLearn more%4$s." +msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" msgstr "" -#: inc/Engine/Preload/Sitemap.php:196 +#: inc/Engine/Preload/Admin/Settings.php:41 #, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s because " -"the file is empty. %2$sLearn more%3$s." +msgid "%1$s: Please wait. The preload service is processing your pages." msgstr "" -#: inc/Engine/Preload/Sitemap.php:217 -#, php-format -msgid "" -"Sitemap preload encountered an error. Could not collect links from %1$s because " -"of an error during the XML sitemap parsing. %2$sLearn more%3$s." +#: inc/Engine/Preload/Cron/Subscriber.php:129 +msgid "WP Rocket Preload pending jobs" msgstr "" -#: inc/Engine/Preload/SitemapPreloadSubscriber.php:122 -#, php-format -msgid "" -"%1$sSimpleXML PHP extension%2$s is not enabled on your server. Please contact " -"your host to enable it before running sitemap-based cache preloading." +#: inc/Engine/Preload/Cron/Subscriber.php:157 +msgid "WP Rocket Preload revert stuck in-progress jobs" msgstr "" #: inc/ThirdParty/Hostings/Cloudways.php:82 @@ -2319,10 +2254,6 @@ msgid "" "JS, disable %1$s" msgstr "" -#: inc/ThirdParty/Plugins/SEO/Yoast.php:60 inc/deprecated/3.11.php:81 -msgid "Yoast SEO XML sitemap" -msgstr "" - #: inc/ThirdParty/Plugins/Smush.php:108 inc/ThirdParty/Plugins/Smush.php:126 msgid "Smush" msgstr "" @@ -2331,7 +2262,7 @@ msgstr "" msgid "Avada" msgstr "" -#: inc/admin/admin.php:18 inc/common/admin-bar.php:333 +#: inc/admin/admin.php:18 inc/common/admin-bar.php:255 #: inc/deprecated/deprecated.php:1787 msgid "Support" msgstr "" @@ -2340,7 +2271,7 @@ msgstr "" msgid "Docs" msgstr "" -#: inc/admin/admin.php:22 inc/common/admin-bar.php:321 +#: inc/admin/admin.php:22 inc/common/admin-bar.php:243 msgid "FAQ" msgstr "" @@ -2348,43 +2279,31 @@ msgstr "" msgid "Settings" msgstr "" -#: inc/admin/admin.php:237 inc/admin/admin.php:252 -#: inc/classes/class-wp-rocket-requirements-check.php:203 -#: inc/classes/class-wp-rocket-requirements-check.php:214 -#, php-format -msgid "%s Update Rollback" -msgstr "" - -#: inc/admin/admin.php:278 -#, php-format -msgid "%1$sReturn to WP Rocket%2$s or %3$sgo to Plugins page%2$s" -msgstr "" - -#: inc/admin/admin.php:516 +#: inc/admin/admin.php:429 msgid "Settings import failed: you do not have the permissions to do this." msgstr "" -#: inc/admin/admin.php:520 +#: inc/admin/admin.php:433 msgid "Settings import failed: no file uploaded." msgstr "" -#: inc/admin/admin.php:524 +#: inc/admin/admin.php:437 msgid "Settings import failed: incorrect filename." msgstr "" -#: inc/admin/admin.php:535 +#: inc/admin/admin.php:448 msgid "Settings import failed: incorrect filetype." msgstr "" -#: inc/admin/admin.php:545 +#: inc/admin/admin.php:458 msgid "Settings import failed: " msgstr "" -#: inc/admin/admin.php:561 +#: inc/admin/admin.php:474 msgid "Settings import failed: unexpected file content." msgstr "" -#: inc/admin/admin.php:591 +#: inc/admin/admin.php:504 msgid "Settings imported and saved." msgstr "" @@ -2441,10 +2360,6 @@ msgstr "" msgid "Minify/combine CSS" msgstr "" -#: inc/admin/ui/meta-boxes.php:77 -msgid "Remove Unused CSS" -msgstr "" - #: inc/admin/ui/meta-boxes.php:78 msgid "Minify/combine JS" msgstr "" @@ -2683,7 +2598,7 @@ msgstr "" msgid "The logs are not saved into a file." msgstr "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:269 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:266 #, php-format msgid "" "You are using %1$s to serve WebP images so you do not need to enable this " @@ -2696,12 +2611,12 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:281 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:278 msgid "WebP cache is disabled by filter." msgstr "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:291 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:317 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:288 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:314 #, php-format msgid "" "You are using %1$s to convert images to WebP. If you want WP Rocket to serve " @@ -2712,8 +2627,8 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:303 -#: inc/classes/subscriber/Media/class-webp-subscriber.php:329 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:300 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:326 #, php-format msgid "" "You are using %1$s to convert images to WebP. WP Rocket will create separate " @@ -2724,7 +2639,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:349 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:346 #, php-format msgid "" "%5$sWe have not detected any compatible WebP plugin!%6$s%4$s If you don’t " @@ -2733,7 +2648,7 @@ msgid "" "this option." msgstr "" -#: inc/classes/subscriber/Media/class-webp-subscriber.php:361 +#: inc/classes/subscriber/Media/class-webp-subscriber.php:358 msgid "WP Rocket will create separate cache files to serve your WebP images." msgstr "" @@ -2751,8 +2666,12 @@ msgid "" "working/?utm_source=wp_plugin&utm_medium=wp_rocket#theme" msgstr "" -#: inc/common/admin-bar.php:124 inc/common/admin-bar.php:259 -#: inc/functions/i18n.php:41 inc/functions/i18n.php:51 +#: inc/common/admin-bar.php:84 inc/common/admin-bar.php:136 +#: views/settings/page-sections/dashboard.php:150 +msgid "Clear and preload cache" +msgstr "" + +#: inc/common/admin-bar.php:124 inc/functions/i18n.php:41 inc/functions/i18n.php:51 msgid "All languages" msgstr "" @@ -2768,16 +2687,11 @@ msgstr "" msgid "Purge Sucuri cache" msgstr "" -#: inc/common/admin-bar.php:217 inc/common/admin-bar.php:271 -#: views/settings/page-sections/dashboard.php:170 -msgid "Preload cache" -msgstr "" - -#: inc/common/admin-bar.php:296 views/settings/fields/rocket-cdn.php:55 +#: inc/common/admin-bar.php:218 views/settings/fields/rocket-cdn.php:55 msgid "Purge RocketCDN cache" msgstr "" -#: inc/common/admin-bar.php:309 views/settings/partials/documentation.php:14 +#: inc/common/admin-bar.php:231 views/settings/partials/documentation.php:14 msgid "Documentation" msgstr "" @@ -2789,6 +2703,43 @@ msgstr "" msgid "OPcache successfully purged" msgstr "" +#: inc/deprecated/3.11.php:81 +msgid "Yoast SEO XML sitemap" +msgstr "" + +#: inc/deprecated/3.11.php:83 inc/deprecated/3.12.php:58 inc/deprecated/3.12.php:87 +#: inc/deprecated/3.12.php:186 inc/deprecated/3.12.php:253 +#: inc/deprecated/3.12.php:342 +#, php-format +msgid "" +"We automatically detected the sitemap generated by the %s plugin. You can check " +"the option to preload it." +msgstr "" + +#: inc/deprecated/3.12.php:56 +msgid "All in One SEO XML sitemap" +msgstr "" + +#: inc/deprecated/3.12.php:85 +msgid "Rank Math XML sitemap" +msgstr "" + +#: inc/deprecated/3.12.php:184 +msgid "SEOPress XML sitemap" +msgstr "" + +#: inc/deprecated/3.12.php:251 +msgid "The SEO Framework XML sitemap" +msgstr "" + +#: inc/deprecated/3.12.php:332 +msgid "Jetpack XML Sitemaps" +msgstr "" + +#: inc/deprecated/3.12.php:334 +msgid "Preload the sitemap from the Jetpack plugin" +msgstr "" + #: inc/deprecated/3.2.php:52 views/settings/page-sections/imagify.php:36 msgid "Activate Imagify" msgstr "" @@ -2827,27 +2778,27 @@ msgstr "" msgid "No domain available in your Cloudflare account" msgstr "" -#: inc/deprecated/3.5.php:81 inc/deprecated/3.5.php:205 +#: inc/deprecated/3.5.php:71 inc/deprecated/3.5.php:195 msgid "" "Curl is disabled on your server. Please ask your host to enable it. This is " "required for the Cloudflare Add-on to work correctly." msgstr "" -#: inc/deprecated/3.5.php:89 +#: inc/deprecated/3.5.php:79 #, php-format msgid "" "Cloudflare email, API key and Zone ID are not set. Read the %1$sdocumentation" "%2$s for further guidance." msgstr "" -#: inc/deprecated/3.5.php:216 +#: inc/deprecated/3.5.php:206 #, php-format msgid "" "Cloudflare email and API key are not set. Read the %1$sdocumentation%2$s for " "further guidance." msgstr "" -#: inc/deprecated/3.5.php:281 +#: inc/deprecated/3.5.php:271 msgid "Connection to Cloudflare failed" msgstr "" @@ -3023,115 +2974,115 @@ msgstr "" msgid "Which WP Rocket settings are active" msgstr "" -#: inc/functions/options.php:471 +#: inc/functions/options.php:473 msgid "The provided license data are not valid." msgstr "" -#: inc/functions/options.php:474 +#: inc/functions/options.php:476 #, php-format msgid "To resolve, please %1$scontact support%2$s." msgstr "" -#: inc/functions/options.php:533 inc/functions/options.php:572 +#: inc/functions/options.php:535 inc/functions/options.php:574 msgid "" "License validation failed. Our server could not resolve the request from your " "website." msgstr "" -#: inc/functions/options.php:533 +#: inc/functions/options.php:535 #, php-format msgid "" "Try clicking %1$sValidate License%2$s below. If the error persists, follow " "%3$sthis guide%4$s." msgstr "" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 msgid "" "License validation failed. You may be using a nulled version of the plugin. " "Please do the following:" msgstr "" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 #, php-format msgid "Login to your WP Rocket %1$saccount%2$s" msgstr "" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Download the zip file" msgstr "" -#: inc/functions/options.php:549 inc/functions/options.php:591 +#: inc/functions/options.php:551 inc/functions/options.php:593 msgid "Reinstall" msgstr "" -#: inc/functions/options.php:549 +#: inc/functions/options.php:551 #, php-format msgid "If you do not have a WP Rocket account, please %1$spurchase a license%2$s." msgstr "" -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "" "License validation failed. This user account does not exist in our database." msgstr "" -#: inc/functions/options.php:557 +#: inc/functions/options.php:559 msgid "To resolve, please contact support." msgstr "" -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 msgid "License validation failed. This user account is blocked." msgstr "" -#: inc/functions/options.php:565 +#: inc/functions/options.php:567 #, php-format msgid "Please see %1$sthis guide%2$s for more info." msgstr "" -#: inc/functions/options.php:572 +#: inc/functions/options.php:574 #, php-format msgid "" "Try clicking %1$sSave Changes%2$s below. If the error persists, follow %3$sthis " "guide%4$s." msgstr "" -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 msgid "Your license is not valid." msgstr "" -#: inc/functions/options.php:585 +#: inc/functions/options.php:587 #, php-format msgid "Make sure you have an active %1$sWP Rocket license%2$s." msgstr "" -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 msgid "You have added as many sites as your current license allows." msgstr "" -#: inc/functions/options.php:587 +#: inc/functions/options.php:589 #, php-format msgid "" "Upgrade your %1$saccount%2$s or %3$stransfer your license%2$s to this domain." msgstr "" -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 msgid "This website is not allowed." msgstr "" -#: inc/functions/options.php:589 +#: inc/functions/options.php:591 #, php-format msgid "Please %1$scontact support%2$s." msgstr "" -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 msgid "This license key is not recognized." msgstr "" -#: inc/functions/options.php:591 +#: inc/functions/options.php:593 #, php-format msgid "If the issue persists, please %1$scontact support%2$s." msgstr "" -#: inc/functions/options.php:597 +#: inc/functions/options.php:599 #, php-format msgid "License validation failed: %s" msgstr "" @@ -3252,10 +3203,6 @@ msgstr "" msgid "Forever" msgstr "" -#: views/deactivation-intent/form.php:63 -msgid "Cancel" -msgstr "" - #: views/deactivation-intent/form.php:64 msgid "Confirm" msgstr "" @@ -3404,32 +3351,28 @@ msgid "Remove all cached files" msgstr "" #: views/settings/page-sections/dashboard.php:164 -msgid "Start cache preloading" -msgstr "" - -#: views/settings/page-sections/dashboard.php:182 -#: views/settings/page-sections/dashboard.php:188 +#: views/settings/page-sections/dashboard.php:170 msgid "Regenerate Critical CSS" msgstr "" -#: views/settings/page-sections/dashboard.php:200 +#: views/settings/page-sections/dashboard.php:182 msgid "Remove Used CSS Cache" msgstr "" -#: views/settings/page-sections/dashboard.php:223 +#: views/settings/page-sections/dashboard.php:205 msgid "Frequently Asked Questions" msgstr "" -#: views/settings/page-sections/dashboard.php:237 +#: views/settings/page-sections/dashboard.php:219 msgid "Still cannot find a solution?" msgstr "" -#: views/settings/page-sections/dashboard.php:238 +#: views/settings/page-sections/dashboard.php:220 msgid "" "Submit a ticket and get help from our friendly and knowledgeable Rocketeers." msgstr "" -#: views/settings/page-sections/dashboard.php:246 +#: views/settings/page-sections/dashboard.php:228 msgid "Ask support" msgstr "" @@ -3555,11 +3498,11 @@ msgstr "" msgid "Reinstall version %s" msgstr "" -#: views/settings/page-sections/tools.php:106 +#: views/settings/page-sections/tools.php:108 msgid "Debug mode" msgstr "" -#: views/settings/page-sections/tools.php:111 +#: views/settings/page-sections/tools.php:113 msgid "Create a debug log file." msgstr "" diff --git a/package-lock.json b/package-lock.json index cbeef7a910..8bc8df885b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22123 +1,22123 @@ { - "name": "lib-sass", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "lib-sass", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "isomorphic-fetch": "^3.0", - "prop-types": "^15.6.2", - "react": "^16.5.2", - "react-dom": "^16.5.2" - }, - "devDependencies": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "babel-loader": "^8.2.3", - "babel-preset-env": "^1.7.0", - "babelify": "^10.0.0", - "browserify": "^17.0.0", - "eslint": "^8.3.0", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-react": "^7.27.1", - "gulp": "^4.0.2", - "gulp-babel": "^8.0.0", - "gulp-concat": "2.6.1", - "gulp-iife": "^0.4.0", - "gulp-rename": "^2.0.0", - "gulp-sass": "^5.0.0", - "gulp-sourcemaps": "^3.0.0", - "gulp-uglify": "^3.0.2", - "lodash": "^4.17.21", - "sass": "^1.44.0", - "vinyl-buffer": "^1.0.1", - "vinyl-source-stream": "^2.0.0", - "watchify": "^4.0.0", - "webpack": "^5.64.4", - "webpack-cli": "^4.9.1", - "yargs": "^17.3.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz", - "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==", - "dev": true, - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", - "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", - "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", - "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", - "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", - "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.4", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", - "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", - "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", - "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", - "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", - "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", - "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", - "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", - "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", - "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", - "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", - "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", - "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", - "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", - "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", - "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", - "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", - "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", - "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", - "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", - "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", - "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", - "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", - "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", - "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", - "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", - "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", - "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", - "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", - "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", - "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", - "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", - "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", - "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", - "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", - "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", - "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", - "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", - "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", - "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", - "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", - "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", - "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", - "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", - "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", - "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", - "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", - "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.4", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-class-static-block": "^7.16.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.0", - "@babel/plugin-proposal-export-namespace-from": "^7.16.0", - "@babel/plugin-proposal-json-strings": "^7.16.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-object-rest-spread": "^7.16.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.0", - "@babel/plugin-transform-async-to-generator": "^7.16.0", - "@babel/plugin-transform-block-scoped-functions": "^7.16.0", - "@babel/plugin-transform-block-scoping": "^7.16.0", - "@babel/plugin-transform-classes": "^7.16.0", - "@babel/plugin-transform-computed-properties": "^7.16.0", - "@babel/plugin-transform-destructuring": "^7.16.0", - "@babel/plugin-transform-dotall-regex": "^7.16.0", - "@babel/plugin-transform-duplicate-keys": "^7.16.0", - "@babel/plugin-transform-exponentiation-operator": "^7.16.0", - "@babel/plugin-transform-for-of": "^7.16.0", - "@babel/plugin-transform-function-name": "^7.16.0", - "@babel/plugin-transform-literals": "^7.16.0", - "@babel/plugin-transform-member-expression-literals": "^7.16.0", - "@babel/plugin-transform-modules-amd": "^7.16.0", - "@babel/plugin-transform-modules-commonjs": "^7.16.0", - "@babel/plugin-transform-modules-systemjs": "^7.16.0", - "@babel/plugin-transform-modules-umd": "^7.16.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", - "@babel/plugin-transform-new-target": "^7.16.0", - "@babel/plugin-transform-object-super": "^7.16.0", - "@babel/plugin-transform-parameters": "^7.16.3", - "@babel/plugin-transform-property-literals": "^7.16.0", - "@babel/plugin-transform-regenerator": "^7.16.0", - "@babel/plugin-transform-reserved-words": "^7.16.0", - "@babel/plugin-transform-shorthand-properties": "^7.16.0", - "@babel/plugin-transform-spread": "^7.16.0", - "@babel/plugin-transform-sticky-regex": "^7.16.0", - "@babel/plugin-transform-template-literals": "^7.16.0", - "@babel/plugin-transform-typeof-symbol": "^7.16.0", - "@babel/plugin-transform-unicode-escapes": "^7.16.0", - "@babel/plugin-transform-unicode-regex": "^7.16.0", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.19.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", - "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", - "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", - "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@gulp-sourcemaps/identity-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", - "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", - "dev": true, - "dependencies": { - "acorn": "^6.4.1", - "normalize-path": "^3.0.0", - "postcss": "^7.0.16", - "source-map": "^0.6.0", - "through2": "^3.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - }, - "node_modules/@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "dependencies": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@types/eslint": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", - "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "node_modules/@types/node": { - "version": "16.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "dev": true - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", - "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", - "dev": true, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", - "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", - "dev": true, - "dependencies": { - "envinfo": "^7.7.3" - }, - "peerDependencies": { - "webpack-cli": "4.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", - "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", - "dev": true, - "peerDependencies": { - "webpack-cli": "4.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "dependencies": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - } - }, - "node_modules/acorn-node/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "dependencies": { - "ansi-wrap": "0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "dependencies": { - "buffer-equal": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "dependencies": { - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "dependencies": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-initial/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "dependencies": { - "is-number": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-last/node_modules/is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "dependencies": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "dependencies": { - "async-done": "^1.2.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "dependencies": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "node_modules/babel-code-frame/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-code-frame/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "dependencies": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "dependencies": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "dependencies": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "node_modules/babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "node_modules/babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "node_modules/babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "dependencies": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "dependencies": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "dependencies": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "dependencies": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "dependencies": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "dependencies": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "dependencies": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "dependencies": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "dependencies": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "dependencies": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "node_modules/babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.10.0" - } - }, - "node_modules/babel-plugin-transform-regenerator/node_modules/regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "dependencies": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - }, - "node_modules/babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "node_modules/babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "dependencies": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - } - }, - "node_modules/babel-preset-env/node_modules/browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - }, - "bin": { - "browserslist": "cli.js" - } - }, - "node_modules/babel-preset-env/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "dependencies": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - } - }, - "node_modules/babel-traverse/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/babel-traverse/node_modules/globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babel-traverse/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "dependencies": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" - } - }, - "node_modules/babel-types/node_modules/to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true, - "bin": { - "babylon": "bin/babylon.js" - } - }, - "node_modules/bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "dependencies": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "dependencies": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - }, - "bin": { - "browser-pack": "bin/cmd.js" - } - }, - "node_modules/browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "dependencies": { - "resolve": "^1.17.0" - } - }, - "node_modules/browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "dependencies": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "browserify": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "node_modules/buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-deep/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "dependencies": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "node_modules/combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "dependencies": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - } - }, - "node_modules/combine-source-map/node_modules/convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/concat-with-sourcemaps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "dependencies": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.19.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.2.tgz", - "integrity": "sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.18.1", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/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, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, - "node_modules/css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "dependencies": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - } - }, - "node_modules/debug-fabulous/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "dependencies": { - "kind-of": "^5.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "node_modules/deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "dependencies": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - }, - "bin": { - "deps-sort": "bin/cmd.js" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detect-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - }, - "bin": { - "detective": "bin/detective.js" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - } - }, - "node_modules/each-props/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.8.tgz", - "integrity": "sha512-Cu5+dbg55+1E3ohlsa8HT0s4b8D0gBewXEGG8s5wBl8ynWv60VuvYW25GpsOeTVXpulhyU/U8JYZH+yxASSJBQ==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/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, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es5-ext/node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-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, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", - "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", - "dev": true, - "dependencies": { - "@eslint/eslintrc": "^1.0.4", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.1.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/eslint-plugin-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", - "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" - } - }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/espree": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", - "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", - "dev": true, - "dependencies": { - "acorn": "^8.6.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/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, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dev": true, - "dependencies": { - "type": "^2.5.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "dependencies": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/findup-sync": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", - "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^4.0.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "dependencies": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fined/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "dependencies": { - "for-in": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/glob-stream/node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-stream/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "node_modules/glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "dev": true, - "dependencies": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/global-prefix/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "node_modules/gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "dependencies": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-babel": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", - "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", - "dev": true, - "dependencies": { - "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "bin": { - "gulp": "bin/gulp.js" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-cli/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/gulp-cli/node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-cli/node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "node_modules/gulp-cli/node_modules/yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "node_modules/gulp-cli/node_modules/yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "dependencies": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - }, - "node_modules/gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "dependencies": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/gulp-iife": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gulp-iife/-/gulp-iife-0.4.0.tgz", - "integrity": "sha512-2XPPYEsCi7sfJyu6LhFWynxgc5cHylHKeGqQo3vp2LWViKm/2eJlsMWX9WvKVzoLkyTf52PwEW0d0X3By+sdFQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.11", - "source-map": "^0.5.3", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - } - }, - "node_modules/gulp-rename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", - "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/gulp-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", - "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.1", - "lodash": "^4.17.20", - "plugin-error": "^1.0.1", - "replace-ext": "^2.0.0", - "strip-ansi": "^6.0.0", - "transfob": "^1.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/gulp-sass/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/gulp-sass/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/gulp-sass/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/gulp-sass/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/gulp-sass/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sass/node_modules/replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/gulp-sass/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/gulp-sourcemaps": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", - "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", - "dev": true, - "dependencies": { - "@gulp-sourcemaps/identity-map": "^2.0.1", - "@gulp-sourcemaps/map-sources": "^1.0.0", - "acorn": "^6.4.1", - "convert-source-map": "^1.0.0", - "css": "^3.0.0", - "debug-fabulous": "^1.0.0", - "detect-newline": "^2.0.0", - "graceful-fs": "^4.0.0", - "source-map": "^0.6.0", - "strip-bom-string": "^1.0.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gulp-sourcemaps/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/gulp-sourcemaps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-uglify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", - "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "extend-shallow": "^3.0.2", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "isobject": "^3.0.1", - "make-error-cause": "^1.1.1", - "safe-buffer": "^5.1.2", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "node_modules/gulp-uglify/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-uglify/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulp-uglify/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "dependencies": { - "glogg": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "dependencies": { - "sparkles": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/homedir-polyfill": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", - "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", - "dev": true, - "dependencies": { - "parse-passwd": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "node_modules/htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "dependencies": { - "source-map": "~0.5.3" - } - }, - "node_modules/insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "dependencies": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - }, - "bin": { - "insert-module-globals": "bin/cmd.js" - } - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "dependencies": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "dependencies": { - "is-unc-path": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "dependencies": { - "unc-path-regex": "^0.1.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-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 - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "node_modules/last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "dependencies": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "dependencies": { - "flush-write-stream": "^1.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "dependencies": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/liftoff/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/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, - "dependencies": { - "is-utf8": "^0.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/loader-utils/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "dependencies": { - "make-error": "^1.2.0" - } - }, - "node_modules/make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/make-iterator/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "dependencies": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/matchdep/node_modules/findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "dependencies": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/matchdep/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "node_modules/module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "dependencies": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - }, - "bin": { - "module-deps": "bin/cmd.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/mute-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nanomatch/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "dependencies": { - "once": "^1.3.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "dependencies": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "dependencies": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.1" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", - "dev": true, - "dependencies": { - "shell-quote": "^1.4.2" - } - }, - "node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "dependencies": { - "path-platform": "~0.11.15" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "dependencies": { - "path-root-regex": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "dependencies": { - "find-up": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "dependencies": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/plugin-error/node_modules/ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "dependencies": { - "ansi-wrap": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/plugin-error/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "dependencies": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - } - }, - "node_modules/postcss/node_modules/picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "node_modules/postcss/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - }, - "peerDependencies": { - "react": "^16.14.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/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, - "dependencies": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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, - "dependencies": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "dependencies": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-pkg-up/node_modules/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, - "dependencies": { - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regex-not/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "dependencies": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/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, - "dependencies": { - "expand-tilde": "^2.0.0", - "global-modules": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "dependencies": { - "value-or-function": "^3.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", - "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sass/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sass/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/sass/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/sass/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sass/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sass/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/sass/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/sass/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "dependencies": { - "sver-compat": "^1.5.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shallow-clone/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "dependencies": { - "fast-safe-stringify": "^2.0.7" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "node_modules/sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/split-string/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "dependencies": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "node_modules/stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "dependencies": { - "minimist": "^1.1.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "dependencies": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "dependencies": { - "acorn-node": "^1.2.0" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", - "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", - "dev": true, - "dependencies": { - "jest-worker": "^27.0.6", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "dependencies": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "dependencies": { - "process": "~0.11.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "dependencies": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "dependencies": { - "through2": "^2.0.3" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/transfob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", - "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", - "dev": true - }, - "node_modules/tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-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, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.14.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", - "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", - "dev": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true, - "bin": { - "umd": "bin/cli.js" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "dependencies": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - }, - "bin": { - "undeclared-identifiers": "bin.js" - } - }, - "node_modules/undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/undertaker/node_modules/fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "dependencies": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "dependencies": { - "homedir-polyfill": "^1.0.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", - "integrity": "sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78=", - "dev": true, - "dependencies": { - "bl": "^1.2.1", - "through2": "^2.0.3" - } - }, - "node_modules/vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "dependencies": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-source-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", - "integrity": "sha1-84pa+53R6Ttl1VBGmsYYKsT1S44=", - "dev": true, - "dependencies": { - "through2": "^2.0.3", - "vinyl": "^2.1.0" - } - }, - "node_modules/vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "dependencies": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vinyl-sourcemap/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "dependencies": { - "source-map": "^0.5.1" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "dependencies": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "bin": { - "watchify": "bin/cmd.js" - }, - "engines": { - "node": ">= 8.10.0" - } - }, - "node_modules/watchify/node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/watchify/node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchify/node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchify/node_modules/chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/watchify/node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchify/node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/watchify/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/watchify/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/watchify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/watchify/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/watchify/node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, - "node_modules/watchify/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/watchpack": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", - "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/webpack": { - "version": "5.64.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.4.tgz", - "integrity": "sha512-LWhqfKjCLoYJLKJY8wk2C3h77i8VyHowG3qYNZiIqD6D0ZS40439S/KVuc/PY48jp2yQmy0mhMknq8cys4jFMw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.0", - "webpack-sources": "^3.2.2" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", - "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "peerDependencies": { - "webpack": "4.x.x || 5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "@webpack-cli/migrate": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/webpack-cli/node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-cli/node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "dependencies": { - "resolve": "^1.9.0" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", - "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", - "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "dev": true - }, - "@babel/core": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", - "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helpers": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - } - }, - "@babel/eslint-parser": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz", - "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", - "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", - "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", - "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", - "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", - "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", - "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", - "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", - "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", - "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", - "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-wrap-function": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-replace-supers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", - "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dev": true, - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", - "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helpers": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", - "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", - "dev": true, - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.3", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", - "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", - "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", - "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", - "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.4", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", - "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", - "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", - "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", - "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", - "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", - "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", - "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", - "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", - "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-compilation-targets": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.0" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", - "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", - "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", - "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", - "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-create-class-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", - "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", - "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", - "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", - "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.16.0" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", - "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", - "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", - "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-optimise-call-expression": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", - "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", - "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", - "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", - "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", - "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", - "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", - "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", - "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", - "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", - "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", - "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.16.0", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", - "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.15.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", - "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", - "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", - "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", - "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.16.0" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", - "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", - "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", - "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", - "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-jsx": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", - "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.0" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", - "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", - "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", - "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", - "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", - "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", - "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", - "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", - "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", - "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", - "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.0", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/preset-env": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", - "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-async-generator-functions": "^7.16.4", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-class-static-block": "^7.16.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.0", - "@babel/plugin-proposal-export-namespace-from": "^7.16.0", - "@babel/plugin-proposal-json-strings": "^7.16.0", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-object-rest-spread": "^7.16.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-proposal-private-property-in-object": "^7.16.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.0", - "@babel/plugin-transform-async-to-generator": "^7.16.0", - "@babel/plugin-transform-block-scoped-functions": "^7.16.0", - "@babel/plugin-transform-block-scoping": "^7.16.0", - "@babel/plugin-transform-classes": "^7.16.0", - "@babel/plugin-transform-computed-properties": "^7.16.0", - "@babel/plugin-transform-destructuring": "^7.16.0", - "@babel/plugin-transform-dotall-regex": "^7.16.0", - "@babel/plugin-transform-duplicate-keys": "^7.16.0", - "@babel/plugin-transform-exponentiation-operator": "^7.16.0", - "@babel/plugin-transform-for-of": "^7.16.0", - "@babel/plugin-transform-function-name": "^7.16.0", - "@babel/plugin-transform-literals": "^7.16.0", - "@babel/plugin-transform-member-expression-literals": "^7.16.0", - "@babel/plugin-transform-modules-amd": "^7.16.0", - "@babel/plugin-transform-modules-commonjs": "^7.16.0", - "@babel/plugin-transform-modules-systemjs": "^7.16.0", - "@babel/plugin-transform-modules-umd": "^7.16.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", - "@babel/plugin-transform-new-target": "^7.16.0", - "@babel/plugin-transform-object-super": "^7.16.0", - "@babel/plugin-transform-parameters": "^7.16.3", - "@babel/plugin-transform-property-literals": "^7.16.0", - "@babel/plugin-transform-regenerator": "^7.16.0", - "@babel/plugin-transform-reserved-words": "^7.16.0", - "@babel/plugin-transform-shorthand-properties": "^7.16.0", - "@babel/plugin-transform-spread": "^7.16.0", - "@babel/plugin-transform-sticky-regex": "^7.16.0", - "@babel/plugin-transform-template-literals": "^7.16.0", - "@babel/plugin-transform-typeof-symbol": "^7.16.0", - "@babel/plugin-transform-unicode-escapes": "^7.16.0", - "@babel/plugin-transform-unicode-regex": "^7.16.0", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.0", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.4.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.19.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", - "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-react-jsx": "^7.16.0", - "@babel/plugin-transform-react-jsx-development": "^7.16.0", - "@babel/plugin-transform-react-pure-annotations": "^7.16.0" - } - }, - "@babel/runtime": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", - "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/traverse": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", - "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.0", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.3", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", - "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", - "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.0.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - } - } - }, - "@gulp-sourcemaps/identity-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", - "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", - "dev": true, - "requires": { - "acorn": "^6.4.1", - "normalize-path": "^3.0.0", - "postcss": "^7.0.16", - "source-map": "^0.6.0", - "through2": "^3.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 - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "through2": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "2 || 3" - } - } - } - }, - "@gulp-sourcemaps/map-sources": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", - "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", - "dev": true, - "requires": { - "normalize-path": "^2.0.1", - "through2": "^2.0.3" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", - "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@types/eslint": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", - "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", - "dev": true - }, - "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", - "dev": true - }, - "@types/node": { - "version": "16.11.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", - "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", - "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", - "dev": true, - "requires": {} - }, - "@webpack-cli/info": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", - "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", - "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", - "dev": true, - "requires": {} - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} - }, - "acorn-node": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", - "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", - "dev": true, - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "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 - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} - }, - "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-gray": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", - "dev": true, - "requires": { - "ansi-wrap": "0.1.0" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "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-wrap": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", - "dev": true - }, - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "append-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", - "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", - "dev": true, - "requires": { - "buffer-equal": "^1.0.0" - } - }, - "archy": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", - "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "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-filter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", - "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "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-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", - "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", - "dev": true, - "requires": { - "make-iterator": "^1.0.0" - } - }, - "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-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, - "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-initial": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", - "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", - "dev": true, - "requires": { - "array-slice": "^1.0.0", - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-last": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", - "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", - "dev": true, - "requires": { - "is-number": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", - "dev": true - } - } - }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, - "array-sort": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", - "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", - "dev": true, - "requires": { - "default-compare": "^1.0.0", - "get-value": "^2.0.6", - "kind-of": "^5.0.2" - } - }, - "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.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "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 - }, - "async-done": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", - "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.2", - "process-nextick-args": "^2.0.0", - "stream-exhaust": "^1.0.1" - } - }, - "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-settle": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", - "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", - "dev": true, - "requires": { - "async-done": "^1.2.2" - } - }, - "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 - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "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" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, - "babel-helper-builder-binary-assignment-operator-visitor": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", - "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true, - "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-call-delegate": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-define-map": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", - "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-explode-assignable-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", - "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", - "dev": true, - "requires": { - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-get-function-arity": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-hoist-variables": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-optimise-call-expression": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-helper-regex": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", - "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-helper-remap-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", - "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-helper-replace-supers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", - "dev": true, - "requires": { - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - } - }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-check-es2015-constants": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.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-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", - "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", - "core-js-compat": "^3.18.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" - } - }, - "babel-plugin-syntax-async-functions": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", - "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", - "dev": true - }, - "babel-plugin-syntax-exponentiation-operator": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", - "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", - "dev": true - }, - "babel-plugin-syntax-trailing-function-commas": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", - "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", - "dev": true - }, - "babel-plugin-transform-async-to-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", - "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true, - "requires": { - "babel-helper-remap-async-to-generator": "^6.24.1", - "babel-plugin-syntax-async-functions": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-arrow-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoped-functions": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", - "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "lodash": "^4.17.4" - } - }, - "babel-plugin-transform-es2015-classes": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", - "dev": true, - "requires": { - "babel-helper-define-map": "^6.24.1", - "babel-helper-function-name": "^6.24.1", - "babel-helper-optimise-call-expression": "^6.24.1", - "babel-helper-replace-supers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-computed-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-destructuring": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-duplicate-keys": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-for-of": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-function-name": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", - "dev": true, - "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-modules-amd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-es2015-modules-systemjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", - "dev": true, - "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-modules-umd": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-object-super": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", - "dev": true, - "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-parameters": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", - "dev": true, - "requires": { - "babel-helper-call-delegate": "^6.24.1", - "babel-helper-get-function-arity": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-shorthand-properties": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-spread": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-sticky-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-plugin-transform-es2015-template-literals": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-typeof-symbol": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-es2015-unicode-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", - "dev": true, - "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", - "dev": true, - "requires": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" - } - }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true - }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - } - } - } - }, - "babel-plugin-transform-exponentiation-operator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", - "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true, - "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", - "babel-plugin-syntax-exponentiation-operator": "^6.8.0", - "babel-runtime": "^6.22.0" - } - }, - "babel-plugin-transform-regenerator": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", - "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", - "dev": true, - "requires": { - "regenerator-transform": "^0.10.0" - }, - "dependencies": { - "regenerator-transform": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", - "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", - "dev": true, - "requires": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" - } - } - } - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "babel-preset-env": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", - "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", - "dev": true, - "requires": { - "babel-plugin-check-es2015-constants": "^6.22.0", - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", - "babel-plugin-transform-es2015-block-scoping": "^6.23.0", - "babel-plugin-transform-es2015-classes": "^6.23.0", - "babel-plugin-transform-es2015-computed-properties": "^6.22.0", - "babel-plugin-transform-es2015-destructuring": "^6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", - "babel-plugin-transform-es2015-for-of": "^6.23.0", - "babel-plugin-transform-es2015-function-name": "^6.22.0", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.22.0", - "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", - "babel-plugin-transform-es2015-modules-umd": "^6.23.0", - "babel-plugin-transform-es2015-object-super": "^6.22.0", - "babel-plugin-transform-es2015-parameters": "^6.23.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", - "babel-plugin-transform-exponentiation-operator": "^6.22.0", - "babel-plugin-transform-regenerator": "^6.22.0", - "browserslist": "^3.2.6", - "invariant": "^2.2.2", - "semver": "^5.3.0" - }, - "dependencies": { - "browserslist": { - "version": "3.2.8", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", - "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30000844", - "electron-to-chromium": "^1.3.47" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "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" - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" - } - }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", - "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "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 - } - } - }, - "babelify": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", - "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", - "dev": true, - "requires": {} - }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", - "dev": true - }, - "bach": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", - "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", - "dev": true, - "requires": { - "arr-filter": "^1.1.1", - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "array-each": "^1.0.0", - "array-initial": "^1.0.0", - "array-last": "^1.1.1", - "async-done": "^1.2.2", - "async-settle": "^1.0.0", - "now-and-later": "^2.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "base64-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 - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "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, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", - "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", - "dev": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "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" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "combine-source-map": "~0.8.0", - "defined": "^1.0.0", - "JSONStream": "^1.0.3", - "safe-buffer": "^5.1.1", - "through2": "^2.0.0", - "umd": "^3.0.0" - } - }, - "browser-resolve": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", - "dev": true, - "requires": { - "resolve": "^1.17.0" - } - }, - "browserify": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", - "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", - "dev": true, - "requires": { - "assert": "^1.4.0", - "browser-pack": "^6.0.1", - "browser-resolve": "^2.0.0", - "browserify-zlib": "~0.2.0", - "buffer": "~5.2.1", - "cached-path-relative": "^1.0.0", - "concat-stream": "^1.6.0", - "console-browserify": "^1.1.0", - "constants-browserify": "~1.0.0", - "crypto-browserify": "^3.0.0", - "defined": "^1.0.0", - "deps-sort": "^2.0.1", - "domain-browser": "^1.2.0", - "duplexer2": "~0.1.2", - "events": "^3.0.0", - "glob": "^7.1.0", - "has": "^1.0.0", - "htmlescape": "^1.1.0", - "https-browserify": "^1.0.0", - "inherits": "~2.0.1", - "insert-module-globals": "^7.2.1", - "JSONStream": "^1.0.3", - "labeled-stream-splicer": "^2.0.0", - "mkdirp-classic": "^0.5.2", - "module-deps": "^6.2.3", - "os-browserify": "~0.3.0", - "parents": "^1.0.1", - "path-browserify": "^1.0.0", - "process": "~0.11.0", - "punycode": "^1.3.2", - "querystring-es3": "~0.2.0", - "read-only-stream": "^2.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.1.4", - "shasum-object": "^1.0.0", - "shell-quote": "^1.6.1", - "stream-browserify": "^3.0.0", - "stream-http": "^3.0.0", - "string_decoder": "^1.1.1", - "subarg": "^1.0.0", - "syntax-error": "^1.1.1", - "through2": "^2.0.0", - "timers-browserify": "^1.0.1", - "tty-browserify": "0.0.1", - "url": "~0.11.0", - "util": "~0.12.0", - "vm-browserify": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "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" - } - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", - "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001280", - "electron-to-chromium": "^1.3.896", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", - "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" - } - }, - "buffer-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", - "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", - "dev": true - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "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" - } - }, - "cached-path-relative": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", - "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001283", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", - "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", - "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" - } - }, - "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": { - "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" - } - } - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "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" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "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" - } - }, - "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 - } - } - }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "collection-map": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", - "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", - "dev": true, - "requires": { - "arr-map": "^2.0.2", - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "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-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-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "dev": true - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", - "dev": true - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "~1.1.0", - "inline-source-map": "~0.6.0", - "lodash.memoize": "~3.0.3", - "source-map": "~0.5.3" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "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 - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "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" - } - }, - "concat-with-sourcemaps": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", - "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", - "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "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 - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-props": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", - "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", - "dev": true, - "requires": { - "each-props": "^1.3.2", - "is-plain-object": "^5.0.0" - } - }, - "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.19.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.2.tgz", - "integrity": "sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ==", - "dev": true, - "requires": { - "browserslist": "^4.18.1", - "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.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "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" - } - }, - "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" - } - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "dash-ast": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", - "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", - "dev": true - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "debug-fabulous": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", - "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", - "dev": true, - "requires": { - "debug": "3.X", - "memoizee": "0.4.X", - "object-assign": "4.X" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "default-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", - "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", - "dev": true, - "requires": { - "kind-of": "^5.0.2" - } - }, - "default-resolution": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", - "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", - "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" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, - "deps-sort": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", - "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", - "dev": true, - "requires": { - "JSONStream": "^1.0.3", - "shasum-object": "^1.0.0", - "subarg": "^1.0.0", - "through2": "^2.0.0" - } - }, - "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" - } - }, - "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": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", - "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", - "dev": true - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "dev": true, - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "each-props": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", - "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.1", - "object.defaults": "^1.1.0" - }, - "dependencies": { - "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" - } - } - } - }, - "electron-to-chromium": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.8.tgz", - "integrity": "sha512-Cu5+dbg55+1E3ohlsa8HT0s4b8D0gBewXEGG8s5wBl8ynWv60VuvYW25GpsOeTVXpulhyU/U8JYZH+yxASSJBQ==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "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" - } - }, - "enhanced-resolve": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", - "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.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" - } - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "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.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", - "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.4", - "string.prototype.trimstart": "^1.0.4", - "unbox-primitive": "^1.0.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - }, - "dependencies": { - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - } - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "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 - }, - "eslint": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", - "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.0.4", - "@humanwhocodes/config-array": "^0.6.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.0", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.1.0", - "espree": "^9.1.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.2.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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 - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", - "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true - }, - "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "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 - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "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" - } - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", - "has": "^1.0.3", - "is-core-module": "^2.8.0", - "is-glob": "^4.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.5", - "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "eslint-plugin-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", - "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.0.4", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", - "object.values": "^1.1.5", - "prop-types": "^15.7.2", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - } - } - }, - "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" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", - "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", - "dev": true, - "requires": { - "acorn": "^8.6.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", - "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", - "dev": true - } - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "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" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "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 - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "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" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "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" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "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" - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "dev": true, - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", - "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", - "dev": true - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "extend-shallow": { - "version": "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" - } - }, - "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" - } - } - } - }, - "fancy-log": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", - "dev": true, - "requires": { - "ansi-gray": "^0.1.1", - "color-support": "^1.1.3", - "parse-node-version": "^1.0.0", - "time-stamp": "^1.0.0" - } - }, - "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-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 - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "fill-range": { - "version": "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" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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" - } - } - } - }, - "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" - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - }, - "dependencies": { - "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" - } - } - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", - "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", - "dev": true - }, - "flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "requires": { - "map-cache": "^0.2.2" - } - }, - "fs-mkdirp-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", - "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "through2": "^2.0.3" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "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-assigned-identifiers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", - "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-stream": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", - "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "glob": "^7.1.1", - "glob-parent": "^3.1.0", - "is-negated-glob": "^1.0.0", - "ordered-read-streams": "^1.0.0", - "pumpify": "^1.3.5", - "readable-stream": "^2.1.5", - "remove-trailing-separator": "^1.0.1", - "to-absolute-glob": "^2.0.0", - "unique-stream": "^2.0.2" - }, - "dependencies": { - "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" - } - }, - "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" - } - } - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "glob-watcher": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", - "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", - "dev": true, - "requires": { - "anymatch": "^2.0.0", - "async-done": "^1.2.0", - "chokidar": "^2.0.0", - "is-negated-glob": "^1.0.0", - "just-debounce": "^1.0.0", - "normalize-path": "^3.0.0", - "object.defaults": "^1.1.0" - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "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 - }, - "glogg": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", - "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", - "dev": true - }, - "gulp": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", - "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", - "dev": true, - "requires": { - "glob-watcher": "^5.0.3", - "gulp-cli": "^2.2.0", - "undertaker": "^1.2.1", - "vinyl-fs": "^3.0.0" - } - }, - "gulp-babel": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", - "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", - "dev": true, - "requires": { - "plugin-error": "^1.0.1", - "replace-ext": "^1.0.0", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.0" - } - }, - "gulp-cli": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", - "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "archy": "^1.0.0", - "array-sort": "^1.0.0", - "color-support": "^1.1.3", - "concat-stream": "^1.6.0", - "copy-props": "^2.0.1", - "fancy-log": "^1.3.2", - "gulplog": "^1.0.0", - "interpret": "^1.4.0", - "isobject": "^3.0.1", - "liftoff": "^3.1.0", - "matchdep": "^2.0.0", - "mute-stdout": "^1.0.0", - "pretty-hrtime": "^1.0.0", - "replace-homedir": "^1.0.0", - "semver-greatest-satisfied-range": "^1.1.0", - "v8flags": "^3.2.0", - "yargs": "^7.1.0" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - } - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "dev": true - }, - "yargs": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", - "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.1" - } - }, - "yargs-parser": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", - "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", - "dev": true, - "requires": { - "camelcase": "^3.0.0", - "object.assign": "^4.1.0" - } - } - } - }, - "gulp-concat": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", - "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", - "dev": true, - "requires": { - "concat-with-sourcemaps": "^1.0.0", - "through2": "^2.0.0", - "vinyl": "^2.0.0" - } - }, - "gulp-iife": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/gulp-iife/-/gulp-iife-0.4.0.tgz", - "integrity": "sha512-2XPPYEsCi7sfJyu6LhFWynxgc5cHylHKeGqQo3vp2LWViKm/2eJlsMWX9WvKVzoLkyTf52PwEW0d0X3By+sdFQ==", - "dev": true, - "requires": { - "lodash": "^4.17.11", - "source-map": "^0.5.3", - "through2": "^2.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - } - }, - "gulp-rename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", - "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", - "dev": true - }, - "gulp-sass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", - "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", - "dev": true, - "requires": { - "chalk": "^4.1.1", - "lodash": "^4.17.20", - "plugin-error": "^1.0.1", - "replace-ext": "^2.0.0", - "strip-ansi": "^6.0.0", - "transfob": "^1.0.0", - "vinyl-sourcemaps-apply": "^0.2.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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 - }, - "replace-ext": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", - "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", - "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" - } - } - } - }, - "gulp-sourcemaps": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", - "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", - "dev": true, - "requires": { - "@gulp-sourcemaps/identity-map": "^2.0.1", - "@gulp-sourcemaps/map-sources": "^1.0.0", - "acorn": "^6.4.1", - "convert-source-map": "^1.0.0", - "css": "^3.0.0", - "debug-fabulous": "^1.0.0", - "detect-newline": "^2.0.0", - "graceful-fs": "^4.0.0", - "source-map": "^0.6.0", - "strip-bom-string": "^1.0.0", - "through2": "^2.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 - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "gulp-uglify": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", - "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "extend-shallow": "^3.0.2", - "gulplog": "^1.0.0", - "has-gulplog": "^0.1.0", - "isobject": "^3.0.1", - "make-error-cause": "^1.1.1", - "safe-buffer": "^5.1.2", - "through2": "^2.0.0", - "uglify-js": "^3.0.5", - "vinyl-sourcemaps-apply": "^0.2.0" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - } - } - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true, - "requires": { - "glogg": "^1.0.0" - } - }, - "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-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "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-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true, - "requires": { - "sparkles": "^1.0.0" - } - }, - "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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": { - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "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" - } - }, - "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.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, - "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 - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "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": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", - "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" - } - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "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 - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "~0.5.3" - } - }, - "insert-module-globals": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", - "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", - "dev": true, - "requires": { - "acorn-node": "^1.5.2", - "combine-source-map": "^0.8.0", - "concat-stream": "^1.6.1", - "is-buffer": "^1.1.0", - "JSONStream": "^1.0.3", - "path-is-absolute": "^1.0.1", - "process": "~0.11.0", - "through2": "^2.0.0", - "undeclared-identifiers": "^1.1.2", - "xtend": "^4.0.0" - } - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "requires": { - "loose-envify": "^1.0.0" - } - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, - "is-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" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-descriptor": { - "version": "1.0.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" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "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-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negated-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", - "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0" - } - }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-valid-glob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", - "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", - "dev": true - }, - "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0" - } - }, - "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 - }, - "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 - }, - "isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "requires": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "jest-worker": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", - "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.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": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-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 - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", - "dev": true, - "requires": { - "array-includes": "^3.1.3", - "object.assign": "^4.1.2" - } - }, - "just-debounce": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", - "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", - "dev": true - }, - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - }, - "labeled-stream-splicer": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", - "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "stream-splicer": "^2.0.0" - } - }, - "last-run": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", - "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", - "dev": true, - "requires": { - "default-resolution": "^2.0.0", - "es6-weak-map": "^2.0.1" - } - }, - "lazystream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", - "dev": true, - "requires": { - "readable-stream": "^2.0.5" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "lead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", - "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", - "dev": true, - "requires": { - "flush-write-stream": "^1.0.2" - } - }, - "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" - } - }, - "liftoff": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", - "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^3.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - }, - "dependencies": { - "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" - } - } - } - }, - "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" - }, - "dependencies": { - "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" - } - } - } - }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "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.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", - "dev": true - }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "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" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "requires": { - "es5-ext": "~0.10.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" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-error-cause": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", - "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", - "dev": true, - "requires": { - "make-error": "^1.2.0" - } - }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true - }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } - }, - "matchdep": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", - "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", - "dev": true, - "requires": { - "findup-sync": "^2.0.0", - "micromatch": "^3.0.4", - "resolve": "^1.4.0", - "stack-trace": "0.0.10" - }, - "dependencies": { - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - } - }, - "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" - } - } - } - }, - "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" - } - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "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 - }, - "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" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - }, - "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 - } - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "dev": true - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dev": true, - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "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" - } - }, - "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" - } - } - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, - "module-deps": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", - "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", - "dev": true, - "requires": { - "browser-resolve": "^2.0.0", - "cached-path-relative": "^1.0.2", - "concat-stream": "~1.6.0", - "defined": "^1.0.0", - "detective": "^5.2.0", - "duplexer2": "^0.1.2", - "inherits": "^2.0.1", - "JSONStream": "^1.0.3", - "parents": "^1.0.0", - "readable-stream": "^2.0.2", - "resolve": "^1.4.0", - "stream-combiner2": "^1.1.1", - "subarg": "^1.0.0", - "through2": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "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-stdout": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", - "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", - "dev": true - }, - "nan": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", - "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", - "dev": true, - "optional": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - }, - "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 - } - } - }, - "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 - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "now-and-later": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", - "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", - "dev": true, - "requires": { - "once": "^1.3.2" - } - }, - "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" - } - }, - "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 - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "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.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", - "dev": true, - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "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.reduce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", - "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "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" - } - }, - "ordered-read-streams": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", - "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", - "dev": true, - "requires": { - "readable-stream": "^2.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-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "outpipe": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", - "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", - "dev": true, - "requires": { - "shell-quote": "^1.4.2" - } - }, - "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 - }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "~0.11.15" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, - "parse-json": { - "version": "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" - } - }, - "parse-node-version": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", - "dev": true - }, - "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 - }, - "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": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-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 - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, - "path-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" - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "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" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "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" - } - }, - "plugin-error": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", - "dev": true, - "requires": { - "ansi-colors": "^1.0.1", - "arr-diff": "^4.0.0", - "arr-union": "^3.1.0", - "extend-shallow": "^3.0.2" - }, - "dependencies": { - "ansi-colors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", - "dev": true, - "requires": { - "ansi-wrap": "^0.1.0" - } - }, - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - } - } - }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "dev": true, - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - }, - "dependencies": { - "picocolors": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", - "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "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 - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", - "dev": true - }, - "private": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", - "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "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 - }, - "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.8.1" - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "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" - } - }, - "react": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", - "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - } - }, - "react-dom": { - "version": "16.14.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", - "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.19.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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" - } - } - } - }, - "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" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "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" - } - }, - "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" - } - }, - "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": "9.0.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", - "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "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" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - } - } - }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", - "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "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.7.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", - "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", - "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 - } - } - }, - "remove-bom-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", - "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", - "dev": true, - "requires": { - "is-buffer": "^1.1.5", - "is-utf8": "^0.2.1" - } - }, - "remove-bom-stream": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", - "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", - "dev": true, - "requires": { - "remove-bom-buffer": "^3.0.0", - "safe-buffer": "^5.1.0", - "through2": "^2.0.3" - } - }, - "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.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "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 - }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, - "replace-homedir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", - "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1", - "is-absolute": "^1.0.0", - "remove-trailing-separator": "^1.1.0" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.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": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "resolve-options": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", - "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", - "dev": true, - "requires": { - "value-or-function": "^3.0.0" - } - }, - "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 - }, - "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 - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "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 - }, - "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 - }, - "sass": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", - "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "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" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "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" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - } - } - }, - "scheduler": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", - "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "semver-greatest-satisfied-range": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", - "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", - "dev": true, - "requires": { - "sver-compat": "^1.5.0" - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "set-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": { - "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" - } - } - } - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - }, - "dependencies": { - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - } - } - }, - "shasum-object": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", - "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", - "dev": true, - "requires": { - "fast-safe-stringify": "^2.0.7" - } - }, - "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 - }, - "shell-quote": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", - "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", - "dev": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - }, - "source-map-resolve": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", - "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0" - } - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "source-map-url": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "dev": true - }, - "sparkles": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", - "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", - "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.11", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", - "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", - "dev": true - }, - "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" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - } - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "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" - } - }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - } - } - } - }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.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" - } - } - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "~0.1.0", - "readable-stream": "^2.0.2" - } - }, - "stream-exhaust": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", - "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", - "dev": true - }, - "stream-http": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - }, - "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" - } - } - } - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", - "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.2" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "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-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", - "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-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 - }, - "subarg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", - "dev": true, - "requires": { - "minimist": "^1.1.0" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "sver-compat": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", - "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", - "dev": true, - "requires": { - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" - } - }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "^1.2.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - } - }, - "terser-webpack-plugin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", - "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", - "dev": true, - "requires": { - "jest-worker": "^27.0.6", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "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 - }, - "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" - } - }, - "through2-filter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", - "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", - "dev": true, - "requires": { - "through2": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "~0.11.0" - } - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "to-absolute-glob": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", - "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "is-negated-glob": "^1.0.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "dependencies": { - "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" - } - }, - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - }, - "is-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" - } - } - } - }, - "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" - } - }, - "to-through": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", - "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", - "dev": true, - "requires": { - "through2": "^2.0.3" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "transfob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", - "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", - "dev": true - }, - "tsconfig-paths": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", - "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tty-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", - "dev": true - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-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" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "uglify-js": { - "version": "3.14.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", - "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", - "dev": true - }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - } - }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, - "undeclared-identifiers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", - "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", - "dev": true, - "requires": { - "acorn-node": "^1.3.0", - "dash-ast": "^1.0.0", - "get-assigned-identifiers": "^1.2.0", - "simple-concat": "^1.0.0", - "xtend": "^4.0.1" - } - }, - "undertaker": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", - "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", - "dev": true, - "requires": { - "arr-flatten": "^1.0.1", - "arr-map": "^2.0.0", - "bach": "^1.0.0", - "collection-map": "^1.0.0", - "es6-weak-map": "^2.0.1", - "fast-levenshtein": "^1.0.0", - "last-run": "^1.1.0", - "object.defaults": "^1.0.0", - "object.reduce": "^1.0.0", - "undertaker-registry": "^1.0.0" - }, - "dependencies": { - "fast-levenshtein": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", - "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", - "dev": true - } - } - }, - "undertaker-registry": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", - "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - } - }, - "unique-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", - "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", - "dev": true, - "requires": { - "json-stable-stringify-without-jsonify": "^1.0.1", - "through2-filter": "^3.0.0" - } - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - }, - "dependencies": { - "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 - } - } - }, - "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 - } - } - }, - "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.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "v8flags": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", - "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", - "dev": true, - "requires": { - "homedir-polyfill": "^1.0.1" - } - }, - "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" - } - }, - "value-or-function": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", - "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", - "dev": true - }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, - "vinyl-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", - "integrity": "sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78=", - "dev": true, - "requires": { - "bl": "^1.2.1", - "through2": "^2.0.3" - } - }, - "vinyl-fs": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", - "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", - "dev": true, - "requires": { - "fs-mkdirp-stream": "^1.0.0", - "glob-stream": "^6.1.0", - "graceful-fs": "^4.0.0", - "is-valid-glob": "^1.0.0", - "lazystream": "^1.0.0", - "lead": "^1.0.0", - "object.assign": "^4.0.4", - "pumpify": "^1.3.5", - "readable-stream": "^2.3.3", - "remove-bom-buffer": "^3.0.0", - "remove-bom-stream": "^1.2.0", - "resolve-options": "^1.1.0", - "through2": "^2.0.0", - "to-through": "^2.0.0", - "value-or-function": "^3.0.0", - "vinyl": "^2.0.0", - "vinyl-sourcemap": "^1.1.0" - } - }, - "vinyl-source-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", - "integrity": "sha1-84pa+53R6Ttl1VBGmsYYKsT1S44=", - "dev": true, - "requires": { - "through2": "^2.0.3", - "vinyl": "^2.1.0" - } - }, - "vinyl-sourcemap": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", - "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", - "dev": true, - "requires": { - "append-buffer": "^1.0.2", - "convert-source-map": "^1.5.0", - "graceful-fs": "^4.1.6", - "normalize-path": "^2.1.1", - "now-and-later": "^2.0.0", - "remove-bom-buffer": "^3.0.0", - "vinyl": "^2.0.0" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "vinyl-sourcemaps-apply": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", - "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", - "dev": true, - "requires": { - "source-map": "^0.5.1" - } - }, - "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 - }, - "watchify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", - "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", - "dev": true, - "requires": { - "anymatch": "^3.1.0", - "browserify": "^17.0.0", - "chokidar": "^3.4.0", - "defined": "^1.0.0", - "outpipe": "^1.1.0", - "through2": "^4.0.2", - "xtend": "^4.0.2" - }, - "dependencies": { - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "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" - } - }, - "chokidar": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "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" - } - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.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" - } - }, - "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" - } - } - } - }, - "watchpack": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", - "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "webpack": { - "version": "5.64.4", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.4.tgz", - "integrity": "sha512-LWhqfKjCLoYJLKJY8wk2C3h77i8VyHowG3qYNZiIqD6D0ZS40439S/KVuc/PY48jp2yQmy0mhMknq8cys4jFMw==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.3", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.0", - "webpack-sources": "^3.2.2" - }, - "dependencies": { - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-cli": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", - "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.0", - "@webpack-cli/info": "^1.4.0", - "@webpack-cli/serve": "^1.6.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "execa": "^5.0.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", - "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", - "dev": true - }, - "whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.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" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "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 - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "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": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yargs": { - "version": "17.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", - "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", - "dev": true - } - } + "name": "lib-sass", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "lib-sass", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "isomorphic-fetch": "^3.0", + "prop-types": "^15.6.2", + "react": "^16.5.2", + "react-dom": "^16.5.2" + }, + "devDependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "babel-loader": "^8.2.3", + "babel-preset-env": "^1.7.0", + "babelify": "^10.0.0", + "browserify": "^17.0.0", + "eslint": "^8.3.0", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-react": "^7.27.1", + "gulp": "^4.0.2", + "gulp-babel": "^8.0.0", + "gulp-concat": "2.6.1", + "gulp-iife": "^0.4.0", + "gulp-rename": "^2.0.0", + "gulp-sass": "^5.0.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-uglify": "^3.0.2", + "lodash": "^4.17.21", + "sass": "^1.44.0", + "vinyl-buffer": "^1.0.1", + "vinyl-source-stream": "^2.0.0", + "watchify": "^4.0.0", + "webpack": "^5.64.4", + "webpack-cli": "^4.9.1", + "yargs": "^17.3.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz", + "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==", + "dev": true, + "dependencies": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", + "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", + "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", + "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", + "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", + "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", + "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", + "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", + "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", + "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", + "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", + "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", + "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", + "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", + "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", + "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", + "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", + "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", + "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", + "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", + "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", + "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", + "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", + "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", + "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", + "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", + "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", + "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", + "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", + "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", + "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", + "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", + "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", + "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", + "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", + "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", + "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", + "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", + "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", + "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", + "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", + "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", + "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", + "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", + "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", + "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", + "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", + "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", + "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", + "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", + "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", + "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", + "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", + "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-react-jsx-development": "^7.16.0", + "@babel/plugin-transform-react-pure-annotations": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + }, + "node_modules/@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@types/eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webpack-cli/configtest": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", + "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", + "dev": true, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x", + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/info": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", + "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", + "dev": true, + "dependencies": { + "envinfo": "^7.7.3" + }, + "peerDependencies": { + "webpack-cli": "4.x.x" + } + }, + "node_modules/@webpack-cli/serve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", + "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", + "dev": true, + "peerDependencies": { + "webpack-cli": "4.x.x" + }, + "peerDependenciesMeta": { + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/babel-code-frame/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-code-frame/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex/node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-env/node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/babel-preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/babel-traverse/node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-traverse/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "dependencies": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001283", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", + "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-deep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "dev": true + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/concat-with-sourcemaps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.19.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.2.tgz", + "integrity": "sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.18.1", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/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, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/debug-fabulous/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.8.tgz", + "integrity": "sha512-Cu5+dbg55+1E3ohlsa8HT0s4b8D0gBewXEGG8s5wBl8ynWv60VuvYW25GpsOeTVXpulhyU/U8JYZH+yxASSJBQ==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/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, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true, + "bin": { + "envinfo": "dist/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es5-ext/node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-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, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.1.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/eslint-plugin-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", + "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-scope/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", + "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", + "dev": true, + "dependencies": { + "acorn": "^8.6.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/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, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dev": true, + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-babel": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", + "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", + "dev": true, + "dependencies": { + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/gulp-cli/node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-cli/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/gulp-cli/node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/gulp-cli/node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "dependencies": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-iife": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/gulp-iife/-/gulp-iife-0.4.0.tgz", + "integrity": "sha512-2XPPYEsCi7sfJyu6LhFWynxgc5cHylHKeGqQo3vp2LWViKm/2eJlsMWX9WvKVzoLkyTf52PwEW0d0X3By+sdFQ==", + "dev": true, + "dependencies": { + "lodash": "^4.17.11", + "source-map": "^0.5.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + } + }, + "node_modules/gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", + "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.1", + "lodash": "^4.17.20", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.0", + "transfob": "^1.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/gulp-sass/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/gulp-sass/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/gulp-sass/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/gulp-sass/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/gulp-sass/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sass/node_modules/replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/gulp-sass/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-sourcemaps/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/gulp-sourcemaps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "node_modules/gulp-uglify/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-uglify/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-uglify/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/jest-worker": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-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 + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/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, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "dependencies": { + "make-error": "^1.2.0" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "dependencies": { + "shell-quote": "^1.4.2" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + }, + "peerDependencies": { + "react": "^16.14.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/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, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/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, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/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, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/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, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sass": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sass/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/sass/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/sass/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sass/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sass/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/sass/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", + "dev": true, + "dependencies": { + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/transfob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", + "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/type-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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker/node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", + "integrity": "sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78=", + "dev": true, + "dependencies": { + "bl": "^1.2.1", + "through2": "^2.0.3" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-source-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", + "integrity": "sha1-84pa+53R6Ttl1VBGmsYYKsT1S44=", + "dev": true, + "dependencies": { + "through2": "^2.0.3", + "vinyl": "^2.1.0" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "dependencies": { + "source-map": "^0.5.1" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/watchify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", + "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", + "dev": true, + "dependencies": { + "anymatch": "^3.1.0", + "browserify": "^17.0.0", + "chokidar": "^3.4.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^4.0.2", + "xtend": "^4.0.2" + }, + "bin": { + "watchify": "bin/cmd.js" + }, + "engines": { + "node": ">= 8.10.0" + } + }, + "node_modules/watchify/node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/watchify/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchify/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchify/node_modules/chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/watchify/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchify/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/watchify/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchify/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchify/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/watchify/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchify/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/watchify/node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/watchify/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/watchpack": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", + "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/webpack": { + "version": "5.64.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.4.tgz", + "integrity": "sha512-LWhqfKjCLoYJLKJY8wk2C3h77i8VyHowG3qYNZiIqD6D0ZS40439S/KVuc/PY48jp2yQmy0mhMknq8cys4jFMw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.0", + "webpack-sources": "^3.2.2" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-cli": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", + "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", + "dev": true, + "dependencies": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.0", + "@webpack-cli/info": "^1.4.0", + "@webpack-cli/serve": "^1.6.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "bin": { + "webpack-cli": "bin/cli.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "webpack": "4.x.x || 5.x.x" + }, + "peerDependenciesMeta": { + "@webpack-cli/generators": { + "optional": true + }, + "@webpack-cli/migrate": { + "optional": true + }, + "webpack-bundle-analyzer": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + } + } + }, + "node_modules/webpack-cli/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-cli/node_modules/interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/webpack-cli/node_modules/rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "dependencies": { + "resolve": "^1.9.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "node_modules/which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", + "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.16.0" + } + }, + "@babel/compat-data": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", + "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", + "dev": true + }, + "@babel/core": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.0.tgz", + "integrity": "sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helpers": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + } + }, + "@babel/eslint-parser": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.16.3.tgz", + "integrity": "sha512-iB4ElZT0jAt7PKVaeVulOECdGe6UnmA/O0P9jlF5g5GBOwDVbna8AXhHRu4s27xQf6OkveyA8iTDv1jHdDejgQ==", + "dev": true, + "requires": { + "eslint-scope": "^5.1.1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + } + }, + "@babel/generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.0.tgz", + "integrity": "sha512-RR8hUCfRQn9j9RPKEVXo9LiwoxLPYn6hNZlvUOR8tSnaxlD0p0+la00ZP9/SnRt6HchKr+X0fO2r8vrETiJGew==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.0.tgz", + "integrity": "sha512-ItmYF9vR4zA8cByDocY05o0LGUkp1zhbTQOH1NFyl5xXEqlTJQCEJjieriw+aFpxo16swMxUnUiKS7a/r4vtHg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.0.tgz", + "integrity": "sha512-9KuleLT0e77wFUku6TUkqZzCEymBdtuQQ27MhEKzf9UOOJu3cYj98kyaDAzxpC7lV6DGiZFuC8XqDsq8/Kl6aQ==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", + "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-validator-option": "^7.14.5", + "browserslist": "^4.17.5", + "semver": "^6.3.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.16.0.tgz", + "integrity": "sha512-XLwWvqEaq19zFlF5PTgOod4bUA+XbkR4WLQBct1bkzmxJGB0ZEJaoKF4c8cgH9oBtCDuYJ8BP5NB9uFiEgO5QA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.0.tgz", + "integrity": "sha512-3DyG0zAFAZKcOp7aVr33ddwkxJ0Z0Jr5V99y3I690eYLpukJsJvAbzTy1ewoCqsML8SbIrjH14Jc/nSQ4TvNPA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", + "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.0.tgz", + "integrity": "sha512-Hk2SLxC9ZbcOhLpg/yMznzJ11W++lg5GMbxt1ev6TXUiJB0N42KPC+7w8a+eWGuqDnUYuwStJoZHM7RgmIOaGQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", + "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", + "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", + "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.16.0.tgz", + "integrity": "sha512-bsjlBFPuWT6IWhl28EdrQ+gTvSvj5tqVP5Xeftp07SEuz5pLnsXZuDkDD3Rfcxy0IsHmbZ+7B2/9SHzxO0T+sQ==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", + "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.0.tgz", + "integrity": "sha512-My4cr9ATcaBbmaEa8M0dZNA74cfI6gitvUAskgDtAFmAqyFKDSHQo5YstxPbN+lzHl2D9l/YOEFqb2mtUh4gfA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-simple-access": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/helper-validator-identifier": "^7.15.7", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.0.tgz", + "integrity": "sha512-SuI467Gi2V8fkofm2JPnZzB/SUuXoJA5zXe/xzyPP2M04686RzFKFHPK6HDVN6JvWBIEW8tt9hPR7fXdn2Lgpw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", + "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.4.tgz", + "integrity": "sha512-vGERmmhR+s7eH5Y/cp8PCVzj4XEjerq8jooMfxFdA5xVtAk9Sh4AQsrWgiErUEBjtGrBtOFKDUcWQFW4/dFwMA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-wrap-function": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.0.tgz", + "integrity": "sha512-TQxuQfSCdoha7cpRNJvfaYxxxzmbxXw/+6cS7V02eeDYyhxderSoMVALvwupA54/pZcOTtVeJ0xccp1nGWladA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", + "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", + "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.0" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", + "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.0.tgz", + "integrity": "sha512-VVMGzYY3vkWgCJML+qVLvGIam902mJW0FvT7Avj1zEe0Gn7D93aWdLblYARTxEw+6DhZmtzhBM2zv0ekE5zg1g==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/helpers": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.3.tgz", + "integrity": "sha512-Xn8IhDlBPhvYTvgewPKawhADichOsbkZuzN7qz2BusOM0brChsyXMDJvldWaYMMUNiCQdQzNEioXTp3sC8Nt8w==", + "dev": true, + "requires": { + "@babel/template": "^7.16.0", + "@babel/traverse": "^7.16.3", + "@babel/types": "^7.16.0" + } + }, + "@babel/highlight": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", + "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.4.tgz", + "integrity": "sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng==", + "dev": true + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.16.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.2.tgz", + "integrity": "sha512-h37CvpLSf8gb2lIJ2CgC3t+EjFbi0t8qS7LCS1xcJIlEXE4czlofwaW7W1HA8zpgOCzI9C1nmoqNR1zWkk0pQg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.0.tgz", + "integrity": "sha512-4tcFwwicpWTrpl9qjf7UsoosaArgImF85AxqCRZlgc3IQDvkUHjJpruXAL58Wmj+T6fypWTC/BakfEkwIL/pwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.4.tgz", + "integrity": "sha512-/CUekqaAaZCQHleSK/9HajvcD/zdnJiKRiuUFq8ITE+0HsPzquf53cpFiqAwl/UfmJbR6n5uGPQSPdrmKOvHHg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.4", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.0.tgz", + "integrity": "sha512-mCF3HcuZSY9Fcx56Lbn+CGdT44ioBMMvjNVldpKtj8tpniETdLjnxdHI1+sDWXIM1nNt+EanJOZ3IG9lzVjs7A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.16.0.tgz", + "integrity": "sha512-mAy3sdcY9sKAkf3lQbDiv3olOfiLqI51c9DR9b19uMoR2Z6r5pmGl7dfNFqEvqOyqbf1ta4lknK4gc5PJn3mfA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.0.tgz", + "integrity": "sha512-QGSA6ExWk95jFQgwz5GQ2Dr95cf7eI7TKutIXXTb7B1gCLTCz5hTjFTQGfLFBBiC5WSNi7udNwWsqbbMh1c4yQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.0.tgz", + "integrity": "sha512-CjI4nxM/D+5wCnhD11MHB1AwRSAYeDT+h8gCdcVJZ/OK7+wRzFsf7PFPWVpVpNRkHMmMkQWAHpTq+15IXQ1diA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.0.tgz", + "integrity": "sha512-kouIPuiv8mSi5JkEhzApg5Gn6hFyKPnlkO0a9YSzqRurH8wYzSlf6RJdzluAsbqecdW5pBvDJDfyDIUR/vLxvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.0.tgz", + "integrity": "sha512-pbW0fE30sVTYXXm9lpVQQ/Vc+iTeQKiXlaNRZPPN2A2VdlWyAtsUrsQ3xydSlDW00TFMK7a8m3cDTkBF5WnV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.0.tgz", + "integrity": "sha512-3bnHA8CAFm7cG93v8loghDYyQ8r97Qydf63BeYiGgYbjKKB/XP53W15wfRC7dvKfoiJ34f6Rbyyx2btExc8XsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.0.tgz", + "integrity": "sha512-FAhE2I6mjispy+vwwd6xWPyEx3NYFS13pikDBWUAFGZvq6POGs5eNchw8+1CYoEgBl9n11I3NkzD7ghn25PQ9Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.16.0.tgz", + "integrity": "sha512-LU/+jp89efe5HuWJLmMmFG0+xbz+I2rSI7iLc1AlaeSMDMOGzWlc5yJrMN1d04osXN4sSfpo4O+azkBNBes0jg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.0", + "@babel/helper-compilation-targets": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.16.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.0.tgz", + "integrity": "sha512-kicDo0A/5J0nrsCPbn89mTG3Bm4XgYi0CZtvex9Oyw7gGZE3HXGD0zpQNH+mo+tEfbo8wbmMvJftOwpmPy7aVw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.0.tgz", + "integrity": "sha512-Y4rFpkZODfHrVo70Uaj6cC1JJOt3Pp0MdWSwIKtb8z1/lsjl9AmnB7ErRFV+QNGIfcY1Eruc2UMx5KaRnXjMyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.0.tgz", + "integrity": "sha512-IvHmcTHDFztQGnn6aWq4t12QaBXTKr1whF/dgp9kz84X6GUcwq9utj7z2wFCUfeOup/QKnOlt2k0zxkGFx9ubg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.0.tgz", + "integrity": "sha512-3jQUr/HBbMVZmi72LpjQwlZ55i1queL8KcDTQEkAHihttJnAPrcvG9ZNXIfsd2ugpizZo595egYV6xy+pv4Ofw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-create-class-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.0.tgz", + "integrity": "sha512-ti7IdM54NXv29cA4+bNNKEMS4jLMCbJgl+Drv+FgYy0erJLAxNAIXcNjNjrRZEcWq0xJHsNVwQezskMFpF8N9g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.0.tgz", + "integrity": "sha512-8zv2+xiPHwly31RK4RmnEYY5zziuF3O7W2kIDW+07ewWDh6Oi0dRq8kwvulRkFgt6DB97RlKs5c1y068iPlCUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.0.tgz", + "integrity": "sha512-vIFb5250Rbh7roWARvCLvIJ/PtAU5Lhv7BtZ1u24COwpI9Ypjsh+bZcKk6rlIyalK+r0jOc1XQ8I4ovNxNrWrA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.0.tgz", + "integrity": "sha512-PbIr7G9kR8tdH6g8Wouir5uVjklETk91GMVSUq+VaOgiinbCkBP6Q7NN/suM/QutZkMJMvcyAriogcYAdhg8Gw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-remap-async-to-generator": "^7.16.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.0.tgz", + "integrity": "sha512-V14As3haUOP4ZWrLJ3VVx5rCnrYhMSHN/jX7z6FAt5hjRkLsb0snPCmJwSOML5oxkKO4FNoNv7V5hw/y2bjuvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.0.tgz", + "integrity": "sha512-27n3l67/R3UrXfizlvHGuTwsRIFyce3D/6a37GRxn28iyTPvNXaW4XvznexRh1zUNLPjbLL22Id0XQElV94ruw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.0.tgz", + "integrity": "sha512-HUxMvy6GtAdd+GKBNYDWCIA776byUQH8zjnfjxwT1P1ARv/wFu8eBDpmXQcLS/IwRtrxIReGiplOwMeyO7nsDQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-optimise-call-expression": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.0.tgz", + "integrity": "sha512-63l1dRXday6S8V3WFY5mXJwcRAnPYxvFfTlt67bwV1rTyVTM5zrp0DBBb13Kl7+ehkCVwIZPumPpFP/4u70+Tw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.16.0.tgz", + "integrity": "sha512-Q7tBUwjxLTsHEoqktemHBMtb3NYwyJPTJdM+wDwb0g8PZ3kQUIzNvwD5lPaqW/p54TXBc/MXZu9Jr7tbUEUM8Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.0.tgz", + "integrity": "sha512-FXlDZfQeLILfJlC6I1qyEwcHK5UpRCFkaoVyA1nk9A1L1Yu583YO4un2KsLBsu3IJb4CUbctZks8tD9xPQubLw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.0.tgz", + "integrity": "sha512-LIe2kcHKAZOJDNxujvmp6z3mfN6V9lJxubU4fJIGoQCkKe3Ec2OcbdlYP+vW++4MpxwG0d1wSDOJtQW5kLnkZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.0.tgz", + "integrity": "sha512-OwYEvzFI38hXklsrbNivzpO3fh87skzx8Pnqi4LoSYeav0xHlueSoCJrSgTPfnbyzopo5b3YVAJkFIcUpK2wsw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.0.tgz", + "integrity": "sha512-5QKUw2kO+GVmKr2wMYSATCTTnHyscl6sxFRAY+rvN7h7WB0lcG0o4NoV6ZQU32OZGVsYUsfLGgPQpDFdkfjlJQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.0.tgz", + "integrity": "sha512-lBzMle9jcOXtSOXUpc7tvvTpENu/NuekNJVova5lCCWCV9/U1ho2HH2y0p6mBg8fPm/syEAbfaaemYGOHCY3mg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.0.tgz", + "integrity": "sha512-gQDlsSF1iv9RU04clgXqRjrPyyoJMTclFt3K1cjLmTKikc0s/6vE3hlDeEVC71wLTRu72Fq7650kABrdTc2wMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.0.tgz", + "integrity": "sha512-WRpw5HL4Jhnxw8QARzRvwojp9MIE7Tdk3ez6vRyUk1MwgjJN0aNpRoXainLR5SgxmoXx/vsXGZ6OthP6t/RbUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.0.tgz", + "integrity": "sha512-rWFhWbCJ9Wdmzln1NmSCqn7P0RAD+ogXG/bd9Kg5c7PKWkJtkiXmYsMBeXjDlzHpVTJ4I/hnjs45zX4dEv81xw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.16.0.tgz", + "integrity": "sha512-Dzi+NWqyEotgzk/sb7kgQPJQf7AJkQBWsVp1N6JWc1lBVo0vkElUnGdr1PzUBmfsCCN5OOFya3RtpeHk15oLKQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-simple-access": "^7.16.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.0.tgz", + "integrity": "sha512-yuGBaHS3lF1m/5R+6fjIke64ii5luRUg97N2wr+z1sF0V+sNSXPxXDdEEL/iYLszsN5VKxVB1IPfEqhzVpiqvg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-identifier": "^7.15.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.0.tgz", + "integrity": "sha512-nx4f6no57himWiHhxDM5pjwhae5vLpTK2zCnDH8+wNLJy0TVER/LJRHl2bkt6w9Aad2sPD5iNNoUpY3X9sTGDg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.0.tgz", + "integrity": "sha512-LogN88uO+7EhxWc8WZuQ8vxdSyVGxhkh8WTC3tzlT8LccMuQdA81e9SGV6zY7kY2LjDhhDOFdQVxdGwPyBCnvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.0.tgz", + "integrity": "sha512-fhjrDEYv2DBsGN/P6rlqakwRwIp7rBGLPbrKxwh7oVt5NNkIhZVOY2GRV+ULLsQri1bDqwDWnU3vhlmx5B2aCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.0.tgz", + "integrity": "sha512-fds+puedQHn4cPLshoHcR1DTMN0q1V9ou0mUjm8whx9pGcNvDrVVrgw+KJzzCaiTdaYhldtrUps8DWVMgrSEyg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-replace-supers": "^7.16.0" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.3.tgz", + "integrity": "sha512-3MaDpJrOXT1MZ/WCmkOFo7EtmVVC8H4EUZVrHvFOsmwkk4lOjQj8rzv8JKUZV4YoQKeoIgk07GO+acPU9IMu/w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.0.tgz", + "integrity": "sha512-XLldD4V8+pOqX2hwfWhgwXzGdnDOThxaNTgqagOcpBgIxbUvpgU2FMvo5E1RyHbk756WYgdbS0T8y0Cj9FKkWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.0.tgz", + "integrity": "sha512-FJFdJAqaCpndL+pIf0aeD/qlQwT7QXOvR6Cc8JPvNhKJBi2zc/DPc4g05Y3fbD/0iWAMQFGij4+Xw+4L/BMpTg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.0.tgz", + "integrity": "sha512-rqDgIbukZ44pqq7NIRPGPGNklshPkvlmvqjdx3OZcGPk4zGIenYkxDTvl3LsSL8gqcc3ZzGmXPE6hR/u/voNOw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-module-imports": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/plugin-syntax-jsx": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.0.tgz", + "integrity": "sha512-qq65iSqBRq0Hr3wq57YG2AmW0H6wgTnIzpffTphrUWUgLCOK+zf1f7G0vuOiXrp7dU1qq+fQBoqZ3wCDAkhFzw==", + "dev": true, + "requires": { + "@babel/plugin-transform-react-jsx": "^7.16.0" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.0.tgz", + "integrity": "sha512-NC/Bj2MG+t8Ef5Pdpo34Ay74X4Rt804h5y81PwOpfPtmAK3i6CizmQqwyBQzIepz1Yt8wNr2Z2L7Lu3qBMfZMA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.0.tgz", + "integrity": "sha512-JAvGxgKuwS2PihiSFaDrp94XOzzTUeDeOQlcKzVAyaPap7BnZXK/lvMDiubkPTdotPKOIZq9xWXWnggUMYiExg==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.0.tgz", + "integrity": "sha512-Dgs8NNCehHSvXdhEhln8u/TtJxfVwGYCgP2OOr5Z3Ar+B+zXicEOKNTyc+eca2cuEOMtjW6m9P9ijOt8QdqWkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.0.tgz", + "integrity": "sha512-iVb1mTcD8fuhSv3k99+5tlXu5N0v8/DPm2mO3WACLG6al1CGZH7v09HJyUb1TtYl/Z+KrM6pHSIJdZxP5A+xow==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.0.tgz", + "integrity": "sha512-Ao4MSYRaLAQczZVp9/7E7QHsCuK92yHRrmVNRe/SlEJjhzivq0BSn8mEraimL8wizHZ3fuaHxKH0iwzI13GyGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.0.tgz", + "integrity": "sha512-/ntT2NljR9foobKk4E/YyOSwcGUXtYWv5tinMK/3RkypyNBNdhHUaq6Orw5DWq9ZcNlS03BIlEALFeQgeVAo4Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.0.tgz", + "integrity": "sha512-Rd4Ic89hA/f7xUSJQk5PnC+4so50vBoBfxjdQAdvngwidM8jYIBVxBZ/sARxD4e0yMXRbJVDrYf7dyRtIIKT6Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.0.tgz", + "integrity": "sha512-++V2L8Bdf4vcaHi2raILnptTBjGEFxn5315YU+e8+EqXIucA+q349qWngCLpUYqqv233suJ6NOienIVUpS9cqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.0.tgz", + "integrity": "sha512-VFi4dhgJM7Bpk8lRc5CMaRGlKZ29W9C3geZjt9beuzSUrlJxsNwX7ReLwaL6WEvsOf2EQkyIJEPtF8EXjB/g2A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.0.tgz", + "integrity": "sha512-jHLK4LxhHjvCeZDWyA9c+P9XH1sOxRd1RO9xMtDVRAOND/PczPqizEtVdx4TQF/wyPaewqpT+tgQFYMnN/P94A==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.16.0", + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/preset-env": { + "version": "7.16.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.4.tgz", + "integrity": "sha512-v0QtNd81v/xKj4gNKeuAerQ/azeNn/G1B1qMLeXOcV8+4TWlD2j3NV1u8q29SDFBXx/NBq5kyEAO+0mpRgacjA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.16.4", + "@babel/helper-compilation-targets": "^7.16.3", + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.2", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-async-generator-functions": "^7.16.4", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-class-static-block": "^7.16.0", + "@babel/plugin-proposal-dynamic-import": "^7.16.0", + "@babel/plugin-proposal-export-namespace-from": "^7.16.0", + "@babel/plugin-proposal-json-strings": "^7.16.0", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.0", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-object-rest-spread": "^7.16.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-proposal-private-property-in-object": "^7.16.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.0", + "@babel/plugin-transform-async-to-generator": "^7.16.0", + "@babel/plugin-transform-block-scoped-functions": "^7.16.0", + "@babel/plugin-transform-block-scoping": "^7.16.0", + "@babel/plugin-transform-classes": "^7.16.0", + "@babel/plugin-transform-computed-properties": "^7.16.0", + "@babel/plugin-transform-destructuring": "^7.16.0", + "@babel/plugin-transform-dotall-regex": "^7.16.0", + "@babel/plugin-transform-duplicate-keys": "^7.16.0", + "@babel/plugin-transform-exponentiation-operator": "^7.16.0", + "@babel/plugin-transform-for-of": "^7.16.0", + "@babel/plugin-transform-function-name": "^7.16.0", + "@babel/plugin-transform-literals": "^7.16.0", + "@babel/plugin-transform-member-expression-literals": "^7.16.0", + "@babel/plugin-transform-modules-amd": "^7.16.0", + "@babel/plugin-transform-modules-commonjs": "^7.16.0", + "@babel/plugin-transform-modules-systemjs": "^7.16.0", + "@babel/plugin-transform-modules-umd": "^7.16.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.0", + "@babel/plugin-transform-new-target": "^7.16.0", + "@babel/plugin-transform-object-super": "^7.16.0", + "@babel/plugin-transform-parameters": "^7.16.3", + "@babel/plugin-transform-property-literals": "^7.16.0", + "@babel/plugin-transform-regenerator": "^7.16.0", + "@babel/plugin-transform-reserved-words": "^7.16.0", + "@babel/plugin-transform-shorthand-properties": "^7.16.0", + "@babel/plugin-transform-spread": "^7.16.0", + "@babel/plugin-transform-sticky-regex": "^7.16.0", + "@babel/plugin-transform-template-literals": "^7.16.0", + "@babel/plugin-transform-typeof-symbol": "^7.16.0", + "@babel/plugin-transform-unicode-escapes": "^7.16.0", + "@babel/plugin-transform-unicode-regex": "^7.16.0", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.0", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.4.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.19.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.0.tgz", + "integrity": "sha512-d31IFW2bLRB28uL1WoElyro8RH5l6531XfxMtCeCmp6RVAF1uTfxxUA0LH1tXl+psZdwfmIbwoG4U5VwgbhtLw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5", + "@babel/helper-validator-option": "^7.14.5", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-react-jsx": "^7.16.0", + "@babel/plugin-transform-react-jsx-development": "^7.16.0", + "@babel/plugin-transform-react-pure-annotations": "^7.16.0" + } + }, + "@babel/runtime": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.3.tgz", + "integrity": "sha512-WBwekcqacdY2e9AF/Q7WLFUWmdJGJTkbjqTjoMDgXkVZ3ZRUvOPsLb5KdwISoQVsbP+DQzVZW4Zhci0DvpbNTQ==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", + "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/parser": "^7.16.0", + "@babel/types": "^7.16.0" + } + }, + "@babel/traverse": { + "version": "7.16.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.3.tgz", + "integrity": "sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.0", + "@babel/generator": "^7.16.0", + "@babel/helper-function-name": "^7.16.0", + "@babel/helper-hoist-variables": "^7.16.0", + "@babel/helper-split-export-declaration": "^7.16.0", + "@babel/parser": "^7.16.3", + "@babel/types": "^7.16.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", + "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.15.7", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true + }, + "@eslint/eslintrc": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.4.tgz", + "integrity": "sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.0.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + } + } + }, + "@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "requires": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.6.0.tgz", + "integrity": "sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@types/eslint": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.0.tgz", + "integrity": "sha512-74hbvsnc+7TEDa1z5YLSe4/q8hGYB3USNvCuzHUJrjPV6hXaq8IXcngCrHkuvFt0+8rFz7xYXrHgNayIX0UZvQ==", + "dev": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "dev": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.50", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", + "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.9", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", + "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/node": { + "version": "16.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.11.tgz", + "integrity": "sha512-KB0sixD67CeecHC33MYn+eYARkqTheIRNuu97y2XMjR7Wu3XibO1vaY6VBV6O/a89SPI81cEUIYT87UqUWlZNw==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webpack-cli/configtest": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.0.tgz", + "integrity": "sha512-ttOkEkoalEHa7RaFYpM0ErK1xc4twg3Am9hfHhL7MVqlHebnkYd2wuI/ZqTDj0cVzZho6PdinY0phFZV3O0Mzg==", + "dev": true, + "requires": {} + }, + "@webpack-cli/info": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.0.tgz", + "integrity": "sha512-F6b+Man0rwE4n0409FyAJHStYA5OIZERxmnUfLVwv0mc0V1wLad3V7jqRlMkgKBeAq07jUvglacNaa6g9lOpuw==", + "dev": true, + "requires": { + "envinfo": "^7.7.3" + } + }, + "@webpack-cli/serve": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.0.tgz", + "integrity": "sha512-ZkVeqEmRpBV2GHvjjUZqEai2PpUbuq8Bqd//vEYsp63J8WyexI8ppCqVS3Zs0QADf6aWuPdU+0XsPI647PVlQA==", + "dev": true, + "requires": {} + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "acorn": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", + "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + } + } + }, + "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 + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "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-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "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-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "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-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "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-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "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-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-includes": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", + "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + } + }, + "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.5", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", + "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "array.prototype.flatmap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", + "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "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 + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "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-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, + "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 + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "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" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-loader": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", + "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.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-polyfill-corejs2": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", + "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.0", + "semver": "^6.1.1" + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.4.0.tgz", + "integrity": "sha512-YxFreYwUfglYKdLUGvIF2nJEsGwj+RhWSX/ije3D2vQPOXuyMLMtg/cCGMDpOA7Nd+MwlNdnGODbd2EwUZPlsw==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0", + "core-js-compat": "^3.18.0" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", + "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "dev": true, + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + } + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + }, + "dependencies": { + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "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" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "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 + } + } + }, + "babelify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-10.0.0.tgz", + "integrity": "sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg==", + "dev": true, + "requires": {} + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-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 + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "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, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz", + "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "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" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "requires": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + } + }, + "browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "requires": { + "resolve": "^1.17.0" + } + }, + "browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "requires": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "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" + } + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.18.1.tgz", + "integrity": "sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001280", + "electron-to-chromium": "^1.3.896", + "escalade": "^3.1.1", + "node-releases": "^2.0.1", + "picocolors": "^1.0.0" + } + }, + "buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "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" + } + }, + "cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001283", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz", + "integrity": "sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg==", + "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" + } + }, + "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": { + "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" + } + } + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "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" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + } + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "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 + } + } + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "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-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-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "colorette": { + "version": "2.0.16", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", + "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "dev": true + }, + "combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "dev": true, + "requires": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + }, + "dependencies": { + "convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "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 + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "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" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "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 + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "requires": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "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.19.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.19.2.tgz", + "integrity": "sha512-ObBY1W5vx/LFFMaL1P5Udo4Npib6fu+cMokeziWkA8Tns4FcDemKF5j9JvaI5JhdkW8EQJQGJN1EcrzmEwuAqQ==", + "dev": true, + "requires": { + "browserslist": "^4.18.1", + "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.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "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" + } + }, + "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" + } + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "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" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "requires": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + } + }, + "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" + } + }, + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "dev": true, + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "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" + } + } + } + }, + "electron-to-chromium": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.8.tgz", + "integrity": "sha512-Cu5+dbg55+1E3ohlsa8HT0s4b8D0gBewXEGG8s5wBl8ynWv60VuvYW25GpsOeTVXpulhyU/U8JYZH+yxASSJBQ==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "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" + } + }, + "enhanced-resolve": { + "version": "5.8.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz", + "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.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" + } + }, + "envinfo": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", + "dev": true + }, + "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.19.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", + "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.1", + "is-string": "^1.0.7", + "is-weakref": "^1.0.1", + "object-inspect": "^1.11.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + }, + "dependencies": { + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + } + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "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 + }, + "eslint": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.3.0.tgz", + "integrity": "sha512-aIay56Ph6RxOTC7xyr59Kt3ewX185SaGnAr8eWukoPLeriCrvGjvAubxuvaXOfsxhtwV5g0uBOsyhAom4qJdww==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.0.4", + "@humanwhocodes/config-array": "^0.6.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.0", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.1.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.2.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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 + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz", + "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + }, + "globals": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", + "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "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 + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "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" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-module-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", + "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "find-up": "^2.1.0", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "eslint-plugin-import": { + "version": "2.25.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", + "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.1", + "has": "^1.0.3", + "is-core-module": "^2.8.0", + "is-glob": "^4.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.5", + "resolve": "^1.20.0", + "tsconfig-paths": "^3.11.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "eslint-plugin-react": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", + "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flatmap": "^1.2.5", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.0.4", + "object.entries": "^1.1.5", + "object.fromentries": "^2.0.5", + "object.hasown": "^1.1.0", + "object.values": "^1.1.5", + "prop-types": "^15.7.2", + "resolve": "^2.0.0-next.3", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.6" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "resolve": { + "version": "2.0.0-next.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", + "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "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" + }, + "dependencies": { + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + } + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.1.0.tgz", + "integrity": "sha512-ZgYLvCS1wxOczBYGcQT9DDWgicXwJ4dbocr9uYN+/eresBAUuBu+O4WzB21ufQ/JqQT8gyp7hJ3z8SHii32mTQ==", + "dev": true, + "requires": { + "acorn": "^8.6.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^3.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz", + "integrity": "sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==", + "dev": true + } + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "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" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "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 + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "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" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "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" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "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" + } + }, + "ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dev": true, + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "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" + } + }, + "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" + } + } + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "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-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 + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", + "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "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" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "dependencies": { + "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" + } + } + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.4.tgz", + "integrity": "sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "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-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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 + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", + "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "dev": true + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + } + }, + "gulp-babel": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz", + "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==", + "dev": true, + "requires": { + "plugin-error": "^1.0.1", + "replace-ext": "^1.0.0", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } + }, + "gulp-concat": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz", + "integrity": "sha1-Yz0WyV2IUEYorQJmVmPO5aR5M1M=", + "dev": true, + "requires": { + "concat-with-sourcemaps": "^1.0.0", + "through2": "^2.0.0", + "vinyl": "^2.0.0" + } + }, + "gulp-iife": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/gulp-iife/-/gulp-iife-0.4.0.tgz", + "integrity": "sha512-2XPPYEsCi7sfJyu6LhFWynxgc5cHylHKeGqQo3vp2LWViKm/2eJlsMWX9WvKVzoLkyTf52PwEW0d0X3By+sdFQ==", + "dev": true, + "requires": { + "lodash": "^4.17.11", + "source-map": "^0.5.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + } + }, + "gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true + }, + "gulp-sass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-5.0.0.tgz", + "integrity": "sha512-J0aH0/2N4+2szGCeut0ktGHK0Wg8L9uWivuigrl7xv+nhxozBQRAKLrhnDDaTa3FeUWYtgT8w4RlgdhRy5v16w==", + "dev": true, + "requires": { + "chalk": "^4.1.1", + "lodash": "^4.17.20", + "plugin-error": "^1.0.1", + "replace-ext": "^2.0.0", + "strip-ansi": "^6.0.0", + "transfob": "^1.0.0", + "vinyl-sourcemaps-apply": "^0.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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 + }, + "replace-ext": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz", + "integrity": "sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==", + "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" + } + } + } + }, + "gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.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 + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "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-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "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-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "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": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "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" + } + }, + "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.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "dev": true + }, + "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 + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "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": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "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" + } + }, + "import-local": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", + "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "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 + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "dev": true, + "requires": { + "source-map": "~0.5.3" + } + }, + "insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "requires": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + } + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, + "is-core-module": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", + "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-descriptor": { + "version": "1.0.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" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "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-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-number-object": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", + "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", + "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "dev": true + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", + "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-weakref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", + "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "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 + }, + "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 + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "jest-worker": { + "version": "27.4.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.2.tgz", + "integrity": "sha512-0QMy/zPovLfUPyHuOuuU4E+kGACXXE84nRnq6lBVI9GJg5DCBiA97SATi+ZP8CpiJwEQy1oCPjRBf8AnLjN+Ag==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.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": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-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 + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "jsx-ast-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", + "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "dev": true, + "requires": { + "array-includes": "^3.1.3", + "object.assign": "^4.1.2" + } + }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "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" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "loader-runner": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", + "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "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.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "dev": true + }, + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "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" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "~0.10.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" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "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 + }, + "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" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + }, + "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 + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "dev": true + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dev": true, + "requires": { + "mime-db": "1.51.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "dev": true + }, + "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" + } + }, + "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" + } + } + } + }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "requires": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "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-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + }, + "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 + } + } + }, + "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 + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-releases": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", + "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "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" + } + }, + "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 + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", + "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "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.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.entries": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", + "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.fromentries": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", + "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.hasown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", + "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "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.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "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" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.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-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "outpipe": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/outpipe/-/outpipe-1.1.1.tgz", + "integrity": "sha1-UM+GFjZeh+Ax4ppeyTOaPaRyX6I=", + "dev": true, + "requires": { + "shell-quote": "^1.4.2" + } + }, + "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 + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "dev": true, + "requires": { + "path-platform": "~0.11.15" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "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" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "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 + }, + "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": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-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 + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-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" + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "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" + } + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "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" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "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 + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "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 + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "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" + } + }, + "react": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.14.0.tgz", + "integrity": "sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dom": { + "version": "16.14.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", + "integrity": "sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "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": "9.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-9.0.0.tgz", + "integrity": "sha512-3E12UeNSPfjrgwjkR81m5J7Aw/T55Tu7nUyZVQYCKEOs+2dkxEY+DpPtZzO4YruuiPb7NkYLVcyJC4+zCbk5pA==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "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" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "regexpu-core": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.8.0.tgz", + "integrity": "sha512-1F6bYsoYiz6is+oz70NWur2Vlh9KWtswuRuzJOfeYUrfPX2o8n74AnUVaOGDbUqVGO9fNHu48/pjJO4sNVwsOg==", + "dev": true, + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^9.0.0", + "regjsgen": "^0.5.2", + "regjsparser": "^0.7.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "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.7.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.7.0.tgz", + "integrity": "sha512-A4pcaORqmNMDVwUjWoTzuhwMGpP+NykpfqAsEgI1FSH/EzC7lrN5TMd+kN8YCovX+jMpu8eaqXgXPCa0g8FQNQ==", + "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 + } + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "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.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "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 + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.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": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "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 + }, + "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 + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "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 + }, + "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 + }, + "sass": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.44.0.tgz", + "integrity": "sha512-0hLREbHFXGQqls/K8X+koeP+ogFRPF4ZqetVB19b7Cst9Er8cOR0rc6RU7MaI4W1JmUShd1BPgPoeqmmgMMYFw==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "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" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "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" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "scheduler": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", + "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-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": { + "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" + } + } + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, + "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 + }, + "shell-quote": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", + "dev": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", + "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==", + "dev": true + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "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.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + } + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "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" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + } + } + }, + "stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.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" + } + } + } + }, + "stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "dev": true, + "requires": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + }, + "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" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string.prototype.matchall": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", + "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1", + "get-intrinsic": "^1.1.1", + "has-symbols": "^1.0.2", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.3.1", + "side-channel": "^1.0.4" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "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-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "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-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 + }, + "subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "dev": true, + "requires": { + "minimist": "^1.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "requires": { + "acorn-node": "^1.2.0" + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true + }, + "terser": { + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "dev": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + } + }, + "terser-webpack-plugin": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz", + "integrity": "sha512-3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==", + "dev": true, + "requires": { + "jest-worker": "^27.0.6", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1", + "terser": "^5.7.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "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 + }, + "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" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "dev": true, + "requires": { + "process": "~0.11.0" + } + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "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" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-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" + } + } + } + }, + "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" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "transfob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/transfob/-/transfob-1.0.0.tgz", + "integrity": "sha1-x/wnpbVDCtSGJnrmZtkj90oKsyA=", + "dev": true + }, + "tsconfig-paths": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz", + "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-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" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.14.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.4.tgz", + "integrity": "sha512-AbiSR44J0GoCeV81+oxcy/jDOElO2Bx3d0MfQCUShq7JRXaM4KtQopZsq2vFv8bCq2yMaGrw1FgygUd03RyRDA==", + "dev": true + }, + "umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "requires": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + } + }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "dependencies": { + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + } + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "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 + } + } + }, + "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 + } + } + }, + "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.12.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", + "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "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" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vinyl-buffer/-/vinyl-buffer-1.0.1.tgz", + "integrity": "sha1-lsGjR5uMU5JULGEgKQE7Wyf4i78=", + "dev": true, + "requires": { + "bl": "^1.2.1", + "through2": "^2.0.3" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-source-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-source-stream/-/vinyl-source-stream-2.0.0.tgz", + "integrity": "sha1-84pa+53R6Ttl1VBGmsYYKsT1S44=", + "dev": true, + "requires": { + "through2": "^2.0.3", + "vinyl": "^2.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.1" + } + }, + "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 + }, + "watchify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/watchify/-/watchify-4.0.0.tgz", + "integrity": "sha512-2Z04dxwoOeNxa11qzWumBTgSAohTC0+ScuY7XMenPnH+W2lhTcpEOJP4g2EIG/SWeLadPk47x++Yh+8BqPM/lA==", + "dev": true, + "requires": { + "anymatch": "^3.1.0", + "browserify": "^17.0.0", + "chokidar": "^3.4.0", + "defined": "^1.0.0", + "outpipe": "^1.1.0", + "through2": "^4.0.2", + "xtend": "^4.0.2" + }, + "dependencies": { + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "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" + } + }, + "chokidar": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", + "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "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" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.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" + } + }, + "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" + } + } + } + }, + "watchpack": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.0.tgz", + "integrity": "sha512-MnN0Q1OsvB/GGHETrFeZPQaOelWh/7O+EiFlj8sM9GPjtQkis7k01aAxrg/18kTfoIVcLL+haEVFlXDaSRwKRw==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "webpack": { + "version": "5.64.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.64.4.tgz", + "integrity": "sha512-LWhqfKjCLoYJLKJY8wk2C3h77i8VyHowG3qYNZiIqD6D0ZS40439S/KVuc/PY48jp2yQmy0mhMknq8cys4jFMw==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.0", + "@types/estree": "^0.0.50", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.8.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.4", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.0", + "webpack-sources": "^3.2.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-cli": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.1.tgz", + "integrity": "sha512-JYRFVuyFpzDxMDB+v/nanUdQYcZtqFPGzmlW4s+UkPMFhSpfRNmf1z4AwYcHJVdvEFAM7FFCQdNTpsBYhDLusQ==", + "dev": true, + "requires": { + "@discoveryjs/json-ext": "^0.5.0", + "@webpack-cli/configtest": "^1.1.0", + "@webpack-cli/info": "^1.4.0", + "@webpack-cli/serve": "^1.6.0", + "colorette": "^2.0.14", + "commander": "^7.0.0", + "execa": "^5.0.0", + "fastest-levenshtein": "^1.0.12", + "import-local": "^3.0.2", + "interpret": "^2.2.0", + "rechoir": "^0.7.0", + "webpack-merge": "^5.7.3" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true + }, + "interpret": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", + "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "dev": true + }, + "rechoir": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", + "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "dev": true, + "requires": { + "resolve": "^1.9.0" + } + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", + "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "dev": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.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" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "which-typed-array": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", + "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.5", + "foreach": "^2.0.5", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.7" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "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 + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "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": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "17.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.3.0.tgz", + "integrity": "sha512-GQl1pWyDoGptFPJx9b9L6kmR33TGusZvXIZUT+BOz9f7X2L94oeAskFYLEg/FkhV06zZPBYLvLZRWeYId29lew==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-z9kApYUOCwoeZ78rfRYYWdiU/iNL6mwwYlkkZfJoyMR1xps+NEBX5X7XmRpxkZHhXJ6+Ey00IwKxBBSW9FIjyA==", + "dev": true + } + } } diff --git a/phpcs.xml b/phpcs.xml index 99da15ea78..ec28f363b4 100644 --- a/phpcs.xml +++ b/phpcs.xml @@ -27,8 +27,8 @@ - - + + diff --git a/src/scss/components/_tools.scss b/src/scss/components/_tools.scss index f30f7a6a47..551e5f4a87 100644 --- a/src/scss/components/_tools.scss +++ b/src/scss/components/_tools.scss @@ -41,6 +41,11 @@ margin-top: 5px; @include font-size(36,36); color: $cOrange; + + @include respond-to('xs') { + display: block; + position: initial; + } } } @@ -51,6 +56,12 @@ padding-left: $space*9; padding-right: $space*3; min-width: 340px; + + @include respond-to('xs') { + padding-left: 0; + padding-right: 0; + min-width: auto; + } } &:last-child{ diff --git a/tests/Fixtures/Action_Scheduler/ActionScheduler_Abstract_QueueRunner.php b/tests/Fixtures/Action_Scheduler/ActionScheduler_Abstract_QueueRunner.php new file mode 100644 index 0000000000..604bb9fa8c --- /dev/null +++ b/tests/Fixtures/Action_Scheduler/ActionScheduler_Abstract_QueueRunner.php @@ -0,0 +1,79 @@ +store = $store; + $this->monitor = $monitor; + $this->cleaner = $cleaner; + } + } +} + +if(! class_exists('ActionScheduler_Lock')) { + abstract class ActionScheduler_Lock { + public function is_locked( $lock_type ) {} + + abstract public function set( $lock_type ); + } +} + +if(! class_exists('ActionScheduler')) { + class ActionScheduler { + public static $lock; + + public static function lock() { + return self::$lock; + } + } +} diff --git a/tests/Fixtures/WP_Filesystem_Direct.php b/tests/Fixtures/WP_Filesystem_Direct.php new file mode 100644 index 0000000000..044cb360a7 --- /dev/null +++ b/tests/Fixtures/WP_Filesystem_Direct.php @@ -0,0 +1,8 @@ + [ + 'config' => [ + 'size' => 1, + 'group' => 'rocket-preload', + 'context' => 'context', + 'claim_actions_ids' => [], + 'claim_id' => 10, + 'action_ids' => [], + 'action_max' => [ + true + ], + 'is_using_object_cache' => false, + 'flush_cache' => false, + ], + 'expected' => 0 + ], + 'actionShouldProcess' => [ + 'config' => [ + 'size' => 1, + 'group' => 'rocket-preload', + 'context' => 'context', + 'claim_id' => 10, + 'claim_actions_ids' => [ + 1, + 2, + ], + 'action_ids' => [ + 1, + 2 + ], + 'action_max' => [ + false, + true + ], + 'is_using_object_cache' => false, + 'flush_cache' => false, + ], + 'expected' => 2 + ], + 'limitReachShouldStop' => [ + 'config' => [ + 'size' => 1, + 'group' => 'rocket-preload', + 'context' => 'context', + 'claim_actions_ids' => [], + 'claim_id' => 10, + 'action_ids' => [ + 1, + 2 + ], + 'action_max' => [ + false, + true + ], + 'is_using_object_cache' => false, + 'flush_cache' => false, + ], + 'expected' => 0 + ] +]; diff --git a/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php b/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php new file mode 100644 index 0000000000..3498ff93f3 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php @@ -0,0 +1,24 @@ + [ + 'config' => [ + 'is_admin' => false, + 'is_locked' => true, + ] + ], + 'lockedShouldDoNothing' => [ + 'config' => [ + 'is_admin' => true, + 'is_locked' => true, + ] + + ], + 'unlockAndAdminShouldDispatch' => [ + 'config' => [ + 'is_admin' => true, + 'is_locked' => false, + ] + + ] +]; diff --git a/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/run.php b/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/run.php new file mode 100644 index 0000000000..f99b9f1627 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Common/Queue/PreloadQueueRunner/run.php @@ -0,0 +1,30 @@ + [ + 'config' => [ + 'time_limit' => 10000, + 'batch_size' => 100, + 'has_max' => [ + true + ], + 'do_batch' => false, + 'processed' => 10, + 'context' => 'context' + ], + 'expected' => 0 + ], + 'whenHasNotMaximumConcurrentBatchesShouldReturnNumber' => [ + 'config' => [ + 'time_limit' => 10000, + 'batch_size' => 100, + 'has_max' => [ + false, + true + ], + 'do_batch' => true, + 'processed' => 10, + 'context' => 'context' + ], + 'expected' => 20 + ], +]; diff --git a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php deleted file mode 100644 index b4987d1823..0000000000 --- a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php +++ /dev/null @@ -1,20 +0,0 @@ - [ - 'shouldBailoutWhenTablesDoNotExist' => [ - 'input' => [ - 'resources' => [ - 'exists' => false, - ], - ], - ], - 'shouldDelete' => [ - 'input' => [ - 'resources' => [ - 'exists' => true, - ], - ], - ], - ], -]; diff --git a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php index 7c6168cda8..0d518b9afa 100644 --- a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php +++ b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php @@ -2,41 +2,15 @@ return [ 'test_data' => [ - 'shouldBailoutWhenTablesDoNotExist' => [ + 'shouldBailoutWhenTableDoesNotExist' => [ 'input' => [ - 'resources' => [ - 'exists' => false, - ], - 'usedCSS' => [ - 'exists' => false, - ], - ], - ], - 'shouldBailoutOnlyResources' => [ - 'input' => [ - 'resources' => [ - 'exists' => false, - ], - 'usedCSS' => [ - 'exists' => true, - ], - ], - ], - 'shouldBailoutOnlyUsedCSS' => [ - 'input' => [ - 'resources' => [ - 'exists' => true, - ], 'usedCSS' => [ 'exists' => false, ], ], ], - 'shouldUninstallBoth' => [ + 'shouldUninstallTable' => [ 'input' => [ - 'resources' => [ - 'exists' => true, - ], 'usedCSS' => [ 'exists' => true, ], diff --git a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php index 61ed10f695..605dae4f08 100644 --- a/tests/Fixtures/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php +++ b/tests/Fixtures/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php @@ -24,31 +24,11 @@ ], ]; -$resources = [ - [ - 'url' => 'http://example.org/wp-content/themes/theme-name/style.css', - 'content' => '.theme-name{color:red;}', - 'type' => 'css', - 'media' => 'all', - 'modified' => $old_date, - 'last_accessed' => $old_date, - ], - [ - 'url' => 'http://example.org/css/style.css', - 'content' => '.first{color:green;}', - 'type' => 'css', - 'media' => 'all', - 'modified' => $current_date, - 'last_accessed' => $current_date, - ] -]; - return [ 'test_data' => [ 'shouldDeleteOnUpdate' => [ 'input' => [ - 'used_css' => $used_css, - 'resources' => $resources, + 'used_css' => $used_css, ] ], ], diff --git a/tests/Fixtures/inc/Engine/Preload/Activation/activate.php b/tests/Fixtures/inc/Engine/Preload/Activation/activate.php new file mode 100644 index 0000000000..6f762b387b --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Activation/activate.php @@ -0,0 +1,7 @@ + [ + 'config' => [ + ], + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Activation/cleanOnUpdate.php b/tests/Fixtures/inc/Engine/Preload/Activation/cleanOnUpdate.php new file mode 100644 index 0000000000..a56053755b --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Activation/cleanOnUpdate.php @@ -0,0 +1,24 @@ + [ + 'config' => [ + 'new_version' => '3.12.0', + 'old_version' => '3.13.0', + 'cron_present' => true, + ], + ], + 'versionSuperiorAndNoCronShouldDisableJobs' => [ + 'config' => [ + 'new_version' => '3.12.0', + 'old_version' => '3.11.0', + 'cron_present' => false, + ], + ], + 'versionSuperiorAndCronShouldDisableAll' => [ + 'config' => [ + 'new_version' => '3.12.0', + 'old_version' => '3.11.0', + 'cron_present' => true, + ], + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Activation/refreshOnUpdate.php b/tests/Fixtures/inc/Engine/Preload/Activation/refreshOnUpdate.php new file mode 100644 index 0000000000..5e1fe09997 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Activation/refreshOnUpdate.php @@ -0,0 +1,15 @@ + [ + 'config' => [ + 'new_version' => '3.12.0', + 'old_version' => '3.13.0', + ], + ], + 'versionSuperiorShouldReload' => [ + 'config' => [ + 'new_version' => '3.11.0', + 'old_version' => '3.12.0', + ], + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php b/tests/Fixtures/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php new file mode 100644 index 0000000000..b5d3a07463 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php @@ -0,0 +1,62 @@ + [ + 'config' => [ + 'screen' => 'random', + 'has_right' => false, + ], + 'expected' => [ + 'notice' => [ + 'status' => 'info', + 'message' => 'WP Rocket: Please wait. The preload service is processing your pages.', + 'id' => 'rocket-notice-preload-processing', + ] + ] + ], + 'noRightShouldBailOut' => [ + 'config' => [ + 'screen' => 'settings_page_wprocket', + 'has_right' => false, + ], + 'expected' => [ + 'notice' => [ + 'status' => 'info', + 'message' => 'WP Rocket: Please wait. The preload service is processing your pages.', + 'id' => 'rocket-notice-preload-processing', + ] + ] + ], + 'notProcessingShouldBailOut' => [ + 'config' => [ + 'screen' => 'settings_page_wprocket', + 'has_right' => true, + 'load_transient' => false, + 'enabled' => true, + 'transient' => false, + ], + 'expected' => [ + 'notice' => [ + 'status' => 'info', + 'message' => 'WP Rocket: Please wait. The preload service is processing your pages.', + 'id' => 'rocket-notice-preload-processing', + ] + ] + ], + 'shouldDisplayNotice' => [ + 'config' => [ + 'screen' => 'settings_page_wprocket', + 'has_right' => true, + 'load_transient' => true, + 'enabled' => true, + 'transient' => true, + 'show_display_notice' => true, + ], + 'expected' => [ + 'notice' => [ + 'status' => 'info', + 'message' => 'WP Rocket: Please wait. The preload service is processing your pages.', + 'id' => 'rocket-notice-preload-processing', + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php b/tests/Fixtures/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php new file mode 100644 index 0000000000..1ac5b2148d --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php @@ -0,0 +1,70 @@ + +

WP Rocket: Please wait. The preload service is processing your pages.

+ +HTML; + + +return [ + 'noRightShouldDisplayNothing' => [ + 'config' => [ + 'activated' => true, + 'cap' => false, + 'screen' => 'settings_page_wprocket', + ], + 'expected' => [ + 'should_contain' => false, + 'html' => $html + ], + ], + 'wrongScreenShouldDisplayNothing' => [ + 'config' => [ + 'activated' => true, + 'cap' => true, + 'transient' => false, + 'screen' => 'front', + ], + 'expected' => [ + 'should_contain' => false, + 'html' => $html + ], + ], + 'disableShouldNotDisplayNotice' => [ + 'config' => [ + 'activated' => false, + 'cap' => true, + 'transient' => true, + 'screen' => 'settings_page_wprocket', + ], + 'expected' => [ + 'should_contain' => false, + 'html' => $html + ], + ], + 'noProcessShouldDisplayNothing' => [ + 'config' => [ + 'activated' => true, + 'cap' => true, + 'transient' => false, + 'screen' => 'settings_page_wprocket', + ], + 'expected' => [ + 'should_contain' => false, + 'html' => $html + ], + ], + 'shouldDisplayNotice' => [ + 'config' => [ + 'activated' => true, + 'cap' => true, + 'transient' => true, + 'screen' => 'settings_page_wprocket', + ], + 'expected' => [ + 'should_contain' => true, + 'html' => $html + ], + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php b/tests/Fixtures/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php new file mode 100644 index 0000000000..dd3151727e --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php @@ -0,0 +1,17 @@ + [ + 'config' => [ + 'excluded_urls' => 'url', + 'url' => 'url' + ], + 'expected' => true + ], + 'notExcludedShouldReturnFalse' => [ + 'config' => [ + 'excluded_urls' => 'uri', + 'url' => 'url' + ], + 'expected' => false + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php b/tests/Fixtures/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php new file mode 100644 index 0000000000..2af0215a05 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php @@ -0,0 +1,24 @@ + [ + 'config' => [ + 'is_enabled' => false, + 'remaining' => false, + 'have_pending' => false, + ] + ], + 'enableAndStillTaskShouldRecreate' => [ + 'config' => [ + 'is_enabled' => true, + 'remaining' => true, + 'have_pending' => true, + ] + ], + 'enableAndNoTaskShouldStopProcess' => [ + 'config' => [ + 'is_enabled' => true, + 'remaining' => false, + 'have_pending' => false, + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/fullClean.php b/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/fullClean.php new file mode 100644 index 0000000000..7a4a7420f7 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/fullClean.php @@ -0,0 +1,27 @@ + [ + 'config' => [ + 'urls' => [ + (object) ['url' => 'url'], + (object) ['url' => 'url1'], + ] + ], + 'expected' => [ + 'urls' => [ + [ + [ + 'url' => 'url', + 'status' => 'pending', + ] + ], + [ + [ + 'url' => 'url1', + 'status' => 'pending', + ] + ] + ] + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/partialClean.php b/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/partialClean.php new file mode 100644 index 0000000000..582c5276e1 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/ClearCache/partialClean.php @@ -0,0 +1,53 @@ + [ + 'config' => [ + 'urls' => [ + 'url', + 'url1', + ], + 'is_excluded' => false, + ], + 'expected' => [ + 'urls' => [ + [ + [ + 'url' => 'url', + 'status' => 'pending', + ] + ], + [ + [ + 'url' => 'url1', + 'status' => 'pending', + ] + ] + ] + ] + ], + 'excludedShouldNotAdd' => [ + 'config' => [ + 'urls' => [ + 'url', + 'url1', + ], + 'is_excluded' => true, + ], + 'expected' => [ + 'urls' => [ + [ + [ + 'url' => 'url', + 'status' => 'pending', + ] + ], + [ + [ + 'url' => 'url1', + 'status' => 'pending', + ] + ] + ] + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php b/tests/Fixtures/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php new file mode 100644 index 0000000000..16754b6a72 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php @@ -0,0 +1,75 @@ + + + + +test +test +test +test + + +HTML; + +return [ + 'shouldReturnUrlsOnSuccess' => [ + 'config' => [ + 'home_url' => 'http://example.com', + 'escaped_home_url' => 'escaped_home_url', + 'request' => [ + 'response' => 'response', + 'is_error' => false, + 'code' => 200, + 'body' => $body + ], + 'args' => [ + 'timeout' => 10, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false + ] + ], + 'expected' => [ + 'http://example.com/url1', + 'http://example.com/url2', + 'http://example.com/url3' + ] + ], + 'shouldReturnNothingOnWPError' => [ + 'config' => [ + 'home_url' => 'http://example.com', + 'escaped_home_url' => 'escaped_home_url', + 'request' => [ + 'response' => 'response', + 'is_error' => true, + 'code' => 200, + 'body' => $body + ], + 'args' => [ + 'timeout' => 10, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false + ] + ], + 'expected' => false + ], + 'shouldReturnNothingOnNoSuccessResponse' => [ + 'config' => [ + 'home_url' => 'http://example.com', + 'escaped_home_url' => 'escaped_home_url', + 'request' => [ + 'response' => 'response', + 'is_error' => false, + 'code' => 404, + 'body' => $body + ], + 'args' => [ + 'timeout' => 10, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false + ] + ], + 'expected' => false + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php b/tests/Fixtures/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php new file mode 100755 index 0000000000..695d15f4b7 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php @@ -0,0 +1,67 @@ + [ + 'config' => [ + 'sitemaps' => [], + 'filter_sitemaps' => [ + 'url' + ], + 'home_url' => 'home_url', + 'wp_sitemap' => 'sitemap', + 'crawl_urls' => [ + 'url1', + 'url2', + ], + 'add_crawl_urls' => [ + [['url' => 'home_url']], + [['url' => 'url1']], + [['url' => 'url2']], + ], + 'is_sitemap_activated' => true + ], + 'expected' => [ + 'transient' => true, + ] + ], + 'shouldCreateTaskFOrSitemapIfNothingFromFilter' => [ + 'config' => [ + 'sitemaps' => [], + 'filter_sitemaps' => [], + 'home_url' => 'home_url', + 'wp_sitemap' => 'url', + 'crawl_urls' => [ + 'url1', + 'url2', + ], + 'add_crawl_urls' => [ + [['url' => 'home_url']], + [['url' => 'url1']], + [['url' => 'url2']], + ], + 'is_sitemap_activated' => true + ], + 'expected' => [ + 'transient' => true, + ] + ], + 'shouldCreateNoTaskIfNoSitemap' => [ + 'config' => [ + 'sitemaps' => [], + 'filter_sitemaps' => [], + 'home_url' => 'home_url', + 'wp_sitemap' => false, + 'crawl_urls' => [ + 'url1', + 'url2', + ], + 'add_crawl_urls' => [ + [['url' => 'home_url']], + [['url' => 'url1']], + [['url' => 'url2']], + ], + 'is_sitemap_activated' => false + ], + 'expected' => [ + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php new file mode 100644 index 0000000000..d58dbcb883 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php @@ -0,0 +1,19 @@ + [ + 'config' => [ + 'prefix' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', + 'filter' => '', + + ], + 'expected' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1' + ], + 'shouldUseFilterPrefixOnFilterPrefix' => [ + 'config' => [ + 'prefix' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', + 'filter' => 'new_prefix', + + ], + 'expected' => 'new_prefix' + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php new file mode 100644 index 0000000000..691d60c026 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php @@ -0,0 +1,59 @@ + [ + 'config' => [ + 'url' => 'url', + 'cache_exists' => true, + 'cache_mobile' => false, + 'user_agent' => 'user_agent', + 'request' => [ + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false, + ] + ], + ] + ], + 'mobileNotActivatedShouldPreloadOnlyOnce' => [ + 'config' => [ + 'url' => 'url', + 'cache_exists' => false, + 'cache_mobile' => false, + 'user_agent' => 'user_agent', + 'request' => [ + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false, + ] + ], + ] + ], + 'mobileActivatedShouldPreloadTwice' => [ + 'config' => [ + 'url' => 'url', + 'cache_exists' => false, + 'cache_mobile' => true, + 'user_agent' => 'user_agent', + 'request' => [ + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + 'sslverify' => false, + ] + ], + 'request_mobile' => [ + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'user_agent', + 'sslverify' => false, + ] + ], + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php new file mode 100644 index 0000000000..bdc415863d --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php @@ -0,0 +1,39 @@ + 10, + 'is_mobile' => false, + 'url' => 'http://example1', + 'status' => 'pending', +]); + +$row2 = new CacheRow([ + 'id' => 11, + 'is_mobile' => false, + 'url' => 'http://example2', + 'status' => 'pending', +]); + +return [ + 'shouldPassJobsInPending' => [ + 'config' => [ + 'rows' => 101, + 'jobs' => [ + $row1, + $row2, + ] + ], + 'expected' => [ + 'job_ids' => [ + [10], + [11], + ], + 'job_urls' => [ + 'http://example1', + 'http://example2', + ] + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addInterval.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addInterval.php new file mode 100644 index 0000000000..82c5b7953f --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addInterval.php @@ -0,0 +1,42 @@ + [ + 'config' => [ + 'schedules' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ] + ], + 'is_enabled' => false, + ], + 'expected' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + ] + ], + 'testShouldReturnNewSchedulesNothingOnEnabled' => [ + 'config' => [ + 'schedules' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + ], + 'is_enabled' => true, + ], + 'expected' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + 'rocket_preload_process_pending' => [ + 'interval' => 60, + 'display' => 'WP Rocket Preload pending jobs', + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php new file mode 100644 index 0000000000..9537b093b4 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php @@ -0,0 +1,42 @@ + [ + 'config' => [ + 'schedules' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ] + ], + 'is_enabled' => false, + ], + 'expected' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + ] + ], + 'testShouldReturnNewSchedulesNothingOnEnabled' => [ + 'config' => [ + 'schedules' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + ], + 'is_enabled' => true, + ], + 'expected' => [ + 'testkey' => [ + 'interval' => 10, + 'display' => 'test', + ], + 'rocket_revert_old_in_progress_rows' => [ + 'interval' => 12 * 60 * 60, + 'display' => 'WP Rocket Preload revert stuck in-progress jobs', + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php new file mode 100644 index 0000000000..7e7c481b62 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php @@ -0,0 +1,22 @@ + [ + 'config' => [ + 'is_enable' => true, + 'interval' => 60, + 'interval_filter' => true, + ] + ], + 'disableNotPendingShouldDoNothing' => [ + 'config' => [ + 'is_enable' => false, + 'is_pending' => false, + ] + ], + 'disablePendingShouldCancel' => [ + 'config' => [ + 'is_enable' => false, + 'is_pending' => true, + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php new file mode 100644 index 0000000000..b188657e42 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php @@ -0,0 +1,15 @@ + [ + 'config' => [ + 'has_next_schedule' => true, + ] + ], + 'testEnabledAndNoNextActionScheduledShouldSchedule' => [ + 'config' => [ + 'has_next_schedule' => false, + ] + ] +]; + diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php new file mode 100644 index 0000000000..3436a3b0e7 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php @@ -0,0 +1,31 @@ + [ + 'config' => [ + 'is_enabled' => false, + 'has_next_schedule' => false, + 'next_success' => false, + ] + ], + 'testNotEnabledAndScheduleShouldDoCancel' => [ + 'config' => [ + 'is_enabled' => false, + 'has_next_schedule' => true, + 'next_success' => false, + ] + ], + 'testEnabledAndNextActionScheduledShouldDoNothing' => [ + 'config' => [ + 'is_enabled' => true, + 'has_next_schedule' => true, + 'next_success' => true, + ] + ], + 'testEnabledAndNoNextActionScheduledShouldSchedule' => [ + 'config' => [ + 'is_enabled' => true, + 'has_next_schedule' => false, + 'next_success' => false, + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php new file mode 100644 index 0000000000..6c34b4e1ee --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php @@ -0,0 +1,32 @@ + [ + 'config' => [ + 'is_enabled' => false, + 'has_next_schedule' => false, + 'next_success' => false, + ] + ], + 'testNotEnabledAndScheduleShouldDoCancel' => [ + 'config' => [ + 'is_enabled' => false, + 'has_next_schedule' => true, + 'next_success' => false, + ] + ], + 'testEnabledAndNextActionScheduledShouldDoNothing' => [ + 'config' => [ + 'is_enabled' => true, + 'has_next_schedule' => true, + 'next_success' => true, + ] + ], + 'testEnabledAndNoNextActionScheduledShouldSchedule' => [ + 'config' => [ + 'is_enabled' => true, + 'has_next_schedule' => false, + 'next_success' => false, + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php new file mode 100644 index 0000000000..a3332008ff --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php @@ -0,0 +1,61 @@ + [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'last_accessed' => '838:59:59.000000' + ], + 'id' => 10, + 'time' => '838:59:59.000000', + 'rows' => [], + ], + 'expected' => 10 + ], + 'notExistingAndErrorShouldCreateAndReturnFalse' => [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'last_accessed' => '838:59:59.000000' + ], + 'id' => false, + 'time' => '838:59:59.000000', + 'rows' => [], + ], + 'expected' => false + ], + 'existingShouldDoNothing' => [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'modified' => '838:59:59.000001' + ], + 'id' => 10, + 'time' => '838:59:59.000001', + 'rows' => [ + (object) [ + 'url' => 'http://example.com', + 'status' => 'completed', + 'id' => 10, + 'last_accessed' => '838:59:59.000000' + ] + ], + ], + 'expected' => false + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php new file mode 100644 index 0000000000..2c70e65a57 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php @@ -0,0 +1,61 @@ + [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'last_accessed' => '838:59:59.000000' + ], + 'id' => 10, + 'time' => '838:59:59.000000', + 'rows' => [], + ], + 'expected' => 10 + ], + 'notExistingAndErrorShouldCreateAndReturnFalse' => [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'last_accessed' => '838:59:59.000000' + ], + 'id' => false, + 'time' => '838:59:59.000000', + 'rows' => [], + ], + 'expected' => false + ], + 'existingShouldUpdate' => [ + 'config' => [ + 'resource' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + ], + 'save' => [ + 'url' => 'http://example.com', + 'status' => 'pending', + 'modified' => '838:59:59.000001', + ], + 'id' => 10, + 'time' => '838:59:59.000001', + 'rows' => [ + (object) [ + 'url' => 'http://example.com', + 'status' => 'completed', + 'id' => 10, + 'last_accessed' => '838:59:59.000000' + ] + ], + ], + 'expected' => 10 + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php new file mode 100644 index 0000000000..c8ac3ab24e --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php @@ -0,0 +1,47 @@ + 1 +]; + +$result_two = (object) [ + 'id' => 2 +]; + +return [ + 'notResultsShouldNotDelete' => [ + 'config' => [ + 'url' => 'http://example.com', + 'results' => [], + ], + 'expected' => false, + ], + 'resultsWithOneErrorShouldReturnFalse' => [ + 'config' => [ + 'url' => 'http://example.com', + 'results' => [ + $result_one, + $result_two, + ], + 'delete_id_one' => 1, + 'delete_id_two' => 2, + 'delete_return_one' => true, + 'delete_return_two' => true, + ], + 'expected' => true, + ], + 'resultsWithoutErrorShouldReturnTrue' => [ + 'config' => [ + 'url' => 'http://example.com', + 'results' => [ + $result_one, + $result_two, + ], + 'delete_id_one' => 1, + 'delete_id_two' => 2, + 'delete_return_one' => true, + 'delete_return_two' => false, + ], + 'expected' => false, + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php new file mode 100644 index 0000000000..3cfae804f4 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php @@ -0,0 +1,19 @@ + [ + 'config' => [ + 'total' => 1, + 'results' => [ + $cache, + ] + ], + 'expected' => [ + $cache + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php new file mode 100644 index 0000000000..20fbe087e7 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php @@ -0,0 +1,24 @@ + 'http://example.com', + 'status' => 'pending', + 'last_accessed' => '838:59:59.000000' +]; + +return [ + 'resultFoundShouldResult' => [ + 'config' => [ + 'url' => 'http://example.com', + 'result' => $full_result + ], + 'expected' => $full_result + ], + 'nothingFoundShouldReturnNothing' => [ + 'config' => [ + 'url' => 'http://example.com', + 'result' => false, + ], + 'expected' => false, + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php new file mode 100644 index 0000000000..49caeb2825 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php @@ -0,0 +1,18 @@ + [ + 'config' => [ + 'url' => 'http://example.org', + 'result' => 0, + ], + 'expected' => false + ], + 'elementsShouldReturnTrue' => [ + 'config' => [ + 'url' => 'http://example.org', + 'result' => 10, + ], + 'expected' => true + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php new file mode 100644 index 0000000000..0edb7975e0 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php @@ -0,0 +1,49 @@ + 10, +]); + +return [ + 'notTaskFoundShouldReturnFalse' => [ + 'config' => [ + 'url' => 'url', + 'query_params' => [ + 'url' => 'url', + ], + 'results' => [], + 'update_status' => false, + ], + 'expected' => false + ], + 'failSaveShouldReturnFalse' => [ + 'config' => [ + 'url' => 'url', + 'query_params' => [ + 'url' => 'url', + ], + 'task_id' => 10, + 'results' => [ + $rocket_cache_row + ], + 'update_status' => false, + ], + 'expected' => false + ], + 'saveShouldReturnTrue' => [ + 'config' => [ + 'url' => 'url', + 'query_params' => [ + 'url' => 'url', + ], + 'task_id' => 10, + 'results' => [ + $rocket_cache_row + ], + 'update_status' => true, + ], + 'expected' => true + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php new file mode 100644 index 0000000000..cc85fbb956 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php @@ -0,0 +1,26 @@ + [ + 'config' => [ + 'results' => [ + (object) [ + 'id' => 1 + ] + ] + ], + 'expected' => [[1]] + ], + 'twoShouldDeleteTwice' => [ + 'config' => [ + 'results' => [ + (object) [ + 'id' => 1 + ], + (object) [ + 'id' => 2 + ] + ] + ], + 'expected' => [[1], [2]] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php new file mode 100644 index 0000000000..f07d103ee5 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php @@ -0,0 +1,28 @@ + [ + 'config' => [ + 'results' => [] + ], + 'expected' => [ + ], + ], + 'resultsShouldUpdate' => [ + 'config' => [ + 'results' => [ + (object) ['id' => 10], + (object) ['id' => 20], + ] + ], + 'expected' => [ + [10, [ + 'status' => 'pending', + ] + ], + [20, [ + 'status' => 'pending', + ] + ], + ], + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php b/tests/Fixtures/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php new file mode 100644 index 0000000000..2b7e893983 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php @@ -0,0 +1,59 @@ + [ + 'config' => [ + 'is_excluded' => false, + 'url' => 'http://example.com', + 'response' => 'response', + 'status' => 400, + 'content' => '', + 'links' => [], + 'jobs' => [], + ], + ], + 'shouldParseOnRequestSucceed' => [ + 'config' => [ + 'is_excluded' => false, + 'url' => 'http://example.com', + 'response' => 'response', + 'request_succeed' => true, + 'status' => 200, + 'content' => '', + 'links' => [ + 'url1', + 'url2', + ], + 'jobs' => [ + [ + ['url' => 'url1',] + ], + [ + ['url' => 'url2',] + ] + ], + 'children' => [ + 'children1', + 'children2', + ] + ], + ], + 'shouldNotAddOnExcluded' => [ + 'config' => [ + 'is_excluded' => true, + 'url' => 'http://example.com', + 'response' => 'response', + 'request_succeed' => true, + 'status' => 200, + 'content' => '', + 'links' => [ + 'url1', + 'url2', + ], + 'jobs' => [], + 'children' => [ + 'children1', + 'children2', + ] + ], + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php b/tests/Fixtures/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php new file mode 100644 index 0000000000..baaa4118d2 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php @@ -0,0 +1,52 @@ + + + + http://www.photoshoptuto.com/ + 2013-02-08T08:29:01+00:00 + daily + 1.0 + + + http://www.photoshoptuto.com/tuto/epouvantail-effrayant-1018 + 2013-02-08T08:29:01+00:00 + monthly + 0.2 + + + http://www.photoshoptuto.com/proposer-un-tuto + 2009-12-21T18:19:47+00:00 + weekly + 0.6 + + + http://www.photoshoptuto.com/tag/35mm + weekly + 0.3 + + +XML; + +return [ + 'shouldReturnLinksOnValidXml' => [ + 'config' => [ + 'content' => $sitemap + ], + 'expected' => [ + 'http://www.photoshoptuto.com/', + 'http://www.photoshoptuto.com/tuto/epouvantail-effrayant-1018', + 'http://www.photoshoptuto.com/proposer-un-tuto', + 'http://www.photoshoptuto.com/tag/35mm', + ] + ] , + 'shouldReturnNothingOnInvalidXml' => [ + 'config' => [ + 'content' => '{"json":"test"}' + ], + 'expected' => [ + + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php b/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php new file mode 100644 index 0000000000..b95c3247fc --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php @@ -0,0 +1,88 @@ + + + + http://www.photoshoptuto.com/ + 2013-02-08T08:29:01+00:00 + daily + 1.0 + + + http://www.photoshoptuto.com/tuto/epouvantail-effrayant-1018 + 2013-02-08T08:29:01+00:00 + monthly + 0.2 + + + http://www.photoshoptuto.com/proposer-un-tuto + 2009-12-21T18:19:47+00:00 + weekly + 0.6 + + + http://www.photoshoptuto.com/tag/35mm + weekly + 0.3 + + + http://www.photoshoptuto.com/sitemap/1 + weekly + 0.3 + + + http://www.photoshoptuto.com/sitemap/2 + weekly + 0.3 + + +XML; + +return [ + 'errorOnFetchShouldAddNoJob' => [ + 'config' => [ + 'sitemap_url' => 'http://example.com', + 'process_generate' => [ + 'is_wp_error' => true, + 'response' => $sitemap + ] + ], + 'expected' => [ + 'children_exists' => false, + 'links_exists' => false, + 'children' => [ + 'http://www.photoshoptuto.com/sitemap/2', + 'http://www.photoshoptuto.com/sitemap/2', + ], + 'links' => [ + 'http://www.photoshoptuto.com/', + 'http://www.photoshoptuto.com/tuto/epouvantail-effrayant-1018', + 'http://www.photoshoptuto.com/proposer-un-tuto', + 'http://www.photoshoptuto.com/tag/35mm', + ] + ], + ], + 'fetchSitemapShouldCreateJobs' => [ + 'config' => [ + 'sitemap_url' => 'http://example.com', + 'process_generate' => [ + 'response' => $sitemap + ] + ], + 'expected' => [ + 'children_exists' => true, + 'links_exists' => true, + 'children' => [ + 'http://www.photoshoptuto.com/sitemap/2', + 'http://www.photoshoptuto.com/sitemap/2', + ], + 'links' => [ + 'http://www.photoshoptuto.com', + 'http://www.photoshoptuto.com/tuto/epouvantail-effrayant-1018', + 'http://www.photoshoptuto.com/proposer-un-tuto', + 'http://www.photoshoptuto.com/tag/35mm', + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php b/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php new file mode 100644 index 0000000000..fda8150828 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php @@ -0,0 +1,69 @@ + [ + 'config' => [ + 'existing_job' => [ + 'url' => 'url', + 'status' => 'pending', + ], + 'url' => 'url', + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + ], + 'config_mobile' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1' + ], + 'mobile_cache' => true, + 'user_agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', + 'process_generate' => [ + 'is_wp_error' => true, + 'response' => 'content' + ], + 'process_mobile_generate' => [ + 'is_wp_error' => true, + 'response' => 'content' + ] + ], + 'expected' => [ + 'url' => 'url', + 'status' => 'pending', + ] + ], + 'preloadWithSuccessShouldContinue' => [ + 'config' => [ + 'existing_job' => [ + 'url' => 'url', + 'status' => 'pending', + ], + 'url' => 'url', + 'config' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'WP Rocket/Preload', + ], + 'config_mobile' => [ + 'blocking' => false, + 'timeout' => 0.01, + 'user-agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1' + ], + 'mobile_cache' => true, + 'user_agent' => 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1', + 'process_generate' => [ + 'is_wp_error' => true, + 'response' => 'content' + ], + 'process_mobile_generate' => [ + 'is_wp_error' => true, + 'response' => 'content' + ] + ], + 'expected' => [ + 'url' => 'url', + 'status' => 'pending', + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php b/tests/Fixtures/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php deleted file mode 100644 index e06b6c2d3a..0000000000 --- a/tests/Fixtures/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php +++ /dev/null @@ -1,179 +0,0 @@ - [ - '/%postname%/', - false, - [], - [], - ], - 'bailoutNoDeleted' => [ - '/%postname%/', - true, - [], - [], - ], - 'bailoutAllUrlsHaveLoggedIn' => [ - '/%postname%/', - true, - [ - [ - 'home_url' => 'http://example.com/home1', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1', - 'logged_in' => true, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1/how-to-prank-your-coworkers', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1/best-source-of-gifs', - ], - ], - ], - [], - ], - 'preloadUrlsSlashedPermalink' => [ - '/%postname%/', - true, - [ - [ - 'home_url' => 'http://example.com/home1', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home2/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home3/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home4/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/abc/', - ], - ], - [ - 'home_url' => 'http://example.com/home5/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5/abc/', - ], - ], - [ - 'home_url' => 'http://example.com/home6', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/abc/', - ], - ], - ], - [ - 'http://example.com/home1/', - 'http://example.com/home1/abc/', - 'http://example.com/home2/', - 'http://example.com/home2/abc/', - 'http://example.com/home3/', - 'http://example.com/home3/abc/', - 'http://example.com/home4/', - 'http://example.com/home4/abc/', - 'http://example.com/home5/', - 'http://example.com/home5/abc/', - 'http://example.com/home6/', - 'http://example.com/home6/abc/', - ], - ], - 'preloadUrlsUnSlashedPermalink' => [ - '/%postname%', - true, - [ - [ - 'home_url' => 'http://example.com/home1', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home1/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home2/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home2/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home3/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home3/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home4/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home4/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home5/', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home5/abc', - ], - ], - [ - 'home_url' => 'http://example.com/home6', - 'home_path' => '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/', - 'logged_in' => false, - 'files' => [ - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/', - '/path-to/home1/wp-content/cache/wp-rocket/example.com-Greg-594d03f6ae698691165999/home6/abc/', - ], - ], - ], - [ - 'http://example.com/home1', - 'http://example.com/home1/abc', - 'http://example.com/home2', - 'http://example.com/home2/abc', - 'http://example.com/home3', - 'http://example.com/home3/abc', - 'http://example.com/home4', - 'http://example.com/home4/abc', - 'http://example.com/home5', - 'http://example.com/home5/abc', - 'http://example.com/home6', - 'http://example.com/home6/abc', - ], - ], -]; diff --git a/tests/Fixtures/inc/Engine/Preload/PartialProcess_Wrapper.php b/tests/Fixtures/inc/Engine/Preload/PartialProcess_Wrapper.php deleted file mode 100644 index 9d13de6350..0000000000 --- a/tests/Fixtures/inc/Engine/Preload/PartialProcess_Wrapper.php +++ /dev/null @@ -1,29 +0,0 @@ -generate_key(); - - if ( ! empty( $this->data ) ) { - update_site_option( $key, $this->data ); - $this->generatedKey = $key; - } else { - $this->generatedKey = null; - } - - return $this; - } - - public function getGeneratedKey() { - return $this->generatedKey; - } -} diff --git a/tests/Fixtures/inc/Engine/Preload/Process_Wrapper.php b/tests/Fixtures/inc/Engine/Preload/Process_Wrapper.php deleted file mode 100644 index e2961e69a2..0000000000 --- a/tests/Fixtures/inc/Engine/Preload/Process_Wrapper.php +++ /dev/null @@ -1,29 +0,0 @@ -generate_key(); - - if ( ! empty( $this->data ) ) { - update_site_option( $key, $this->data ); - $this->generatedKey = $key; - } else { - $this->generatedKey = null; - } - - return $this; - } - - public function getGeneratedKey() { - return $this->generatedKey; - } -} diff --git a/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap-mobile.xml b/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap-mobile.xml deleted file mode 100644 index cceaffee90..0000000000 --- a/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap-mobile.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - https://example.org/mobile/de/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - - - https://example.org/mobile/fr/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - - - https://example.org/mobile/es/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - - diff --git a/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap.xml b/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap.xml deleted file mode 100644 index 162dd95dc5..0000000000 --- a/tests/Fixtures/inc/Engine/Preload/Sitemap/sitemap.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - https://example.org/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - - https://example.org/fr/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - - https://example.org/es/ - 2018-09-04T16:06:25+00:00 - monthly - 1.0 - - diff --git a/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanFullCache.php b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanFullCache.php new file mode 100644 index 0000000000..2d86da0971 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanFullCache.php @@ -0,0 +1,31 @@ + [ + 'config' => [ + 'manual_preload' => true, + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'completed', + ], + [ + 'url' => 'https://example.org', + 'status' => 'completed', + ], + ] + ], + 'expected' => [ + 'exists' => true, + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'pending', + ], + [ + 'url' => 'https://example.org', + 'status' => 'pending', + ], + ] + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanPartialCache.php b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanPartialCache.php new file mode 100644 index 0000000000..9681aaf60c --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanPartialCache.php @@ -0,0 +1,82 @@ + [ + 'config' => [ + 'manual_preload' => true, + 'hook' => 'after_rocket_clean_post', + 'object' => new WP_Post((object) []), + 'urls' => [ + 'https://example.org/url', + 'https://example.org/url1', + ], + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'completed', + ], + [ + 'url' => 'http://example.org', + 'status' => 'completed', + ], + ], + 'lang' => 'en' + ], + 'expected' => [ + 'exists' => false, + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'pending', + ], + [ + 'url' => 'https://example.org/url1', + 'status' => 'pending', + ], + [ + 'url' => 'http://example.org', + 'status' => 'pending', + ], + ], + ] + ], + 'whenTermHookShouldChangeStatusUrls' => [ + 'config' => [ + 'manual_preload' => true, + 'hook' => 'after_rocket_clean_term', + 'object' => new WP_Term((object) []), + 'urls' => [ + 'https://example.org/url', + 'https://example.org/url1', + ], + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'completed', + ], + [ + 'url' => 'http://example.org', + 'status' => 'completed', + ], + ], + 'lang' => 'en' + ], + 'expected' => [ + 'exists' => true, + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'pending', + ], + [ + 'url' => 'https://example.org/url1', + 'status' => 'pending', + ], + [ + 'url' => 'http://example.org', + 'status' => 'pending', + ], + ], + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanUrls.php b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanUrls.php new file mode 100644 index 0000000000..0247f565d0 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Subscriber/cleanUrls.php @@ -0,0 +1,44 @@ + [ + 'config' => [ + 'manual_preload' => true, + 'urls' => [ + 'https://example.org/url', + 'https://example.org/url1', + ], + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'completed', + 'is_mobile' => false, + ], + [ + 'url' => 'http://example.org', + 'status' => 'completed', + 'is_mobile' => false, + ], + ], + ], + 'expected' => [ + 'exists' => false, + 'data' => [ + [ + 'url' => 'https://example.org/url', + 'status' => 'pending', + 'is_mobile' => false, + ], + [ + 'url' => 'https://example.org/url1', + 'status' => 'pending', + 'is_mobile' => false, + ], + [ + 'url' => 'http://example.org', + 'status' => 'completed', + 'is_mobile' => false, + ], + ], + ] + ], +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Subscriber/loadInitialSitemap.php b/tests/Fixtures/inc/Engine/Preload/Subscriber/loadInitialSitemap.php new file mode 100644 index 0000000000..86f1103898 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Subscriber/loadInitialSitemap.php @@ -0,0 +1,77 @@ + [ + 'config' => [ + 'old_values' => [ + 'manual_preload' => false + ], + 'values' => [ + 'manual_preload' => true + ], + 'return_sitemaps' => [ + 'http://example.com' + ] + ], + 'expected' => [ + 'exist' => true, + 'sitemaps' => [ + 'http://example.com' + ] + ] + ], + 'noChangeShouldNotCreateAJob' => [ + 'config' => [ + 'old_values' => [ + 'manual_preload' => true + ], + 'values' => [ + 'manual_preload' => true + ], + 'return_sitemaps' => [ + 'http://example.com' + ] + ], + 'expected' => [ + 'exist' => false, + 'sitemaps' => [ + 'http://example.com' + ] + ] + ], + 'disableShouldNotCreateAJob' => [ + 'config' => [ + 'old_values' => [ + 'manual_preload' => true + ], + 'values' => [ + 'manual_preload' => false + ], + 'return_sitemaps' => [ + 'http://example.com' + ] + ], + 'expected' => [ + 'exist' => false, + 'sitemaps' => [ + 'http://example.com' + ] + ] + ], + 'sitemapFromWordPressShouldCreateJob' => [ + 'config' => [ + 'old_values' => [ + 'manual_preload' => false + ], + 'values' => [ + 'manual_preload' => true + ], + 'return_sitemaps' => [] + ], + 'expected' => [ + 'exist' => true, + 'sitemaps' => [ + 'http://example.org/wp-sitemap.xml' + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/Engine/Preload/Subscriber/updateCacheRow.php b/tests/Fixtures/inc/Engine/Preload/Subscriber/updateCacheRow.php new file mode 100644 index 0000000000..51878a0e52 --- /dev/null +++ b/tests/Fixtures/inc/Engine/Preload/Subscriber/updateCacheRow.php @@ -0,0 +1,43 @@ + [ + 'config' => [ + 'links' => [ + [ + 'url' => 'http://example.org', + 'status' => 'in-progress', + ], + ], + 'is_preloaded' => true, + ], + 'expected' => [ + 'url' => 'http://example.org', + 'links' => [ + [ + 'url' => 'http://example.org', + 'status' => 'completed', + ], + ] + ] + ], + 'testNoCallActionWhenNotPreloaded' => [ + 'config' => [ + 'links' => [ + [ + 'url' => 'http://example.org', + 'status' => 'in-progress', + ], + ], + 'is_preloaded' => false, + ], + 'expected' => [ + 'url' => 'http://example.org', + 'links' => [ + [ + 'url' => 'http://example.org', + 'status' => 'completed', + ], + ] + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php b/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php new file mode 100644 index 0000000000..9f4456c51a --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php @@ -0,0 +1,14 @@ + [ + 'config' => [ + 'jetpack_sitemap' => 'sitemap', + 'sitemaps' => [ + + ] + ], + 'expected' => [ + 'jetpack' => 'sitemap', + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/functions.php b/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/functions.php new file mode 100644 index 0000000000..ffe3ecfbfb --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/Jetpack/functions.php @@ -0,0 +1,6 @@ + [ + 'config' => [ + 'aioseo_enabled' => false, + 'version' => 3, + 'options' => [ + 'modules' => [ + 'aiosp_feature_manager_options' => [ + 'aiosp_feature_manager_enable_sitemap' => false + ] + ] + ], + 'home_url' => 'http://localhost', + 'sitemap' => 'sitemap', + 'sitemaps' => [] + ], + 'expected' => [] + ], + 'version3WithSitemapEnabledShouldAddSitemap' => [ + 'config' => [ + 'aioseo_enabled' => true, + 'version' => 3, + 'options' => [ + 'modules' => [ + 'aiosp_feature_manager_options' => [ + 'aiosp_feature_manager_enable_sitemap' => 'on' + ] + ] + ], + 'home_url' => 'http://example.org/', + 'sitemap' => 'sitemap', + 'sitemaps' => [ + ] + ], + 'expected' => [ + 'http://example.org/sitemap.xml' + ] + ], + 'version4WithSitemapDisabledShouldReturnSame' => [ + 'config' => [ + 'aioseo_enabled' => false, + 'version' => 4, + 'options' => [ + 'modules' => [ + 'aiosp_feature_manager_options' => [ + 'aiosp_feature_manager_enable_sitemap' => false + ] + ] + ], + 'home_url' => 'http://localhost', + 'sitemap' => 'sitemap', + 'sitemaps' => [] + ], + 'expected' => [] + ], + 'version4WithSitemapEnabledShouldAddSitemap' => [ + 'config' => [ + 'aioseo_enabled' => true, + 'version' => 4, + 'options' => [ + 'modules' => [ + 'aiosp_feature_manager_options' => [ + 'aiosp_feature_manager_enable_sitemap' => 'on' + ] + ] + ], + 'home_url' => 'http://example.org/', + 'sitemap' => 'sitemap', + 'sitemaps' => [ + ] + ], + 'expected' => [ + 'http://example.org/sitemap.xml' + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/SEO/RankMathSEO/fixtures.php b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/RankMathSEO/fixtures.php new file mode 100644 index 0000000000..a2b8f735a4 --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/RankMathSEO/fixtures.php @@ -0,0 +1,25 @@ + [ + 'config' => [ + 'sitemap' => 'sitemap', + 'sitemaps' => [] + ], + 'expected' => [ + 'sitemap', + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php new file mode 100644 index 0000000000..42d7960551 --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php @@ -0,0 +1,12 @@ + [ + 'config' => [ + 'home_url' => 'http://example.org', + 'sitemaps' => [] + ], + 'expected' => [ + 'http://example.org/sitemaps.xml' + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/fixtures.php b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/fixtures.php new file mode 100644 index 0000000000..5c7da12a4b --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/SEOPress/fixtures.php @@ -0,0 +1,6 @@ + [ + 'config' => [ + 'is_tsf_active' => false, + 'sitemaps' => [], + 'version' => '4.0', + 'sitemap' => 'sitemap', + 'endpoints' => [ + + ], + 'url' => 'url' + ], + 'expected' => [ + + ] + ], + 'version3ShouldReturnSitemap' => [ + 'config' => [ + 'is_tsf_active' => true, + 'sitemaps' => [], + 'version' => '3.0', + 'sitemap' => 'sitemap', + 'endpoints' => [ + + ], + 'url' => 'url' + ], + 'expected' => [ + 'sitemap', + ] + ], + 'version4ShouldReturnSitemap' => [ + 'config' => [ + 'is_tsf_active' => true, + 'sitemaps' => [], + 'version' => '4.0', + 'sitemap' => 'sitemap', + 'endpoints' => [ + 10 => [ + 'robots' => 'robots' + ] + ], + 'url' => 'url' + ], + 'expected' => [ + 'url' + ] + ] +]; diff --git a/tests/Fixtures/inc/ThirdParty/Plugins/SEO/TheSEOFramework/fixtures.php b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/TheSEOFramework/fixtures.php new file mode 100644 index 0000000000..e512a03d5d --- /dev/null +++ b/tests/Fixtures/inc/ThirdParty/Plugins/SEO/TheSEOFramework/fixtures.php @@ -0,0 +1,44 @@ + 0, 'minify_google_fonts' => 1, 'manual_preload' => 1, - 'sitemap_preload' => 0, - 'sitemap_preload_url_crawl' => '500000', - 'sitemaps' => [], 'dns_prefetch' => 0, 'preload_fonts' => [], 'database_revisions' => 0, diff --git a/tests/Fixtures/wpdb.php b/tests/Fixtures/wpdb.php index 063df687d8..2d0e4d6431 100644 --- a/tests/Fixtures/wpdb.php +++ b/tests/Fixtures/wpdb.php @@ -6,6 +6,7 @@ class wpdb { public $term_taxonomy = 'terms'; public $posts_results = []; public $terms_results = []; + public $prefix = 'wp_'; public function get_results( $sql ) { if ( $this->is_post( $sql ) ) { @@ -43,5 +44,9 @@ private function starts_with( $string, $starting_string ) { return ( substr( $string, 0, $len ) === $starting_string ); } + + public function query( $query ) { + return true; + } } } diff --git a/tests/Integration/.phpunit.result.cache b/tests/Integration/.phpunit.result.cache new file mode 100644 index 0000000000..9363d3a30b --- /dev/null +++ b/tests/Integration/.phpunit.result.cache @@ -0,0 +1 @@ +{"version":1,"defects":{"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"validPreloadFontsOptions\"":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"validPreloadFontsOptionsWithCDN\"":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_ParseSitemap::testShouldReturnAsExpected with data set \"fetchSitemapShouldCreateJobs\"":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadWithFailUrlShouldContinue\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadWithSuccessShouldContinue\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Homepage\\Test_StopPreload::testShouldStopPreloadRollback":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Homepage\\Test_StopPreload::testShouldStopPreloadUpgrade":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_MaybeDispatch::testShouldDispatchWhenUrlsAndNoMobilePreload":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_MaybeDispatch::testShouldDispatchWhenUrlsAndMobilePreload":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutNoManualPreload\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutNoDeleted\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutAllUrlsHaveLoggedIn\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"preloadUrlsSlashedPermalink\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"preloadUrlsUnSlashedPermalink\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldNotPreloadWhenNoUrls":1,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldPreloadSitemapsWhenValidUrls":1,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldPreloadFallbackUrlsWhenInvalidSitemap":1,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"sitemapFromThirdPartyShouldCreateJob\"":5,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"sitemapFromWordPressShouldCreateJob\"":3,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrls\"":1,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPageUrls\"":1,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnCustomPostUrls\"":1,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrlsWithPreviousPost\"":1,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrlsWithPurgeUrls\"":1,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_ParseSitemap::testShouldReturnAsExpected with data set \"errorOnFetchShouldAddNoJob\"":4,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadNoMobileShouldPreloadOnlyOnce\"":3,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"noChangeShouldNotCreateAJob\"":5,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"disableShouldNotCreateAJob\"":5},"times":{"WP_Rocket\\Tests\\Integration\\inc\\API\\Bypass::testShouldReturnExpected with data set \"testShouldReturnFalseWhenNoQueryString\"":0.216,"WP_Rocket\\Tests\\Integration\\inc\\API\\Bypass::testShouldReturnExpected with data set \"testShouldReturnFalseWhenQueryStringNotNowprocket\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\API\\Bypass::testShouldReturnExpected with data set \"testShouldReturnTrueWhenQueryStringNowprocket\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\API\\Bypass::testShouldReturnExpected with data set \"testShouldReturnTrueWhenQueryStringNowprocketAndAnother\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Addons\\Cloudflare\\Test_Addon::testDoCloudflareIsOff":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Addons\\Cloudflare\\Test_Addon::testContainerDoesNotHaveCloudflare":0.004,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanDomain::testShouldDoExpected with data set \"testShouldDoNothingWhenVarnishDisabled\"":0.163,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanDomain::testShouldDoExpected with data set \"testShouldPurgeOnceWhenFilterEnabled\"":0.012,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanDomain::testShouldDoExpected with data set \"testShouldPurgeOnceWhenVarnishEnabled\"":0.008,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanFile::testShouldDoExpected with data set \"testShouldDoNothingWhenVarnishDisabled\"":0.012,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanFile::testShouldDoExpected with data set \"testShouldPurgeOnceWhenFilterEnabled\"":0.008,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanFile::testShouldDoExpected with data set \"testShouldPurgeOnceWhenVarnishEnabled\"":0.009,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanHome::testShouldDoExpected with data set \"testShouldDoNothingWhenVarnishDisabled\"":0.009,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanHome::testShouldDoExpected with data set \"testShouldPurgeOnceWhenFilterEnabled\"":0.008,"WP_Rocket\\Tests\\Integration\\Addon\\Varnish\\Subscriber\\Test_CleanHome::testShouldDoExpected with data set \"testShouldPurgeOnceWhenVarnishEnabled\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\CDNOptionsManager\\Test_Disable::testShouldDisableCDNOptions with data set \"shouldDeleteAll\"":1.652,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\CDNOptionsManager\\Test_Enable::testShouldEnableCDNOptions with data set \"shouldDeleteAll\"":1.527,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_Disable::testShouldUpdateRocketSettingsWhenEndpointRequest":0.037,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_Enable::testShouldUpdateRocketSettingsWhenEndpointRequest":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_Enable::testShouldDeleteTransientWhenEndpointRequestt":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_Enable::testShouldReturnSuccessWhenEndpointRequest":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterDisableRoute::testShouldRegisterRoute":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterDisableRoute::testShouldReturnErrorWhenIncorrectEmailProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterDisableRoute::testShouldReturnErrorWhenIncorrectKeyProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterDisableRoute::testShouldReturnErrorWhenIncorrectEmailAndKeyProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterDisableRoute::testShouldReturnSuccessWhenCorrectDataProvided":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldRegisterRoute":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectEmailProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectKeyProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectURLProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectEmailAndKeyProvided":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectEmailAndURLProvided":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectKeyAndURLProvided":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnErrorWhenIncorrectEmailAndURLAndKeyProvided":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\RocketCDN\\RESTSubscriber\\Test_RegisterEnableRoute::testShouldReturnSuccessWhenCorrectDataProvided":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_addPreconnectCdn::testShouldAddPreconnectCdn with data set \"shouldAddPreconnectLinkForCdn\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_GetCdnHosts::testShouldReturnCdnArray with data set #0":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_GetCdnHosts::testShouldReturnCdnArray with data set #1":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_GetCdnHosts::testShouldReturnCdnArray with data set #2":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #0":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #1":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #2":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #3":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #4":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #5":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #6":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_MaybeReplaceUrl::testShouldMaybeReplaceURL with data set #7":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_Rewrite::testShouldRewriteURL with data set \"testDefaultSiteURL\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_Rewrite::testShouldRewriteURL with data set \"testSiteURLWithPath\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_RewriteCssProperties::testShouldRewriteCSSProperties with data set \"testShouldRewriteInternalURLsToCDN\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_RewriteCssProperties::testShouldReturnOriginalWhenFilterIsFalse with data set \"testShouldRewriteInternalURLsToCDN\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_RewriteSrcset::testShouldRewriteSrcsetURLs with data set \"testShouldRewriteSrcsetWithCDN\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CDN\\Subscriber\\Test_RewriteSrcset::testShouldRewriteSrcsetURLs with data set \"testShouldRewriteSrcsetWithCDNWhenZoneIsImages\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\AdvancedCache\\Test_Activate::testShouldSetCorrectHooks":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\AdvancedCache\\Test_Deactivate::testShouldSetCorrectHooks":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetAdvancedCacheContent::testShouldReturnExpectedContent with data set #0":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetAdvancedCacheContent::testShouldReturnExpectedContent with data set #1":0.012,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetAdvancedCacheContent::testShouldReturnExpectedContent with data set #2":0.012,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetAdvancedCacheContent::testShouldReturnExpectedContent with data set #3":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\AdvancedCache\\Test_UpdateAdvancedCache::testUpdateAdvancedCache with data set \"shouldBailOutWhenShortCircuitFilterSet\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\AdvancedCache\\Test_UpdateAdvancedCache::testUpdateAdvancedCache with data set \"shouldWriteAdvancedCacheWhenNotPrevented\"":0.024,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldNotPurgeCacheWhenNotPublic_create_term\"":0.566,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldNotPurgeCacheWhenNotPublic_edit_term\"":0.552,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldNotPurgeCacheWhenNotPublic_delete_term\"":0.561,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldPurgeCacheWhenPublic_create_term\"":0.866,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldPurgeCacheWhenPublic_edit_term\"":0.856,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_MaybePurgeCacheOnTermChange::testShouldPurgeWhenExpected with data set \"testShouldPurgeCacheWhenPublic_delete_term\"":0.843,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeDatesArchives::testShouldCleanCache with data set \"testShouldCleanCacheNoWebP\"":0.763,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeDatesArchives::testShouldCleanCache with data set \"testShouldCleanCacheMobileActive\"":0.773,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeDatesArchives::testShouldCleanCache with data set \"testShouldCleanCachePagination\"":0.734,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeDatesArchives::testShouldCleanCache with data set \"testShouldNotCleanCacheWhenPage\"":0.735,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #0":0.159,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #1":0.176,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #2":0.146,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #3":0.174,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #4":0.148,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #5":0.16,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_GetRocketPostTermsUrls::testShouldReturnExpectedUrls with data set #6":0.183,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeUserCache::testShouldNotPurgeUserCacheWhenUserCacheDisabled":0.051,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeUserCache::testShoulNotPurgeUserCacheWhenCommonUserCacheEnabled":0.049,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeUserCache::testShouldPurgeCacheForUser with data set #0":0.057,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeUserCache::testShouldPurgeCacheForUser with data set #1":0.065,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeActionsSubscriber\\Test_PurgeUserCache::testShouldPurgeCacheForUser with data set #2":0.058,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldReturnNullWhenNoLifespan":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldReturnNullWhenNoURLs":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldDeleteCacheFilesOlderThanLifespan with data set #0":0.094,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldDeleteCacheFilesOlderThanLifespan with data set #1":0.087,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldDeleteCacheFilesOlderThanLifespan with data set #2":0.101,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_PurgeExpiredFiles::testShouldDeleteCacheFilesOlderThanLifespan with data set #3":0.116,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"ZeroInMinutesLifespan\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"UnderHalfHourInMinutesLifespan\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"UnderOneHourInMinutesLifespan\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"AboveOneHourInMinutesDirectlyLifespan\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"UnderTwoHoursInMinutesDirectlyLifespan\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"FiveHoursInMinutesLifespan\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"BailoutWithHourUnit\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\PurgeExpiredCache\\Test_UpdateLifespanValue::testShouldUpdateLifespan with data set \"BailoutWithDayUnit\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_GetCacheLifespan::testShouldReturnLifespan":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_GetCacheLifespan::testShouldReturnZeroWhenNoLifespan":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_GetCacheLifespan::testShouldReturnDefaultValueWhenIncorrect":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\TestGetSubscribedEvents::testShouldReturnSubscribedEventsArray":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_ScheduleEvent::testShouldScheduleEvent":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_ScheduleEvent::testShouldNotScheduleEventWhenNoLifespan":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_UpdateLifespanOptionOnUpdate::testShouldUpdateLifespan with data set \"ShouldChangeOptionsWhenUpdateFromVersionBefore3.8\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_UpdateLifespanOptionOnUpdate::testShouldUpdateLifespan with data set \"ShouldChangeOptionsWhenUpdateFromVersion3.8\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\PurgeExpired\\Subscriber\\Test_UpdateLifespanOptionOnUpdate::testShouldUpdateLifespan with data set \"ShouldNotChangeOptionsWhenUpdateFromVersionAbove3.8\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_Activate::testShouldSetCorrectHooks":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_Deactivate::testShouldSetCorrectHooks":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_FindWpconfigPath::testShouldReturnValidConfigFileName with data set \"testShouldFindDefaultWpconfig\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_FindWpconfigPath::testShouldReturnValidConfigFileName with data set \"testShouldFindAnotherWpconfig\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_FindWpconfigPath::testShouldReturnValidConfigFileName with data set \"testShouldFindAlternativeWpconfig\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_FindWpconfigPath::testShouldReturnValidConfigFileName with data set \"testShouldBailOutWpconfig\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_MaybePreventDeactivation::testShouldMaybePreventDeactivation with data set \"testShouldBailOutWhenConfigFileFound\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_MaybePreventDeactivation::testShouldMaybePreventDeactivation with data set \"testShouldBailOutWhenSetCacheConstFilterFalse\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_MaybePreventDeactivation::testShouldMaybePreventDeactivation with data set \"testShouldAddCauseToCausesWhenPrevented\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_SetWpCacheConstant::testShouldAddWpCacheConstant with data set \"ShouldAddWpCache\"":0.076,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_SetWpCacheConstant::testShouldAddWpCacheConstant with data set \"ShouldAddWpCacheWhenCommentInFirstLine\"":0.07,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_SetWpCacheConstant::testShouldAddWpCacheConstant with data set \"ShouldNotAddWpCache\"":0.067,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_SetWpCacheConstant::testShouldAddWpCacheConstant with data set \"ShouldBailOutWhenNotValidKey\"":0.068,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_SetWpCacheConstant::testShouldAddWpCacheConstant with data set \"ShouldBailOutWhenFilterIsFalse\"":0.07,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_UpdateWPCache::testShouldBailOutWhenNotRockedValidKey":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Cache\\WPCache\\Test_UpdateWPCache::testShouldCallSetCacheConstant":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfBlockExternal\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponse400\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponseCodeNotExpected\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponseBodyEmpty\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldSucceed\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponse400Mobile\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponseCodeNotExpectedMobile\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldBailoutIfResponseBodyEmptyMobile\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\APIClient\\Test_SendGenerationRequest::testShouldDoExpected with data set \"testShouldSucceedMobile\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnDefaultCSS\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnDefaultCSSMobile\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnHomeCSS\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnHomeCSSMobile\"":0.043,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnFrontPageCSS\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnFrontPageCSSMobile\"":0.06,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnCategoryPageCSS\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnCategoryPageCSSMobile\"":0.053,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnTagCSS\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnTagCSSMobile\"":0.051,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnTaxCSS\"":0.097,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnTaxCSSMobile\"":0.098,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnFallbackForTaxWhenCSSDoesNotExist\"":0.096,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnEmptyForTaxWhenCssDoesNotExistMobileNoFallback\"":0.09,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnSingularCSS\"":0.056,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnSingularCSSNoMobile\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnSingularCustomPostsCSS\"":0.075,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCriticalCssContent::testShouldDoExpected with data set \"testShouldReturnSingularCustomPostsCSSMobile\"":0.083,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnDefaultCSS\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnDefaultCSSMobile\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnHomeCSS\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnHomeCSSMobile\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnFrontPageCSS\"":0.039,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnFrontPageCSSMobile\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnCategoryPageCSS\"":0.039,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnCategoryPageCSSMobile\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnTagCSS\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnTagCSSMobile\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnTaxCSS\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnTaxCSSMobile\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnEmptyWhenTaxDoesNotExist\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnEmptyWhenTaxDoesNotExistMobile\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnSingularCSS\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnSingularCSSNoMobile\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnSingularCustomPostsCSS\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetCurrentPageCriticalCSS::testShouldDoExpected with data set \"testShouldReturnSingularCustomPostsCSSMobile\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetExcludeAsyncCss::testShouldGetExcludedFiles with data set \"shouldReturnEmptyValues\"":0.117,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetExcludeAsyncCss::testShouldGetExcludedFiles with data set \"shouldReturnValidValues\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_GetExcludeAsyncCss::testShouldGetExcludedFiles with data set \"shouldReturnUniqueValues\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_ProcessHandler::testShouldHandleProcess with data set \"testShouldBailOutOnFilter\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_ProcessHandler::testShouldHandleProcess with data set \"testShouldBailOutOnProcessAlreadyRunning\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSS\\Test_ProcessHandler::testShouldHandleProcess with data set \"testShouldSucceed\"":0.483,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSGeneration\\test_Task::testShouldDoExpected with data set \"testShouldReturnFalseWhenError\"":0.059,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSGeneration\\test_Task::testShouldDoExpected with data set \"testShouldReturnFalseAndSetTransientWhenPending\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSGeneration\\test_Task::testShouldDoExpected with data set \"testShouldReturnFalseWhenSuccess\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_DeleteCpcss::testShouldDoExpected with data set \"testShouldBailOutNoPermissions\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_DeleteCpcss::testShouldDoExpected with data set \"testShouldBailoutNoAsync\"":0.061,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_DeleteCpcss::testShouldDoExpected with data set \"testShouldDeleteOnlyDesktop\"":0.064,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_DeleteCpcss::testShouldDoExpected with data set \"testShouldDeleteBoth\"":0.079,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_ExcludeInlineJs::testShouldExcludeInlineJs with data set \"testShouldAddWPR\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_ExcludeInlineJs::testShouldExcludeInlineJs with data set \"testShouldAddWPRNotEmptyArray\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_ExcludeInlineJs::testShouldExcludeInlineJs with data set \"testShouldAddWPREvenIfDuplicate\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_GenerateCriticalCssOnActivation::testShouldProcessNonMultisite with data set \"testShouldDoNothingWhenAsynCssOff\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_GenerateCriticalCssOnActivation::testShouldProcessNonMultisite with data set \"testShouldDoNothingWhenAsynCssDisabled\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_GenerateCriticalCssOnActivation::testShouldProcessNonMultisite with data set \"testShouldDoNothingWhenAsynCSSEnabledAndDidntChange\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_GenerateCriticalCssOnActivation::testShouldProcessNonMultisite with data set \"testShouldGenerateWhenFilesDontExist\"":0.248,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_GenerateCriticalCssOnActivation::testShouldProcessNonMultisite with data set \"testShouldGenerateWhenFilesDontExistAndMobile\"":0.252,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnDefaultCSS\"":0.045,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnHomeCSS\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnFrontPageCSS\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnCategoryPageCSS\"":0.057,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnTagCSS\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnTaxCSS\"":0.097,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnTaxDoesNotExistReturnFalseFallbackCSS\"":0.087,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnTaxDoesNotExistReturnFallbackCSS\"":0.085,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnSingularCSS\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_InsertCriticalCssBuffer::testShouldDoExpected with data set \"testShouldReturnSingularCustomPostsCSS\"":0.075,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenAsyncCssMobileDisabled\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenAsyncCssMobileNotFound\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenDoCachingMobileFilesDisabledANDAsyncCssMobileEnabled\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenDoCachingMobileFilesNotFoundANDAsyncCssMobileEnabled\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenOldANDNewValueOfAsyncCssNotFound\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldBailOutWhenAsyncCssNewlyActivated\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_MaybeGenerateCpcssMobile::testShouldCallProcessHandler with data set \"testShouldSucceed\"":0.262,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_stopCpcssProcess::testShouldDoExpected with data set \"testCPCSShouldNotStopProcessUpgrade\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_stopCpcssProcess::testShouldDoExpected with data set \"testCPCSShouldStopProcessUpgrade\"":0.253,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_stopCpcssProcess::testShouldDoExpected with data set \"testCPCSShouldNotStopProcessRollBack\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\CriticalCSSSubscriber\\Test_stopCpcssProcess::testShouldDoExpected with data set \"testCPCSShouldStopProcessRollBack\"":0.253,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldSuccessfullyDeleteFile\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldBailOutFileNotExists\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldBailOutFileExistsNotDeleted\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldSuccessfullyDeleteFileMobile\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldBailOutFileNotExistsMobile\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCPCSS::testShouldDoExpected with data set \"testShouldBailOutFileExistsNotDeletedMobile\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #0":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #1":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #2":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #3":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #4":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #5":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #6":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #7":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #8":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #9":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #10":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_DeleteCacheJobId::testShouldDoExpected with data set #11":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #0":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #1":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #2":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #3":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #4":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #5":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #6":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #7":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #8":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #9":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #10":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_GetCacheJobId::testShouldDoExpected with data set #11":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldUpdateExistingCPCSSFile\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldCreateCPCSSFileForPost500\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldCreateCPCSSFileWithFontSwap\"":0.02,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldCreateCPCSSFileForPostLoremIpsum\"":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldUpdateExistingCPCSSFileWhenMobile\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldCrateCPCSSFileForPost500WhenMobile\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SaveCPCSS::testShouldDoExpected with data set \"testShouldCrateCPCSSFileForPostLoremIpsumWhenMobile\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #0":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #1":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #2":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #3":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #4":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #5":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #6":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #7":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #8":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #9":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #10":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\DataManager\\Test_SetCacheJobId::testShouldDoExpected with data set #11":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutOnRequestTimeOut\"":0.056,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutIfPostRequest400\"":0.02,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutIfPostRequestCodeNotExpected\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutIfPostRequestBodyEmpty\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutIfGetRequestCode400\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldBailoutIfGetRequestCode404\"":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldNotSaveCPCSSForPost\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldSaveCPCSSForPost\"":0.033,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldSaveCPCSSForHome\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\ProcessorService\\Test_ProcessGenerate::testShouldDoExpected with data set \"testShouldSaveCPCSSForCategory\"":0.025,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutWithNoCapabilities\"":0.051,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostDoesNotExist\"":0.091,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostCPCSSNotExist\"":0.12,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldReturnSuccessWhenCPCSSExist_post\"":0.221,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldReturnSuccessWhenCPCSSExist_post10\"":0.228,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldReturnSuccessWhenCPCSSExist_page\"":0.147,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldReturnSuccessWhenCPCSSExist_ButMobileDoesNotExist\"":0.182,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Delete::testShouldDoExpectedWhenNotMultisite with data set \"testShouldReturnSuccessWhenCPCSSAndMobileExist_post\"":0.237,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfAsyncCssMobileDisabled\"":0.066,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfDoCachingMobileFilesDisabled\"":0.066,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostDoesNotExist\"":0.063,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutWhenNotPublished\"":0.106,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutOnRequestTimeOut\"":0.088,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequest400\"":0.102,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequestCodeNotExpected\"":0.092,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequestBodyEmpty\"":0.101,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfGetRequestCode400\"":0.107,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfGetRequestCode404\"":0.109,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldSaveCPCSSForPost\"":0.152,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostDoesNotExistMobile\"":0.065,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutWhenNotPublishedMobile\"":0.109,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutOnRequestTimeOutMobile\"":0.097,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequest400Mobile\"":0.097,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequestCodeNotExpectedMobile\"":0.094,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfPostRequestBodyEmptyMobile\"":0.094,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfGetRequestCode400Mobile\"":0.11,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldBailoutIfGetRequestCode404Mobile\"":0.115,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_Generate::testShouldDoExpectedWhenNotMultisite with data set \"testShouldSaveCPCSSForPostMobile\"":0.155,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_RegisterDeleteRouter::testShouldRegisterRoute":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\CriticalPath\\RESTWPPost\\Test_RegisterGenerateRoute::testShouldRegisterRoute":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\HealthCheck\\CacheDirSizeCheck\\Test_CacheDirSizeCheck::testShouldCheckDirSizeWhenOptionIsDisabled with data set \"option_disabled\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\HealthCheck\\CacheDirSizeCheck\\Test_CacheDirSizeCheck::testShouldCheckDirSizeWhenOptionIsDisabled with data set \"option_enabled_dir_size_ok\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\HealthCheck\\CacheDirSizeCheck\\Test_CacheDirSizeCheck::testShouldCheckDirSizeWhenOptionIsDisabled with data set \"option_enabled_dir_size_not_ok\"":0.02,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldReturnDataWhenCached\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldReturnFalseWhenTimeoutActive\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testReturnFalseWhenWPError\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldReturnFalseWhenNot200\"":0.025,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldReturnFalseWhenNoBody\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldReturnDataWhenSuccess\"":0.024,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldDoubleTimeoutDurationFromPreviousDuration\"":0.024,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\License\\API\\PricingClient\\GetPricingData::testShouldReturnExpected with data set \"testShouldNotSetTimeoutDurationLongerThanADay\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\EmojisSubscriber\\disableEmoji::testShouldDoExpected with data set \"testShouldDoNothingWhenBypass\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\EmojisSubscriber\\disableEmoji::testShouldDoExpected with data set \"testShouldDoNothingWhenOptionDisabled\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\EmojisSubscriber\\disableEmoji::testShouldDoExpected with data set \"testShouldUpdateActions&Filters\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenNoImages\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWithImageHasWidthHeightAttributes\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasAttribute_data-lazy-original\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasAttribute_data-no-image-dimensions\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasImageWithoutSrcAttribute\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasExternalValidImageWithDistantFilterDisabled\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasExternalNotFoundImage\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldChangeHTMLWhenHasExternalFoundImage\"":0.254,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenHasInternalNotFoundImage\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldChangeHTMLWhenHasInternalFoundImage\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWithImageInsidePictureWithoutFilter\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldChangeHTMLWithImageInsidePictureWithFilter\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldChangeHTMLWithRelativeImage\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldAddMissingHeightWhenOnlyWidthSpecified\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldAddMissingWidthWhenOnlyHeightSpecified\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldAddIntegerValuesWhenRatioResultsInFloat\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldNotChangeHTMLWhenNonNumericValueGivenForDimension\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldAddDimensionsWhenSVG\"":0.021,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"shouldAddDimensionsFromVieBoxWhenSVGWithNoDimensionsAttributes\"":0.02,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\ImageDimensions\\Subscriber\\Test_SpecifyImageDimensions::testShouldAddMissedDimensions with data set \"testShouldNotAddDimensionsWhenImageInsideAScript\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenEmptyOptionAndFilterAttribute\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnUpdatedArrayWhenOptionAndFilterAttribute\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenEmptyOptionAndFilterSrc\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnUpdatedArrayWhenOptionAndFilterSrc\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenEmptyOptionAndFilterIframe\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_AddExclusions::testShouldReturnExpected with data set \"testShouldReturnUpdatedArrayWhenOptionAndFilterIframe\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsAdmin\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsFeed\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsPreview\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsSearch\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsRest\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenIsNotRocketOptimize\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnNothingWhenLazyloadDisabled\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnLazyloadForImagesOnly\"":0.049,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnLazyloadForIframesOnly\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnLazyloadForImagesAndIframes\"":0.018,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnLazyloadForImagesAndIframesWithCustomThreshold\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_InsertLazyloadScript::testShouldInsertLazyloadScript with data set \"testShouldReturnLazyloadForImagesAndIframesWithoutNativeLazyloadForImages\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsAdmin\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsFeed\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsPreview\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsSearch\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsRestRequest\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsDoNotLazyload\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnSameWhenIsDoNotRocketOptimize\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnUpdatedWhenNativeLazyloadImagesOnly\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_Lazyload::testShouldDoExpected with data set \"shouldReturnUpdatedWhenJSLazyloadImagesOnly\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_LazyloadResponsive::testShouldReturnExpected with data set \"shouldReturnSameWhenNative\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_LazyloadResponsive::testShouldReturnExpected with data set \"shouldReturnUpdatedWhenNotNative\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnFalseWhenValueIsFalse\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenLazyloadImagesDisabled\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnFalseWhenLazyloadImagesEnabled\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnTrueWhenLazyloadImagesDisabledByFilter\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenLazyloadIframesDisabled\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnFalseWhenLazyloadIframesEnabled\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnTrueWhenLazyloadIframesDisabledByFilter\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Media\\Lazyload\\Subscriber\\Test_MaybeDisableCoreLazyload::testShouldReturnExpected with data set \"testShouldReturnDefaultWhenInvalidTag\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\AssetsLocalCache\\Test_GetContent::testShouldSaveLocalContent with data set \"testShouldReturnContent\"":0.113,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #0":0.084,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #1":0.078,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #2":0.122,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #3":0.081,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #4":0.082,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #5":0.076,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #6":0.118,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #7":0.074,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #8":0.072,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #9":0.074,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #10":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #11":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #12":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #13":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #14":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #15":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #16":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #17":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\CacheDynamicResource\\Test_CacheDynamicResource::testCacheDynamicResource with data set #18":0.026,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenConstantSet\"":0.086,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenOptionDisabled\"":0.045,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenDisabledByPostMeta\"":0.046,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenjQueryExcluded\"":0.049,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldReturnUpdatedHTML\"":0.046,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingStringFilter\"":0.047,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingArrayOfStringsFilter\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingArrayOfIntegersFilter\"":0.046,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingObjectFilter\"":0.047,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingEmptyFilter\"":0.045,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingBooleanFilter\"":0.036,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferInlineJs::testShouldReturnExpected with data set \"testShouldExcludeUsingFloatFilter\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenConstantSet\"":0.036,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenOptionDisabled\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenDisabledByPostMeta\"":0.046,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnUpdatedHTML\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnUpdatedHTMLWhenExcludedValue\"":0.037,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldEvaluateRegexPatternInOptions\"":0.043,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_DeferJs::testShouldReturnExpected with data set \"testShouldReturnOriginalWithoutThrowingWarningWhenBadPatternInOptions\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_ExcludeJqueryCombine::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenConstantSet\"":0.034,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_ExcludeJqueryCombine::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenDisabledByPostMeta\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_ExcludeJqueryCombine::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenDeferJSDisabled\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_ExcludeJqueryCombine::testShouldReturnExpected with data set \"testShouldReturnOriginalWhenCombineJSDisabled\"":0.033,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DeferJS\\Subscriber\\Test_ExcludeJqueryCombine::testShouldReturnExpected with data set \"testShouldReturnUpdatedExcludedArray\"":0.039,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldNotAddScriptsWhenBypass\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldNotAddScriptsWhenDONOTOPTIMIZE\"":0.001,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldNotAddScriptsWhenDelaySettingDisabled\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldAddScripts\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldAddScriptsAfterMetaCharset\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldAddScriptsAfterMEtaHttpEquivCharset\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldAddScriptsAfterHeadInvalidCharsetHead\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_AddDelayJsScript::testShouldDoExpected with data set \"testShouldAddScriptsAfterHeadCharsetBody\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldNotDelayJSWhenBypass\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldDoNothingWhenDoNotOptimizeEnabled\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldDoNothingWhenPostExcluded\"":0.07,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldDoNothingWhenDelaySettingDisabled\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldDelayJS\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\DelayJS\\Subscriber\\Test_DelayJs::testShouldReturnExpected with data set \"testShouldDelayJSWithUpgradeExclusions\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWithoutSubsets\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldUseFilteredDisplayValue\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWithSubsets\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWithoutSubsetsAndNoEnding|\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWithoutSubsetsWhenMalformedURL\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWithSubsetsWhenMalformedURL\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldOptimizeSingleGoogleFontsWhenNoParam\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldOptimizeSingleGoogleFontsWhenParam\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldOptimizeSingleGoogleFontsWhenInvalidParam\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldOptimizeSingleGoogleFontsWhenEncodedParam\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWhenMultipleTitleTags\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWhenTitleTagInsideBody\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1 with data set \"testShouldCombineGoogleFontsWhenTitleTagInsideSvgTag\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldReturnGivenHTMLWhenNoRelevantTags\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldReturnTagWithFontDisplayWhenSingleTagGiven\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldNotCombineMultipleTagsWithTextParam\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldCombineMultipleTags\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldCombineMultipleTagsWithMultipleFamiliesInTag\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldReplaceAnotherFontDisplayValueWithSwap\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV2 with data set \"shouldReplaceDisplayValueWithFilteredValue\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldReturnOptimizedTagWhenSingleTagGiven\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldUseFilteredDisplayValue\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldNotCombineMultipleTagsWithTextParam\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldCombineMultipleTags\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldCombineMultipleTagsWithMultipleFamiliesInTag\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Test_Optimize::testShouldCombineGoogleFontsV1V2 with data set \"shouldRemovePreconnectWhenNoGoogleFontsPresentOnPage\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Subscriber\\Test_Preconnect::testShouldReturnExpectedArray with data set \"NowprocketQueryString\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Subscriber\\Test_Preconnect::testShouldReturnExpectedArray with data set \"OptimizeGoogleFontsDisabled\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Subscriber\\Test_Preconnect::testShouldReturnExpectedArray with data set \"RelationTypeNotPreconnect\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Subscriber\\Test_Preconnect::testShouldReturnExpectedArray with data set \"RelationTypePreconnect\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\GoogleFonts\\Subscriber\\Test_Preconnect::testShouldReturnExpectedArray with data set \"RelationTypePreconnectAndValues\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_ExtractIeConditionals::testExtractIeConditionals with data set \"shouldBailOutWhenNoIEConditional\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_ExtractIeConditionals::testExtractIeConditionals with data set \"shouldExtractConditional\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_ExtractIeConditionals::testExtractIeConditionals with data set \"shouldInjectMultipleConditionals\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_ExtractIeConditionals::testExtractIeConditionals with data set \"shouldExtractMultipleConditionals_whenInHeadAndBody\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_InjectIeConditionals::testInjectIeConditionals with data set \"shouldBailOutWhenNoConditionalTag\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_InjectIeConditionals::testInjectIeConditionals with data set \"shouldInjectConditional\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_InjectIeConditionals::testInjectIeConditionals with data set \"shouldInjectMultipleConditionals\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_InjectIeConditionals::testInjectIeConditionals with data set \"shouldInjectMultipleConditionals_whenInHeadAndBody\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\IEConditionalSubscriber\\Test_InjectIeConditionals::testInjectIeConditionals with data set \"shouldInjectAndFixMultipleBackslashesInScript\"":0.009,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFiles\"":0.373,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFilesWithIntegrity\"":0.455,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFilesWithRelativeUrls\"":0.308,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFilesAndAddCDNCname\"":0.193,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFIleWithCDNUrlAlready\"":0.19,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"minifyCssFilesWithCDNUrlAndSubdirAlready\"":0.193,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFiles\"":0.059,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineNotfoundCssFiles\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithImport\"":0.045,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithImportJSFile\"":0.047,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithNestedImport\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithImportNotFirst\"":0.053,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithExternalCSS\"":0.125,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithCDNUrl1\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFilesWithCDNUrl2\"":0.039,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\CSS\\Subscriber\\Test_Process::testShouldMinifyCSS with data set \"combineCssFIlesWithCDNUrlWithSubdir\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"minifyJSFile\"":0.558,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"minifyJSFileWithIntegrity\"":0.659,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"minifyJSFileForGoogleCSE\"":0.023,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"minifyJSFilesToCDNUrl\"":0.208,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldMinifyJSFilesWithCDNUrl_withoutSubdir\"":0.212,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldMinifyJSFilesWithCDNUrlWithSubDir\"":0.215,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSFiles_whenNoCDN\"":0.061,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSFilesToCDNUrl\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSFilesWithDefer\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSFilesWithDeferAndExternalJQueryLibrary\"":0.037,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSWithCdnFilesWithDefer\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSFilesWithCDNUrlWithDeferAndExternalJQueryLibrary\"":0.04,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"shouldCombineJSfilesWithCDNUrlAndNoSubDir\"":0.043,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\Minify\\JS\\Subscriber\\Test_Process::testShouldMinifyJS with data set \"combineJSFilesWithCDNUrlWithSubdir\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Database\\Test_DeleteOldResources::testShouldTruncateTableWhenOptionIsEnabled":0.048,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Database\\Test_DeleteOldUsedCss::testShouldTruncateTableWhenOptionIsEnabled":0.037,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Database\\Test_TruncateUsedCssTable::testShouldTruncateTableWhenOptionIsEnabled":0.063,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_AddOptionsFirstTime::testShouldDoExpectedForFirstInstallOptions with data set \"shouldReturnValidOptionsWithEmptyOptions\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_AddOptionsFirstTime::testShouldDoExpectedForFirstInstallOptions with data set \"shouldReturnValidOptionsWithOptionsNotArray\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_AddOptionsFirstTime::testShouldDoExpectedForFirstInstallOptions with data set \"shouldOverrideOptions\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_AddOptionsFirstTime::testShouldDoExpectedForFirstInstallOptions with data set \"shouldNotOverrideOtherOptions\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_CleanUsedCssAndCache::testShouldDoExpected with data set \"shouldNotTruncateUnusedCSSDueToMissingSettings\"":0.035,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_CleanUsedCssAndCache::testShouldDoExpected with data set \"shouldNotTruncateUnusedCSSDueToSettings\"":0.03,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_CleanUsedCssAndCache::testShouldDoExpected with data set \"shouldTruncateUnusedCSS\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_CleanUsedCssAndCache::testShouldDoExpected with data set \"shouldDleteCompletedUnusedCSS\"":0.052,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_DeleteTermUsedCss::testShouldDoExpected with data set \"shouldDoNothingWhenRucssDisabled\"":0.037,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_DeleteTermUsedCss::testShouldDoExpected with data set \"shouldDoNothingWhenWPError\"":0.038,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_DeleteTermUsedCss::testShouldDoExpected with data set \"shouldDelete\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_DeleteUsedCssOnUpdateOrDelete::testShouldTruncateTableWhenOptionIsEnabled with data set \"shouldNotDeleteOnUpdateDueToMissingSettings\"":0.124,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_DeleteUsedCssOnUpdateOrDelete::testShouldTruncateTableWhenOptionIsEnabled with data set \"shouldDeleteOnUpdate\"":0.138,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_TruncateUsedCss::testShouldTruncateTableWhenOptionIsEnabled with data set \"shouldNotTruncateUnusedCSSDueToMissingSettings\"":0.042,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Admin\\Subscriber\\Test_TruncateUsedCss::testShouldTruncateTableWhenOptionIsEnabled with data set \"shouldTruncateUnusedCSS\"":0.058,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_AddInterval::testShouldDoExpected with data set \"shouldReturnDefaultWhenRUCSSDisabled\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_AddInterval::testShouldDoExpected with data set \"shouldAddDefaultIntervalWhenRUCSSEnabled\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_AddInterval::testShouldDoExpected with data set \"shouldAddFilteredIntervalWhenRUCSSEnabledAndFilter\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_CronCleanRows::testShouldDoExpected with data set \"shouldNotDeleteOnUpdateDueToMissingSettings\"":0.061,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_CronCleanRows::testShouldDoExpected with data set \"shouldDeleteOnUpdate\"":0.058,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_ScheduleCleanNotCommonlyUsedRows::testShouldDoExpected with data set \"shouldNotScheduleCronDueToMissingSettings\"":0.053,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_ScheduleCleanNotCommonlyUsedRows::testShouldDoExpected with data set \"shouldScheduleCron\"":0.069,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_SchedulePendingJobs::testShouldDoExpected with data set \"shouldRemoveScheduledWhenRUCSSDisabledAndScheduled\"":0.057,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_SchedulePendingJobs::testShouldDoExpected with data set \"shouldNotScheduleCronWhenRUCSSDisabled\"":0.051,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_SchedulePendingJobs::testShouldDoExpected with data set \"shouldNotScheduleCronWhenRUCSSEnabledAndScheduled\"":0.058,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Cron\\Subscriber\\Test_SchedulePendingJobs::testShouldDoExpected with data set \"shouldScheduleCron\"":0.059,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Database\\Queries\\ResourcesQuery\\Test_CreateOrUpdate::testShouldCreateNewItemIfNotExists":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Database\\Queries\\ResourcesQuery\\Test_CreateOrUpdate::testShouldUpdateItemIfExists":0.022,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Database\\Queries\\ResourcesQuery\\Test_RemoveByUrl::testShouldRemoveResourceItem":0.016,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Frontend\\Subscriber\\Test_MaybeDisablePreloadFonts::testShouldReturnExpected with data set \"testShouldReturnFalseWhenDONOTROCKETOPTIMIZE\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Frontend\\Subscriber\\Test_MaybeDisablePreloadFonts::testShouldReturnExpected with data set \"testShouldReturnFalseWhenRUCSSDisabled\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Frontend\\Subscriber\\Test_MaybeDisablePreloadFonts::testShouldReturnExpected with data set \"testShouldReturnFalseWhenRUCSSDisabledPost\"":0.044,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Optimization\\RUCSS\\Frontend\\Subscriber\\Test_MaybeDisablePreloadFonts::testShouldReturnExpected with data set \"testShouldReturnTrueWhenRUCSSEnabled\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"NowprocketQueryString\"":0.029,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"DoNothingWhenFilterIsTrue\"":0.029,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"emptyPreloadFontsOption\"":0.029,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"invalidPreloadFontsOptionExtensions\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"validPreloadFontsOptions\"":0.028,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Fonts\\Test_PreloadFonts::testShouldAddPreloadTagsWhenValidFonts with data set \"validPreloadFontsOptionsWithCDN\"":0.032,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_ParseSitemap::testShouldReturnAsExpected with data set \"errorOnFetchShouldAddNoJob\"":0.028,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_ParseSitemap::testShouldReturnAsExpected with data set \"fetchSitemapShouldCreateJobs\"":0.066,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadWithFailUrlShouldContinue\"":0.039,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadNoMobileShouldPreloadOnlyOnce\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Frontend\\Subscriber\\Test_PreloadUrl::testShouldReturnAsExpected with data set \"preloadWithSuccessShouldContinue\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\FullProcess\\Test_GetItemUserAgent::testShouldBeDetectedAsMobileByWordPressWhenMobileItem":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\FullProcess\\Test_GetItemUserAgent::testShouldNotBeDetectedAsMobileByWordPressWhenNotMobileItem":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\FullProcess\\Test_IsMobilePreloadEnabled::testShouldReturnTrueWhenOptionsEnabled":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\FullProcess\\Test_IsMobilePreloadEnabled::testShouldReturnFalseWhenOptionsDisabled":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\FullProcess\\Test_IsMobilePreloadEnabled::testShouldReturnBooleanWhenFiltered":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Homepage\\Test_Preload::testShouldPreloadWhenValidUrls":0.504,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Homepage\\Test_StopPreload::testShouldStopPreloadRollback":0.513,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Homepage\\Test_StopPreload::testShouldStopPreloadUpgrade":0.486,"WP_Rocket\\Tests\\Unit\\inc\\Engine\\Preload\\Links\\AdminSubscriber\\Test_AddIncompatiblePlugins::testShouldDoExpected with data set \"testShouldReturnDefaultWhenOptionDisabled\"":0.006,"WP_Rocket\\Tests\\Unit\\inc\\Engine\\Preload\\Links\\AdminSubscriber\\Test_AddIncompatiblePlugins::testShouldDoExpected with data set \"testShouldReturnUpdatedArrayWhenOptionEnabled\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Links\\Subscriber\\Test_AddPreloadScript::testShouldDoExpected with data set \"testShouldDoNothingWhenBypass\"":0.013,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Links\\Subscriber\\Test_AddPreloadScript::testShouldDoExpected with data set \"testShouldDoNothingWhenOptionDisabled\"":0.014,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Links\\Subscriber\\Test_AddPreloadScript::testShouldDoExpected with data set \"testShouldReturnPreloadScript\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_MaybeDispatch::testShouldDispatchWhenUrlsAndNoMobilePreload":0.005,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_MaybeDispatch::testShouldDispatchWhenUrlsAndMobilePreload":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutNoManualPreload\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutNoDeleted\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"bailoutAllUrlsHaveLoggedIn\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"preloadUrlsSlashedPermalink\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\PartialPreloadSubscriber\\Test_PreloadAfterAutomaticCachePurge::testShouldDoExpectedWithSlashedUrl with data set \"preloadUrlsUnSlashedPermalink\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldNotPreloadWhenNoUrls":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldPreloadSitemapsWhenValidUrls":0.008,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Sitemap\\Test_RunPreload::testShouldPreloadFallbackUrlsWhenInvalidSitemap":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"sitemapFromThirdPartyShouldCreateJob\"":0.019,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"noChangeShouldNotCreateAJob\"":0.011,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"disableShouldNotCreateAJob\"":0.01,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Preload\\Subscriber\\Test_LoadInitialSitemap::testShouldReturnAsExpected with data set \"sitemapFromWordPressShouldCreateJob\"":0.024,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Data\\Test_GetSupportData::testShouldReturnExpected with data set \"testShouldReturnSupportData\"":0.017,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Subscriber\\Test_RegisterSupportRoute::testShouldRegisterRoute":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Subscriber\\Test_RegisterSupportRoute::testShouldReturnExpected with data set \"testShouldReturnErrorWhenWrongKeyAndEmail\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Subscriber\\Test_RegisterSupportRoute::testShouldReturnExpected with data set \"testShouldReturnErrorWhenWrongKey\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Subscriber\\Test_RegisterSupportRoute::testShouldReturnExpected with data set \"testShouldReturnErrorWhenWrongEmail\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\Engine\\Support\\Subscriber\\Test_RegisterSupportRoute::testShouldReturnExpected with data set \"testShouldReturnSupportDataWhenValid\"":0.016,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_AddDelayJsExclusion::testShouldDoExpected with data set \"shouldDoNothingWhenDelayJsDisabled\"":0.009,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_AddDelayJsExclusion::testShouldDoExpected with data set \"shouldDoNothingWhenPatternAlreadyExists\"":0.008,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_AddDelayJsExclusion::testShouldDoExpected with data set \"shouldUpdateSettingsWhenPatternNotAlreadyExists\"":0.01,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_MaybeAddDelayJsExclusion::testShouldDoExpected with data set \"testShouldDoNothingWhenAdthriveDisabled\"":0.009,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_MaybeAddDelayJsExclusion::testShouldDoExpected with data set \"testShouldDoNothingWhenDelayJsDisabled\"":0.009,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_MaybeAddDelayJsExclusion::testShouldDoExpected with data set \"testShouldDoNothingWhenSameDelayJsValue\"":0.01,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_MaybeAddDelayJsExclusion::testShouldDoExpected with data set \"testShouldDoNothingWhenPatternAlreadyExcluded\"":0.01,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Ads\\Adthrive\\Test_MaybeAddDelayJsExclusion::testShouldDoExpected with data set \"testShouldAddExclusion\"":0.008,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Plugins\\InlineRelatedPosts\\Test_ExcludeInlineFromRucss::testShouldReturnExpected with data set \"shouldExcludeInlineFromRUCSS\"":0.005,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Optimization\\Ezoic\\Test_AddConflict::testShouldReturnExpected":0.004,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Optimization\\Ezoic\\Test_Explanations::testShouldReturnExpected":0.006,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Optimization\\WPMeteor\\Test_DisableDelayJs::testShouldReturnExpected":0.006,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Optimization\\WPMeteor\\Test_MaybeDisableDelayJsField::testShouldReturnExpected with data set \"shouldReturnDefaultFieldWhenWPMeteorDisabled\"":0.007,"WP_Rocket\\Tests\\Integration\\Inc\\ThirdParty\\Plugins\\Optimization\\WPMeteor\\Test_MaybeDisableDelayJsField::testShouldReturnExpected with data set \"shouldReturnUpdateFieldWhenWPMeteorActive\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Plugins\\UnlimitedElements\\Test_ExcludeInlineFromRucss::testShouldReturnExpected with data set \"shouldExcludeInlineFromRUCSS\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Avada\\Test_CleanDomain::testShouldCleanCacheWhenAvadaCacheIsCleaned":0.036,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Avada\\Test_ExcludeDeferJs::testShouldExcludeFromDeferJSMaps":0.01,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Avada\\Test_ExcludeDelayJs::testShouldReturnExpected with data set \"shouldReturnUpdatedExclusions\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #0":0.021,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #1":0.022,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #2":0.02,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #3":0.046,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #4":0.049,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #5":0.047,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #6":0.046,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Bridge\\Test_MaybeClearCache::testShouldCleanCacheWhenSettingsMatch with data set #7":0.046,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_disableDiviJqueryBody::testDisableDiviJqueryBody with data set \"shouldDisableDiviJqueryBody\"":0.026,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_DisableDynamicCssOnRucss::testShouldReturnAsExpected with data set \"shouldDisableOnRUCSSActivated\"":0.026,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_DisableDynamicCssOnRucss::testShouldReturnAsExpected with data set \"shouldBeEnabledOnRUCSSDisabled\"":0.026,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_DisableImageDimensionsHeightPercentage::testRemovesCorrectImagesFromAddDimensionsArray with data set \"shouldFilterLogoWhenDivi\"":0.032,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_DisableImageDimensionsHeightPercentage::testRemovesCorrectImagesFromAddDimensionsArray with data set \"shouldFilterLogoWhenDiviChild\"":0.041,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_DisableImageDimensionsHeightPercentage::testRemovesCorrectImagesFromAddDimensionsArray with data set \"shouldFilterOnCaseInsensitiveAttribute\"":0.027,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_MaybeDisableYoutubePreview::testSetsCorrectOptions with data set \"shouldNotDisableSettingWhenThemeNotDivi\"":0.34,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_MaybeDisableYoutubePreview::testSetsCorrectOptions with data set \"shouldNotDisableSettingWhenChildThemeNotDiviParent\"":0.342,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_MaybeDisableYoutubePreview::testSetsCorrectOptions with data set \"shouldDisableSettingWhenThemeDivi\"":0.328,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Themes\\Divi\\Test_MaybeDisableYoutubePreview::testSetsCorrectOptions with data set \"shouldDisableSettingWhenChildThemeDiviParent\"":0.332,"WP_Rocket\\Tests\\Integration\\inc\\ThirdParty\\Test_ThirdParty::testShouldNotLoadHostingFilesWhenNotPresent":0.01,"WP_Rocket\\Tests\\Integration\\inc\\classes\\Buffer\\Tests\\Test_IsSpeedTool::testShouldReturnTrueWhenLighthouse":0.001,"WP_Rocket\\Tests\\Integration\\inc\\classes\\subscriber\\Media\\WebpSubscriber\\Test_ConvertToWebp::testShouldReturnHtmlWithCommentWhenNoMatches with data set #0":0.006,"WP_Rocket\\Tests\\Integration\\inc\\classes\\subscriber\\Media\\WebpSubscriber\\Test_ConvertToWebp::testShouldReturnHtmlWithCommentWhenNoMatches with data set #1":0.004,"WP_Rocket\\Tests\\Integration\\inc\\classes\\subscriber\\Media\\WebpSubscriber\\Test_ConvertToWebp::testShouldReturnHtmlWithCommentWhenNoMatches with data set #2":0.005,"WP_Rocket\\Tests\\Integration\\inc\\classes\\subscriber\\Media\\WebpSubscriber\\Test_ConvertToWebp::testShouldReturnHtmlWithCommentWhenNoMatches with data set #3":0.006,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketCleanCacheThemeUpdate::testShouldCleanExpected with data set \"shouldBailOutWhenActionNotUpdate\"":1.224,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketCleanCacheThemeUpdate::testShouldCleanExpected with data set \"shouldBailOutWhenTypeNotTheme\"":1.256,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketCleanCacheThemeUpdate::testShouldCleanExpected with data set \"shouldBailOutWhenThemesNotArray\"":1.222,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketCleanCacheThemeUpdate::testShouldCleanExpected with data set \"shouldCleanDomain\"":1.517,"WP_Rocket\\Tests\\Integration\\inc\\common\\TestRocketCleanPostCacheOnSlugChange::testShouldRegisterCallbackToPrePostUpdate":0.036,"WP_Rocket\\Tests\\Integration\\inc\\common\\TestRocketCleanPostCacheOnSlugChange::testShouldBailOutWhenPostStatusIsNotCorrect":0.068,"WP_Rocket\\Tests\\Integration\\inc\\common\\TestRocketCleanPostCacheOnSlugChange::testShouldBailOutWhenSlugHasntChanged":0.068,"WP_Rocket\\Tests\\Integration\\inc\\common\\TestRocketCleanPostCacheOnSlugChange::testShouldBailOutWhenOldSlugIsEmpty":0.069,"WP_Rocket\\Tests\\Integration\\inc\\common\\TestRocketCleanPostCacheOnSlugChange::testShouldFireRocketCleanFiles":0.074,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrls\"":0.211,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPageUrls\"":0.195,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnCustomPostUrls\"":0.208,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrlsWithPreviousPost\"":0.203,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketGetPurgeUrls::testShouldReturnUrls with data set \"shouldReturnPostUrlsWithPurgeUrls\"":0.214,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketWidgetUpdateCallback::testCallbackIsRegistered":0.019,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketWidgetUpdateCallback::testShouldInvokeRocketCleanDomainOnWidgetUpdate with data set \"shouldCleanDomainWhenWidgetUpdateWithTitleOnly\"":1.556,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketWidgetUpdateCallback::testShouldInvokeRocketCleanDomainOnWidgetUpdate with data set \"shouldCleanDomainWhenWidgetUpdateWithTextOnly\"":1.564,"WP_Rocket\\Tests\\Integration\\inc\\common\\Test_RocketWidgetUpdateCallback::testShouldInvokeRocketCleanDomainOnWidgetUpdate with data set \"shouldCleanDomainWhenWidgetUpdateWithTitleAndText\"":1.547,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #0":0.012,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #1":0.009,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #2":0.011,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #3":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #4":0.011,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #5":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #6":0.011,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #7":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketCacheRejectUri::testShouldReturnExcludeDeferJSArray with data set #8":0.012,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"shouldReturnFalseWhenNoI18nPlugin\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"shouldReturnFalseWhenNotWpmlQTranslateOrPolyLang\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"wpml_ShouldReturnLangCodes\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"qtranslate_ShouldReturnLangCodes\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEmptyArrayWhenNoCodes\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"qtranslate-x_ShouldReturnLangCodes\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"qtranslate-X_ShouldReturnEmptyArrayWhenNoCodes\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"polylang_ShouldReturnEmptyArrayWhenNoCodes\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nCode::testShouldReturnExpected with data set \"polylang_ShouldReturnLangCodes\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"false_ShouldReturnHomeUrl\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"baz_ShouldReturnHomeUrl\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"wpml_ShouldReturnDefault\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"wpml_ShouldReturnFr\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"wpml_ShouldReturnDe\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"qtranslate_ShouldReturnDefault\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"qtranslate_ShouldReturnHomeUrlWhenNoCodes\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEn\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"qtranslate_ShouldReturnFr\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"qtranslate_ShouldReturnDe\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"polylang_ShouldReturnHomeUrlWhenNoCodes\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"polylang_shouldReturnDefault\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"polylang_shouldReturnDefaultWhenEn\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"polylang_shouldReturnDe\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nHomeUrl::testShouldReturnExpected with data set \"polylang_shouldReturnFr\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"false_ShouldReturnEmptyArrayWhenNoLangGiven\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"false_ShouldReturnEmptyArrayWhenLangNotString\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"false_ShouldReturnEmptyArrayWhenNoPlugin\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"wpml_ShouldReturnFrAndDe\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"wpml_ShouldReturnEnAndDe\"":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"wpml_ShouldReturnEnAndFr\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEmptyArray\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEmptyArrayWhenNoCodes\"":0.005,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEnAndDe\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"qtranslate_ShouldReturnFrAndDe\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"qtranslate_ShouldReturnEnAndFr\"":0.005,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"polylang_ShouldReturnEmptyArrayWhenNoCodes\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"polylang_ShouldReturnEmptyArrayWhenNoCodesAndPolylangConfigured\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"polylang_shouldReturnLangsWhenEn\"":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"polylang_shouldReturnLangsWhenDe\"":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nToPreserve::testShouldReturnExpected with data set \"polylang_shouldReturnEnAndDe\"":0.005,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"false_ShouldReturnHomeUrl\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"baz_ShouldReturnHomeUrl\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"wpml_ShouldReturnUris\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"qtranslate_ShouldReturnUris\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"qtranslate_ShouldReturnHomeUrlWhenNoCodes\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"qtranslate-x_ShouldReturnUris\"":0.005,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"qtranslate-x_ShouldReturnHomeUrlWhenNoCodes\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set \"polylang_ShouldReturnHomeUrlWhenNoCodes\"":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketI18nUri::testShouldReturnExpected with data set #0":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #0":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #1":0.012,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #2":0.009,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #3":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #4":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #5":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #6":0.009,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketOption::testShouldReturnExpectedOptionValue with data set #7":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set \"shouldBailOutWhenNotAString\"":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #0":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #1":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #2":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #3":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #4":0.001,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #5":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketParseUrls::testShouldReturnExpectedParsedUrl with data set #6":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldBailOutWhenPostDoesNotExist":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #0":0.038,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #1":0.038,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #2":0.025,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #3":0.024,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #4":0.037,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_GetRocketSamePermalink::testShouldReturnSamplePermalink with data set #5":0.031,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_IsRocketGenerateCachingMobileFiles::testShouldReturnExpectedOptionValue with data set #0":0.01,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_IsRocketGenerateCachingMobileFiles::testShouldReturnExpectedOptionValue with data set #1":0.011,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_IsRocketGenerateCachingMobileFiles::testShouldReturnExpectedOptionValue with data set #2":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_IsRocketGenerateCachingMobileFiles::testShouldReturnExpectedOptionValue with data set #3":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #0":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #1":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #2":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #3":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #4":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #5":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #6":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #7":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketAddUrlProtocol::testShouldReturnExpectedParsedUrl with data set #8":0.003,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanCacheBusting::testShouldCleanMinified with data set \"shouldNotCleanWhenNoExtensionsGiven\"":0.046,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanCacheBusting::testShouldCleanMinified with data set \"shouldNotCleanWhenExtensionDoesNotExist\"":0.068,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanCacheBusting::testShouldCleanMinified with data set \"shouldClean_css\"":0.057,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanCacheBusting::testShouldCleanMinified with data set \"shouldClean_js\"":0.054,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanCacheBusting::testShouldCleanMinified with data set \"shouldCleanCssAndJs\"":0.049,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"shouldDeleteAll_example.org*_whenNoLangGiven\"":1.52,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"shouldDeleteAll_*example.org*_whenLangGiven\"":1.526,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"wpml_shouldDeleteAll_*example.org*_whenLangGiven\"":1.519,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"qtranslate_shouldDeleteDirs_en\"":1.369,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"qtranslate_shouldDeleteDirs_fr\"":1.312,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanDomain::testShouldCleanSingleDomain with data set \"polylang_shouldDeleteDirs_de\"":1.274,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldBailOutWhenNoURLsToClean\"":1.212,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldBailOutWhenInvalidURLsToClean\"":1.22,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteSingleDirUrl\"":1.238,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteSingleFileUrlFromDomainAndUserCaches\"":1.221,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteGrandchildFilesUrlFromDomainAndUserCaches\"":1.257,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeletePageUrlInCacheAndUserCache\"":1.265,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteChildPageUrlInCacheAndUserCache\"":1.268,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteLangUrlInCacheAndUserCaches\"":1.309,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteDirsAndFilesUrlInCacheAndUserCache\"":1.341,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanFiles::testShouldCleanExpectedFiles with data set \"shouldDeleteSiteUrlInCacheAndUserCaches\"":1.51,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanHome::testShouldCleanExpectedFiles with data set \"shouldDeleteIndexesMobileDetectAndNoWebp\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketCleanHome::testShouldCleanExpectedFiles with data set \"shouldDeleteLanguageIndexesWhenLangIsGiven\"":0.012,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldNotCleanWhenNoExtensionsGiven\"":0.621,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldNotCleanWhenExtensionDoesNotExist\"":1.63,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldClean_css\"":1.149,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldClean_css.gz\"":1.322,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldClean_js\"":1.278,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldClean_js.gz\"":1.317,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldCleanCssAndJs\"":1.435,"WP_Rocket\\Tests\\Integration\\inc\\Functions\\Test_RocketCleanMinify::testShouldCleanMinified with data set \"shouldClean_.gz\"":1.306,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketDeleteLicenceDataFile::testShouldDeleteLicenceDataFileWhenExists":0.02,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #0":0.001,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #1":0.001,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #2":0.001,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #3":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #4":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #5":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketExtractUrlComponent::testShouldReturnExpectedUrlComponent with data set #6":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldDoNothingWhenFilterDisableWriting\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldWriteDefaultAdvancedCacheContent\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldWriteDefaultAdvancedCacheContentWhenCacheMobile\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldWriteAdvancedCacheContentWhenNoCacheMobile\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldWriteAdvancedCacheContentWithMobile\"":0.015,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketGenerateAdvancedCacheFile::testShouldGenerateAdvancedCacheFile with data set \"testShouldCreateAdvancedCacheContentWhenFileDoesntExist\"":0.016,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsLiveSite::testShouldReturnTrueWhenWPROCKETDEBUG":0.002,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsLiveSite::testShouldReturnFalseWhenNoHost":0.003,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsLiveSite::testShouldReturnFalseWhenLocalOrStaging":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsLiveSite::testShouldReturnTrueWhenLiveSite":0.004,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #0":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #1":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #2":0.009,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #3":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #4":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #5":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #6":0.008,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #7":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #8":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #9":0.007,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActive::testShouldReturnCorrectStateWhenNotMultisite with data set #10":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketIsPluginActiveForNetwork::testShouldReturnFalseWhenNotMultisite":0.006,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #0":0.019,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #1":0.024,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #2":0.043,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #3":0.019,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #4":0.02,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #5":0.062,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #6":0.024,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketMkdirP::testShouldRecursivelyMkdirWhenDoesNotExist with data set #7":0.024,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketPutContent::testShouldPutContent with data set #0":0.023,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketPutContent::testShouldPutContent with data set #1":0.027,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketPutContent::testShouldPutContent with data set #2":0.02,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketPutContent::testShouldPutContent with data set #3":0.023,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketPutContent::testShouldPutContent with data set #4":0.023,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"shouldDeleteOnlyASingleFile\"":1.264,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"shouldDeleteHiddenFiles\"":1.246,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org\/lorem-ipsum_shouldDeleteSingleDir\"":1.248,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org\/nec-ullamcorper_shouldDeleteSingleDirWithChildDirs\"":1.287,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org-wpmedia-123456_shouldDeleteAll\"":1.303,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldDeleteAll\"":1.402,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldBailOutWhenRootDirIsPreserved_fr\"":1.267,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldBailOutWhenRootDirIsPreserved_de\"":1.252,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldDeleteAllExceptDEentries\"":1.36,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldDeleteAllExceptFEandDE\"":1.332,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org_shouldDeleteAllWhenLangNotPreserved\"":1.412,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"example.org-wpmedia-123456_shouldDeleteAllExceptFEandDE\"":1.244,"WP_Rocket\\Tests\\Integration\\inc\\functions\\Test_RocketRrmdir::testShouldRecursivelyRemoveFilesAndDirectories with data set \"shouldDeleteAllWhenLangNotPreserved\"":1.871,"WP_Rocket\\Tests\\Integration\\inc\\Test_RocketActivation::testShouldNotLoadHostingFilesWhenNotInActivation":0.006}} \ No newline at end of file diff --git a/tests/Integration/ASTrait.php b/tests/Integration/ASTrait.php new file mode 100644 index 0000000000..dc4dfe55a7 --- /dev/null +++ b/tests/Integration/ASTrait.php @@ -0,0 +1,16 @@ +query_actions(['hook' => $hook], 'count'); + } + + public static function taskExist(string $hook, array $args = []): bool { + return count(ActionScheduler_DBStore::instance()->query_actions(['hook' => $hook, 'args' => $args])) > 0; + } +} diff --git a/tests/Integration/AjaxTestCase.php b/tests/Integration/AjaxTestCase.php index 34841ea0db..bc426af540 100644 --- a/tests/Integration/AjaxTestCase.php +++ b/tests/Integration/AjaxTestCase.php @@ -25,6 +25,8 @@ public static function set_up_before_class() { CapTrait::hasAdminCapBeforeClass(); + self::installFresh(); + if ( static::$use_settings_trait ) { SettingsTrait::getOriginalSettings(); } @@ -39,6 +41,8 @@ public static function set_up_before_class() { public static function tear_down_after_class() { CapTrait::resetAdminCap(); + self::uninstallAll(); + if ( static::$use_settings_trait ) { SettingsTrait::resetOriginalSettings(); } diff --git a/tests/Integration/DBTrait.php b/tests/Integration/DBTrait.php index 6ebff3385f..98b37f1d78 100644 --- a/tests/Integration/DBTrait.php +++ b/tests/Integration/DBTrait.php @@ -9,49 +9,63 @@ public static function resourceFound( array $resource ) : bool { return $resource_query->query( $resource ); } + public static function cacheFound( array $cache): bool { + $container = apply_filters( 'rocket_container', null ); + $resource_query = $container->get( 'preload_caches_query' ); + + return count($resource_query->query( $cache )) > 0; + } + public static function truncateUsedCssTable() { - $container = apply_filters( 'rocket_container', null ); + $container = apply_filters( 'rocket_container', null ); $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); + if ( $rucss_usedcss_table->exists() ){ $rucss_usedcss_table->truncate(); } } + public static function addCache( array $resource ) { + $container = apply_filters( 'rocket_container', null ); + $cache_query = $container->get( 'preload_caches_query' ); + return $cache_query->create_or_update( $resource ); + } + public static function installFresh() { $container = apply_filters( 'rocket_container', null ); self::uninstallAll(); - $rucss_resources_table = $container->get( 'rucss_resources_table' ); - $rucss_resources_table->install(); - $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); $rucss_usedcss_table->install(); + + $preload_cache_table = $container->get( 'preload_caches_table' ); + $preload_cache_table->install(); } public static function uninstallAll() { - $container = apply_filters( 'rocket_container', null ); - - $rucss_resources_table = $container->get( 'rucss_resources_table' ); - if ( $rucss_resources_table->exists() ) { - $rucss_resources_table->uninstall(); - } + $container = apply_filters( 'rocket_container', null ); + $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); - $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); if ( $rucss_usedcss_table->exists() ) { $rucss_usedcss_table->uninstall(); } + + $preload_cache_table = $container->get( 'preload_caches_table' ); + if ( $preload_cache_table->exists() ) { + $preload_cache_table->uninstall(); + } } public static function removeDBHooks() { $container = apply_filters( 'rocket_container', null ); - $rucss_resources_table = $container->get( 'rucss_resources_table' ); $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); + $preload_table = $container->get( 'preload_caches_table' ); - self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $rucss_resources_table ), 'maybe_upgrade', 10); - self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $rucss_resources_table ), 'switch_blog', 10); self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $rucss_usedcss_table ), 'maybe_upgrade', 10); self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $rucss_usedcss_table ), 'switch_blog', 10); + self::forceRemoveTableAdminInitHooks( 'admin_init', get_class( $preload_table ), 'maybe_upgrade', 10); + self::forceRemoveTableAdminInitHooks( 'switch_blog', get_class( $preload_table ), 'switch_blog', 10); } public static function forceRemoveTableAdminInitHooks( $hook_name = '', $class_name = '', $method_name = '', $priority = 0 ) { diff --git a/tests/Integration/bootstrap.php b/tests/Integration/bootstrap.php index 6f84274cf2..2c34b5b9cc 100644 --- a/tests/Integration/bootstrap.php +++ b/tests/Integration/bootstrap.php @@ -2,6 +2,7 @@ namespace WP_Rocket\Tests\Integration; +use Automattic\Jetpack\Modules; use WC_Install; use WP_Rocket\Tests\Fixtures\Kinsta\Kinsta_Cache; use WPMedia\PHPUnit\BootstrapManager; @@ -151,6 +152,42 @@ function() { define( 'WORDFENCE_VERSION', '1' ); require WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/ThirdParty/Plugins/Security/WordFence/wordfence.php'; } + + if ( BootstrapManager::isGroup( 'RankMathSEO' ) ) { + define('RANK_MATH_FILE', '1'); + require WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/ThirdParty/Plugins/SEO/RankMathSEO/fixtures.php'; + } + + if ( BootstrapManager::isGroup( 'SEOPress' ) ) { + require WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/ThirdParty/Plugins/SEO/SEOPress/fixtures.php'; + } + + if ( BootstrapManager::isGroup( 'TheSEOFramework' ) ) { + require WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/ThirdParty/Plugins/SEO/TheSEOFramework/fixtures.php'; + } + + if ( BootstrapManager::isGroup( 'AllInOneSeoPack' ) ) { + if(! defined('AIOSEOP_VERSION')) { + define('AIOSEOP_VERSION', true); + } + if(! defined('AIOSEO_VERSION')) { + define('AIOSEO_VERSION', true); + } + } + + if ( BootstrapManager::isGroup( 'Jetpack' ) ) { + // Load AMP plugin. + require WP_ROCKET_PLUGIN_ROOT . '/vendor/wpackagist-plugin/jetpack/jetpack.php'; + update_option( + 'jetpack_active_modules', + [ + 'sitemaps', + 'widgets', + ] + ); + require WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/ThirdParty/Plugins/Jetpack/functions.php'; + } + // Load the plugin. require WP_ROCKET_PLUGIN_ROOT . '/wp-rocket.php'; } @@ -161,6 +198,7 @@ function() { tests_add_filter( 'setup_theme', function() { + if ( ! BootstrapManager::isGroup( 'WithWoo' ) ) { return; } diff --git a/tests/Integration/inc/Addon/Cloudflare/Subscriber/autoPurgeByUrl.php b/tests/Integration/inc/Addon/Cloudflare/Subscriber/autoPurgeByUrl.php index 426428d621..9041882548 100644 --- a/tests/Integration/inc/Addon/Cloudflare/Subscriber/autoPurgeByUrl.php +++ b/tests/Integration/inc/Addon/Cloudflare/Subscriber/autoPurgeByUrl.php @@ -20,7 +20,6 @@ public function testShouldBailoutWhenUserCantPurgeCF() { $user = $this->factory->user->create( [ 'role' => 'contributor' ] ); wp_set_current_user( $user ); - Functions\expect( 'get_rocket_i18n_home_url' )->never(); do_action( 'after_rocket_clean_post', self::$post, [], 'en' ); } @@ -36,7 +35,6 @@ public function testShouldBailoutWhenNoPageRule() { $this->assertTrue( current_user_can( 'rocket_purge_cloudflare_cache' ) ); // Why? Because our test site doesn't have page rules. - Functions\expect( 'get_rocket_i18n_home_url' )->never(); do_action( 'after_rocket_clean_post', self::$post, [], 'en' ); } diff --git a/tests/Integration/inc/Engine/Admin/Settings/Settings/sanitizeCallback.php b/tests/Integration/inc/Engine/Admin/Settings/Settings/sanitizeCallback.php index f48ccbc07b..630a662ff5 100644 --- a/tests/Integration/inc/Engine/Admin/Settings/Settings/sanitizeCallback.php +++ b/tests/Integration/inc/Engine/Admin/Settings/Settings/sanitizeCallback.php @@ -17,7 +17,6 @@ class Test_SanitizeCallback extends AdminTestCase { public function set_up() { DBTrait::removeDBHooks(); - parent::set_up(); } diff --git a/tests/Integration/inc/Engine/Common/Queue/PreloadQueueRunner/init.php b/tests/Integration/inc/Engine/Common/Queue/PreloadQueueRunner/init.php new file mode 100644 index 0000000000..1bbb359d62 --- /dev/null +++ b/tests/Integration/inc/Engine/Common/Queue/PreloadQueueRunner/init.php @@ -0,0 +1,26 @@ + [ + 'config' => [ + 'timestamp' => 10210120, + 'next_scheduled' => 1021420, + 'schedule' => 'schedule', + ], + ], + 'whenNotimestampandNextSheduleShouldNotUnshedule' => [ + 'config' => [ + 'timestamp' => false, + 'next_scheduled' => 1021420, + 'schedule' => 'schedule', + ], + ], + 'whenTimestampandNoNextSheduleShouldUnscheduleAndShedule' => [ + 'config' => [ + 'timestamp' => 10210120, + 'next_scheduled' => false, + 'schedule' => 'schedule', + ], + ] +]; diff --git a/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/cpcssHeartbeat.php b/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/cpcssHeartbeat.php index 3716f49c4d..16f35470b1 100644 --- a/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/cpcssHeartbeat.php +++ b/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/cpcssHeartbeat.php @@ -7,6 +7,7 @@ use WP_Rocket\Engine\CriticalPath\APIClient; use WP_Rocket\Tests\Integration\AjaxTestCase; use WP_Rocket\Tests\Integration\CapTrait; +use WP_Rocket\Tests\Integration\DBTrait; /** * @covers \WP_Rocket\Engine\CriticalPath\Admin\Subscriber::cpcss_heartbeat @@ -25,7 +26,7 @@ * @group CriticalPathAdminSubscriber */ class Test_CpcssHeartbeat extends AjaxTestCase { - use ProviderTrait; + use ProviderTrait, DBTrait; protected static $provider_class = 'Admin'; private static $admin_user_id = 0; @@ -42,11 +43,17 @@ public static function set_up_before_class() { parent::set_up_before_class(); CapTrait::setAdminCap(); - + self::installFresh(); //create an editor user that has the capability self::$admin_user_id = static::factory()->user->create( [ 'role' => 'administrator' ] ); } + public static function tear_down_after_class() + { + parent::tear_down_after_class(); + self::uninstallAll(); + } + public function set_up() { parent::set_up(); @@ -91,7 +98,6 @@ public function testShouldGenerateCPCSS( $config, $expected ) { $_POST['_nonce'] = wp_create_nonce( 'cpcss_heartbeat_nonce' ); $response = $this->callAjaxAction(); - if ( $expected['bailout'] ) { $this->assertFalse( $response->success ); } else { diff --git a/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/enableMobileCpcss.php b/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/enableMobileCpcss.php index bc4ab7d093..984a219ba9 100644 --- a/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/enableMobileCpcss.php +++ b/tests/Integration/inc/Engine/CriticalPath/Admin/Subscriber/enableMobileCpcss.php @@ -4,6 +4,7 @@ use WP_Rocket\Tests\Integration\AjaxTestCase; use WP_Rocket\Tests\Integration\CapTrait; +use WP_Rocket\Tests\Integration\DBTrait; /** * @covers \WP_Rocket\Engine\CriticalPath\Admin\Subscriber::enable_mobile_cpcss @@ -14,7 +15,7 @@ * @group CriticalPathAdminSubscriber */ class Test_EnableMobileCpcss extends AjaxTestCase { - use ProviderTrait; + use ProviderTrait, DBTrait; protected static $provider_class = 'Settings'; protected static $use_settings_trait = true; @@ -25,6 +26,8 @@ class Test_EnableMobileCpcss extends AjaxTestCase { public static function set_up_before_class() { parent::set_up_before_class(); + self::installFresh(); + CapTrait::setAdminCap(); //create an editor user that has the capability @@ -33,6 +36,12 @@ public static function set_up_before_class() { self::$editor_user_id = static::factory()->user->create( [ 'role' => 'editor' ] ); } + public static function tear_down_after_class() + { + parent::tear_down_after_class(); + self::uninstallAll(); + } + public function set_up() { parent::set_up(); diff --git a/tests/Integration/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php b/tests/Integration/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php deleted file mode 100644 index 4e7dfdc9af..0000000000 --- a/tests/Integration/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php +++ /dev/null @@ -1,83 +0,0 @@ -get( 'rucss_resources_table' ); - $rucss_resources_query = $container->get( 'rucss_resources_query' ); - - add_filter( 'pre_get_rocket_option_remove_unused_css', [ $this, 'set_rucss_option' ] ); - $current_date = current_time( 'mysql', true ); - $old_date = date('Y-m-d H:i:s', strtotime( $current_date. ' - 32 days' ) ); - - $rucss_resources_query->add_item( - [ - 'url' => 'http://example.org/path/to/file1.css', - 'type' => 'css', - 'media' => '', - 'content' => 'h1{color:red;}', - 'hash' => 'hash1', - 'modified' => $current_date, - 'last_accessed' => $current_date, - ] - ); - $rucss_resources_query->add_item( - [ - 'url' => 'http://example.org/path/to/file2.css', - 'type' => 'css', - 'media' => '', - 'content' => 'h1{color:red;}', - 'hash' => 'hash1', - 'modified' => $old_date, - 'last_accessed' => $old_date, - ] - ); - - $result = $rucss_resources_query->query(); - - $this->assertTrue( $rucss_resources_table->exists() ); - $this->assertCount( 2, $result ); - - do_action( 'rocket_rucss_clean_rows_time_event' ); - - $rucss_resources_query = $container->get( 'rucss_resources_query' ); - $resultAfterDeleteOld = $rucss_resources_query->query(); - - $this->assertCount( 1, $resultAfterDeleteOld ); - } - - public function set_rucss_option() { - return true; - } -} diff --git a/tests/Integration/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php b/tests/Integration/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php index df358cd27f..9f08975b90 100644 --- a/tests/Integration/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php +++ b/tests/Integration/inc/Engine/Optimization/RUCSS/Cron/Subscriber/cronCleanRows.php @@ -31,12 +31,11 @@ public static function tear_down_after_class() { /** * @dataProvider configTestData */ - public function testShouldDoExpected( $input ) { - $container = apply_filters( 'rocket_container', null ); - $rucss_usedcss_query = $container->get( 'rucss_used_css_query' ); - $rucss_resources_query = $container->get( 'rucss_resources_query' ); - $current_date = current_time( 'mysql', true ); - $old_date = strtotime( $current_date. ' - 32 days' ); + public function testShouldDoExpected( $input ){ + $container = apply_filters( 'rocket_container', null ); + $rucss_usedcss_query = $container->get( 'rucss_used_css_query' ); + $current_date = current_time( 'mysql', true ); + $old_date = strtotime( $current_date. ' - 32 days' ); $this->input = $input; $this->set_permalink_structure( "/%postname%/" ); @@ -52,27 +51,12 @@ public function testShouldDoExpected( $input ) { $result_used_css = $rucss_usedcss_query->query(); $this->assertCount( count( $input['used_css'] ), $result_used_css ); - - $count_remain_resources = 0; - foreach ( $input['resources'] as $resource ) { - if ( $old_date < strtotime( $resource['last_accessed']) ) { - $count_remain_resources ++; - } - $rucss_resources_query->add_item( $resource ); - } - - $result_resources = $rucss_resources_query->query(); - $this->assertCount( count( $input['resources'] ), $result_resources ); - do_action( 'rocket_rucss_clean_rows_time_event' ); - $rucss_usedcss_query = $container->get( 'rucss_used_css_query' ); - $rucss_resources_query = $container->get( 'rucss_resources_query' ); - $resultUsedCssAfterClean = $rucss_usedcss_query->query(); - $resultResourcesAfterClean = $rucss_resources_query->query(); + $rucss_usedcss_query = $container->get( 'rucss_used_css_query' ); + $resultUsedCssAfterClean = $rucss_usedcss_query->query(); $this->assertCount( $count_remain_used_css, $resultUsedCssAfterClean ); - $this->assertCount( $count_remain_resources, $resultResourcesAfterClean ); } } diff --git a/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/createOrUpdate.php b/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/createOrUpdate.php deleted file mode 100644 index 1fe685679d..0000000000 --- a/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/createOrUpdate.php +++ /dev/null @@ -1,75 +0,0 @@ -get( 'rucss_resources_query' ); - - $item = [ - 'url' => 'https://www.example.org/style.css', - 'type' => 'css', - 'content' => '.example{color:red;}', - 'media' => 'all', - ]; - - $this->assertFalse( $rucss_resources_query->get_item_by( 'url', $item['url'] ) ); - - $this->assertGreaterThan( 0, $rucss_resources_query->create_or_update( $item ) ); - - $this->assertIsObject( $rucss_resources_query->get_item_by( 'url', $item['url'] ) ); - } - - public function testShouldUpdateItemIfExists(){ - $container = apply_filters( 'rocket_container', null ); - $rucss_resources_query = $container->get( 'rucss_resources_query' ); - - $item = [ - 'url' => 'https://www.example.org/style.css', - 'type' => 'css', - 'content' => '.example{color:red;}', - 'media' => 'all', - ]; - - $original_id = $rucss_resources_query->add_item( $item ); - - $this->assertIsObject( $rucss_resources_query->get_item_by( 'url', $item['url'] ) ); - - // Change one attribute and assert it's updated. - $item['content'] = '.content-changed{color:#efefef;}'; - - //assert that ID for original item equals to ID returned from the method so we updated it not created. - $this->assertSame( $original_id, $rucss_resources_query->create_or_update( $item ) ); - - $new_row = $rucss_resources_query->get_item_by( 'url', $item['url'] ); - - $this->assertIsObject( $new_row ); - $this->assertSame( $new_row->content, $item['content'] ); - } - - -} diff --git a/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/removeByUrl.php b/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/removeByUrl.php deleted file mode 100644 index 3c42ce501f..0000000000 --- a/tests/Integration/inc/Engine/Optimization/RUCSS/Database/Queries/ResourcesQuery/removeByUrl.php +++ /dev/null @@ -1,50 +0,0 @@ -get( 'rucss_resources_query' ); - - $item = [ - 'url' => 'https://www.example.org/style.css', - 'type' => 'css', - 'content' => '.example{color:red;}', - 'media' => 'all', - ]; - - $added = $rucss_resources_query->add_item( $item ); - - // Check that it was added properly for the test. - $this->assertIsObject( $rucss_resources_query->get_item_by( 'url', $item['url'] ) ); - - $rucss_resources_query->remove_by_url( $item['url'] ); - - // Check that the method under test has removed it. - $this->assertFalse( $rucss_resources_query->get_item_by( 'url', $item['url'] ) ); - } -} diff --git a/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayAsMissedTablesNotice.php b/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayAsMissedTablesNotice.php new file mode 100644 index 0000000000..cabb47cad8 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayAsMissedTablesNotice.php @@ -0,0 +1,19 @@ +getTestData( __DIR__, 'maybeDisplayAsMissedTablesNotice' ); + } +} diff --git a/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php b/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php new file mode 100644 index 0000000000..a2c82f6c14 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Admin/Subscriber/maybeDisplayPreloadNotice.php @@ -0,0 +1,60 @@ +sitemap_preload = $config['activated']; + if ( $config['cap'] ) { + $this->setRoleCap( 'administrator', 'rocket_manage_options' ); + $this->setCurrentUser( 'administrator' ); + } + set_current_screen( $config['screen'] ); + if(key_exists('transient', $config) && $config['transient']) { + set_transient('wpr_preload_running', true); + } + ob_start(); + do_action('admin_notices'); + $content = ob_get_clean(); + if($expected['should_contain']) { + $this->assertStringContainsString($this->format_the_html($expected['html']), $this->format_the_html($content)); + } else { + $this->assertStringNotContainsString($this->format_the_html($expected['html']), $this->format_the_html($content)); + } + } + + public function providerTestData() { + return $this->getTestData( __DIR__, 'maybeDisplayPreloadNotice' ); + } + + public function get_sitemap_preload() { + return $this->sitemap_preload; + } +} diff --git a/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php b/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php new file mode 100644 index 0000000000..12bdb45d7f --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/parseSitemap.php @@ -0,0 +1,65 @@ +config = $config; + + add_filter('pre_http_request', [$this, 'requestResult']); + + do_action('rocket_preload_job_parse_sitemap', $config['sitemap_url']); + + foreach ($expected['children'] as $child) { + $this->assertEquals($expected['children_exists'], self::taskExist('rocket_preload_job_parse_sitemap', [$child])); + } + + foreach ($expected['links'] as $link) { + $exists = $expected['links_exists'] ? "" :"n't"; + $this->assertEquals($expected['links_exists'], self::cacheFound(['url' => $link]), "Link {$link} should$exists exist"); + } + } + + public function requestResult() { + if ( ! empty( $this->config['process_generate']['is_wp_error'] ) ) { + return new WP_Error( 'error', 'error_data' ); + } else { + $message = $this->config['process_generate']['response']; + return [ 'body' => $message, 'response' => ['code' => 200 ]]; + } + } + + public function providerTestData() { + return $this->getTestData( __DIR__, 'parseSitemap' ); + } +} diff --git a/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php b/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php new file mode 100644 index 0000000000..e7682b25fa --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Frontend/Subscriber/preloadUrl.php @@ -0,0 +1,82 @@ +config = $config; + + $this->mobile_cache = $config['mobile_cache']; + + + self::addCache($config['existing_job']); + + do_action('rocket_preload_job_preload_url', $config['url']); + + $this->assertTrue(self::cacheFound($expected)); + } + + public function providerTestData() { + return $this->getTestData( __DIR__, 'preloadUrl' ); + } + + public function mobile_cache() { + return $this->mobile_cache; + } + + public function request() { + if ( ! empty( $this->config['process_generate']['is_wp_error'] ) ) { + return new WP_Error( 'error', 'error_data' ); + } else { + $message = $this->config['process_generate']['response']; + return [ 'body' => $message, 'response' => ['code' => 200 ]]; + } + } +} diff --git a/tests/Integration/inc/Engine/Preload/FullProcess/getItemUserAgent.php b/tests/Integration/inc/Engine/Preload/FullProcess/getItemUserAgent.php deleted file mode 100644 index 6f8ffa4d36..0000000000 --- a/tests/Integration/inc/Engine/Preload/FullProcess/getItemUserAgent.php +++ /dev/null @@ -1,29 +0,0 @@ -process->get_item_user_agent( [ 'mobile' => 1 ] ); - - $this->assertTrue( wp_is_mobile() ); - - $_SERVER['HTTP_USER_AGENT'] = $previous_ua; - } - - public function testShouldNotBeDetectedAsMobileByWordPressWhenNotMobileItem() { - $previous_ua = ! empty( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : null; - $_SERVER['HTTP_USER_AGENT'] = $this->process->get_item_user_agent( [ 'mobile' => 0 ] ); - - $this->assertFalse( wp_is_mobile() ); - - $_SERVER['HTTP_USER_AGENT'] = $previous_ua; - } -} diff --git a/tests/Integration/inc/Engine/Preload/FullProcess/isMobilePreloadEnabled.php b/tests/Integration/inc/Engine/Preload/FullProcess/isMobilePreloadEnabled.php deleted file mode 100644 index 2548c2aee3..0000000000 --- a/tests/Integration/inc/Engine/Preload/FullProcess/isMobilePreloadEnabled.php +++ /dev/null @@ -1,60 +0,0 @@ -option_hook_prefix . 'manual_preload', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_1' ] ); - - $this->assertTrue( $this->process->is_mobile_preload_enabled() ); - } - - public function testShouldReturnFalseWhenOptionsDisabled() { - add_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_0' ] ); - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_1' ] ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - - add_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_0' ] ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_0' ] ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - } - - public function testShouldReturnBooleanWhenFiltered() { - add_filter( 'rocket_mobile_preload_enabled', [ $this, 'mobilePreloadEnabledFilter' ] ); - add_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_0' ] ); - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_1' ] ); - - $this->assertTrue( $this->process->is_mobile_preload_enabled() ); - - remove_filter( 'rocket_mobile_preload_enabled', [ $this, 'mobilePreloadEnabledFilter' ] ); - add_filter( 'rocket_mobile_preload_enabled', [ $this, 'return_0' ] ); - add_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_1' ] ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - - remove_filter( 'rocket_mobile_preload_enabled', [ $this, 'return_0' ] ); - } - - public function mobilePreloadEnabledFilter() { - return 'foobar'; - } -} diff --git a/tests/Integration/inc/Engine/Preload/Homepage/preload.php b/tests/Integration/inc/Engine/Preload/Homepage/preload.php deleted file mode 100644 index 6f6bac3968..0000000000 --- a/tests/Integration/inc/Engine/Preload/Homepage/preload.php +++ /dev/null @@ -1,65 +0,0 @@ - "{$this->site_url}/mobile-preload-homepage/" ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/" ], - [ 'url' => "{$this->site_url}/category/mobile-preload/", 'mobile' => 1 ], - ]; - - ( new Homepage( $this->process ) )->preload( $home_urls ); - - $key = $this->process->getGeneratedKey(); - - // Temporary until we create a vfs+remote_request feature to stop crawling smashingcoding website. - if ( is_null( $key ) ) { - $this->assertTrue( true ); - return; - } - - $this->assertNotNull( $key ); - - $queue = get_site_option( $key ); - delete_site_option( $key ); - - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => false, 'source' => 'homepage' ], - $queue - ); - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/fr", 'mobile' => false, 'source' => 'homepage' ], - $queue - ); - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/es", 'mobile' => false, 'source' => 'homepage' ], - $queue - ); - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => true, 'source' => 'homepage' ], - $queue - ); - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/fr", 'mobile' => true, 'source' => 'homepage' ], - $queue - ); - $this->assertContains( - [ 'url' => "{$this->site_url}/mobile-preload-homepage/es", 'mobile' => true, 'source' => 'homepage' ], - $queue - ); - $this->assertNotContains( 'https://toto.org', $queue ); - } -} diff --git a/tests/Integration/inc/Engine/Preload/Homepage/stopPreload.php b/tests/Integration/inc/Engine/Preload/Homepage/stopPreload.php deleted file mode 100644 index 7f93b4035a..0000000000 --- a/tests/Integration/inc/Engine/Preload/Homepage/stopPreload.php +++ /dev/null @@ -1,52 +0,0 @@ -unregisterAllCallbacksExcept( 'wp_rocket_upgrade', 'stop_homepage_preload', 9 ); - $this->unregisterAllCallbacksExcept( 'admin_post_rocket_rollback', 'stop_homepage_preload', 9 ); - } - public function tear_down() { - parent::tear_down(); - $this->restoreWpFilter( 'wp_rocket_upgrade' ); - $this->restoreWpFilter( 'admin_post_rocket_rollback' ); - } - public function testShouldStopPreloadRollback() { - $this->startPreload(); - do_action('admin_post_rocket_rollback'); - $is_cron_exists= wp_get_schedule('rocket_preload_cron'); - - $this->assertFalse( $is_cron_exists ); - } - - public function testShouldStopPreloadUpgrade() { - $this->startPreload(); - do_action('wp_rocket_upgrade','3.9.4.1', '3.10'); - $is_cron_exists= wp_get_schedule('rocket_preload_cron'); - - $this->assertFalse( $is_cron_exists ); - } - private function startPreload(){ - $home_urls = [ - [ 'url' => "{$this->site_url}/mobile-preload-homepage/" ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/" ], - [ 'url' => "{$this->site_url}/category/mobile-preload/", 'mobile' => 1 ], - ]; - - ( new Homepage( $this->process ) )->preload( $home_urls ); - } -} diff --git a/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php b/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php deleted file mode 100644 index 2f0f0de3c1..0000000000 --- a/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php +++ /dev/null @@ -1,109 +0,0 @@ -post->create(); - } - - public function set_up() { - parent::set_up(); - - add_filter( 'pre_get_rocket_option_manual_preload', [ $this, 'return_true' ] ); - add_filter( 'pre_get_rocket_option_cache_mobile', [ $this, 'return_true' ] ); - add_filter( 'pre_option_permalink_structure', [ $this, 'permalink_structure_filter' ] ); - remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 ); - - $container = apply_filters( 'rocket_container', null ); - $this->subscriber = $container->get( 'partial_preload_subscriber' ); - $process_ref = $this->get_reflective_property( 'partial_preload', $this->subscriber ); - $this->process = $process_ref->getValue( $this->subscriber ); - $this->process_wrapper = new PartialProcess_Wrapper(); - - $process_ref->setValue( $this->subscriber, $this->process_wrapper ); - } - - public function tear_down() { - parent::tear_down(); - - remove_filter( 'pre_get_rocket_option_manual_preload', [ $this, 'return_true' ] ); - remove_filter( 'pre_get_rocket_option_cache_mobile', [ $this, 'return_true' ] ); - remove_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'return_true' ] ); - remove_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'return_false' ] ); - remove_filter( 'pre_option_permalink_structure', [ $this, 'permalink_structure_filter' ] ); - add_action( 'shutdown', 'wp_ob_end_flush_all', 1 ); - - $this->set_reflective_property( $this->process, 'partial_preload', $this->subscriber ); - - $this->subscriber = null; - $this->process = null; - $this->process_wrapper = null; - } - - public function testShouldDispatchWhenUrlsAndNoMobilePreload() { - add_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'return_false' ] ); - - $post = get_post( self::$post_id ); - $purge_urls = rocket_get_purge_urls( self::$post_id, $post ); - - do_action( 'after_rocket_clean_post', $post, $purge_urls, 'en' ); - do_action( 'shutdown' ); - - $key = $this->process_wrapper->getGeneratedKey(); - - $this->assertNotNull( $key ); - - $queue = get_site_option( $key ); - $post_url = get_permalink( $post ); - $home_url = get_rocket_i18n_home_url( 'en' ); - delete_site_option( $key ); - - // Only desktop items. - $this->assertContains( $post_url, $queue ); - $this->assertNotContains( [ 'url' => $post_url, 'mobile' => true ], $queue ); - $this->assertContains( $home_url, $queue ); - $this->assertNotContains( [ 'url' => $home_url, 'mobile' => true ], $queue ); - } - - public function testShouldDispatchWhenUrlsAndMobilePreload() { - add_filter( 'pre_get_rocket_option_do_caching_mobile_files', [ $this, 'return_true' ] ); - - $post = get_post( self::$post_id ); - $purge_urls = rocket_get_purge_urls( self::$post_id, $post ); - - do_action( 'after_rocket_clean_post', $post, $purge_urls, 'en' ); - do_action( 'shutdown' ); - - $key = $this->process_wrapper->getGeneratedKey(); - - $this->assertNotNull( $key ); - - $queue = get_site_option( $key ); - $post_url = get_permalink( $post ); - $home_url = get_rocket_i18n_home_url( 'en' ); - delete_site_option( $key ); - - // Desktop and mobile items. - $this->assertContains( $post_url, $queue ); - $this->assertContains( [ 'url' => $post_url, 'mobile' => true ], $queue ); - $this->assertContains( $home_url, $queue ); - $this->assertContains( [ 'url' => $home_url, 'mobile' => true ], $queue ); - } - - public function permalink_structure_filter() { - return '/%postname%/'; - } -} diff --git a/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php b/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php deleted file mode 100644 index a3f542ed33..0000000000 --- a/tests/Integration/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php +++ /dev/null @@ -1,73 +0,0 @@ -subscriber = $container->get( 'partial_preload_subscriber' ); - $this->property = $this->get_reflective_property( 'urls', $this->subscriber ); - $this->property->setAccessible( true ); - $this->property->setValue( $this->subscriber, [] ); - } - - public function tear_down() { - parent::tear_down(); - - $this->property->setValue( $this->subscriber, [] ); - $this->property->setAccessible( false ); - - remove_filter( 'pre_get_rocket_option_manual_preload', [ $this, 'manual_preload_filter' ] ); - remove_filter( 'pre_option_permalink_structure', [ $this, 'permalink_structure_filter' ] ); - } - - /** - * @dataProvider providerTestData - */ - public function testShouldDoExpectedWithSlashedUrl( $permalink_structure, $option_value, $deleted, $expected ) { - $this->permalink_structure = $permalink_structure; - $this->manual_preload = $option_value; - - add_filter( 'pre_get_rocket_option_manual_preload', [ $this, 'manual_preload_filter' ] ); - add_filter( 'pre_option_permalink_structure', [ $this, 'permalink_structure_filter' ] ); - - do_action( 'rocket_after_automatic_cache_purge', $deleted ); - - $this->property = $this->get_reflective_property( 'urls', $this->subscriber ); - $this->urls = $this->property->getValue( $this->subscriber ); - - if ( ! $expected ) { - $this->assertEmpty( $this->urls ); - } - - foreach ( $expected as $url ) { - $this->assertContains( $url, $this->urls ); - } - } - - public function manual_preload_filter() { - return $this->manual_preload; - } - - public function permalink_structure_filter() { - return $this->permalink_structure; - } - - public function providerTestData() { - return $this->getTestData( __DIR__, 'preloadAfterAutomaticCachePurge' ); - } -} diff --git a/tests/Integration/inc/Engine/Preload/PreloadTestCase.php b/tests/Integration/inc/Engine/Preload/PreloadTestCase.php deleted file mode 100644 index e652fdc536..0000000000 --- a/tests/Integration/inc/Engine/Preload/PreloadTestCase.php +++ /dev/null @@ -1,93 +0,0 @@ -preloadErrorsTransient = get_transient( 'rocket_preload_errors' ); - $this->preloadRunningTransient = get_transient( 'rocket_preload_running' ); - $this->process = new Process_Wrapper(); - - if ( $this->setUpFilters ) { - $this->setUpFilters(); - } - } - - public function setSiteUrl() { - return $this->site_url; - } - - public function tear_down() { - parent::tear_down(); - - remove_filter( 'site_url', [ $this, 'setSiteUrl' ] ); - - if ( $this->process ) { - // Added by \WP_Async_Request. - remove_action( 'wp_ajax_' . $this->identifier, [ $this->process, 'maybe_handle' ] ); - remove_action( 'wp_ajax_nopriv_' . $this->identifier, [ $this->process, 'maybe_handle' ] ); - // Added by \WP_Background_Process. - remove_action( $this->identifier . '_cron', [ $this->process, 'handle_cron_healthcheck' ] ); - remove_filter( 'cron_schedules', [ $this->process, 'schedule_cron_healthcheck' ] ); - } - - foreach ( [ 'manual_preload', 'cache_mobile', 'do_caching_mobile_files' ] as $option ) { - remove_filter( $this->option_hook_prefix . $option, [ $this, 'return_0' ] ); - remove_filter( $this->option_hook_prefix . $option, [ $this, 'return_1' ] ); - } - - remove_filter( $this->option_hook_prefix . 'cache_reject_uri', [ $this, 'return_empty_array' ] ); - - set_transient( 'rocket_preload_errors', $this->preloadErrorsTransient ); - set_transient( 'rocket_preload_running', $this->preloadRunningTransient ); - - $this->preloadErrorsTransient = null; - $this->preloadRunningTransient = null; - $this->process = null; - - - if ( $this->tearDownFilters ) { - $this->tearDownFilters(); - } - } - - protected function setUpFilters() { - add_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_1' ] ); - add_filter( $this->option_hook_prefix . 'cache_reject_uri', [ $this, 'return_empty_array' ] ); - - delete_transient( 'rocket_preload_errors' ); - } - - protected function tearDownFilters() { - remove_filter( $this->option_hook_prefix . 'manual_preload', [ $this, 'return_1' ] ); - remove_filter( $this->option_hook_prefix . 'cache_mobile', [ $this, 'return_1' ] ); - remove_filter( $this->option_hook_prefix . 'do_caching_mobile_files', [ $this, 'return_1' ] ); - remove_filter( $this->option_hook_prefix . 'cache_reject_uri', [ $this, 'return_empty_array' ] ); - - delete_transient( 'rocket_preload_errors' ); - } -} diff --git a/tests/Integration/inc/Engine/Preload/Sitemap/runPreload.php b/tests/Integration/inc/Engine/Preload/Sitemap/runPreload.php deleted file mode 100644 index 54770f5e37..0000000000 --- a/tests/Integration/inc/Engine/Preload/Sitemap/runPreload.php +++ /dev/null @@ -1,132 +0,0 @@ -markTestSkipped( - 'Skipping sitemap test' - ); - } - - public function tear_down() { - parent::tear_down(); - - $this->post_id = null; - } - - public function testShouldNotPreloadWhenNoUrls() { - Actions\expectDone( 'before_run_rocket_sitemap_preload' )->never(); - - // No URLs. - ( new Sitemap( $this->process ) )->run_preload( [] ); - } - - public function testShouldPreloadSitemapsWhenValidUrls() { - $sitemaps = [ - "{$this->site_url}/mobile-preload-sitemap.xml", - "{$this->site_url}/mobile-preload-sitemap-mobile.xml", - ]; - - $this->setUpFilters(); - - ( new Sitemap( $this->process ) )->run_preload( $sitemaps ); - - $key = $this->process->getGeneratedKey(); - - $this->assertNotNull( $key ); - - $queue = get_site_option( $key ); - delete_site_option( $key ); - - $expected = [ - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/", 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/", 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/category/mobile-preload/", 'mobile' => true, 'source' => 'sitemap' ], - ]; - - $this->assertSame( $expected, $queue ); - $this->assertCount( 5, $queue ); - } - - public function testShouldPreloadFallbackUrlsWhenInvalidSitemap() { - $sitemaps = [ - "{$this->site_url}/mobile-preload-sitemap.xml", - "{$this->site_url}/mobile-preload-sitemap-that-does-not-exist.xml", - ]; - - $this->post_id = wp_insert_post( - [ - 'post_title' => 'Hoy', - 'post_content' => 'Hello World', - 'post_type' => 'page', - 'post_status' => 'publish', - ] - ); - - if ( method_exists( $this, 'assertIsInt' ) ) { - $this->assertIsInt( $this->post_id ); - } else { - // Deprecated in phpunit 8. - $this->assertInternalType( 'int', $this->post_id ); - } - - add_filter( 'page_link', [ $this, 'change_page_link' ], 10, 3 ); - - $permalink = get_permalink( $this->post_id ); - - $this->assertNotFalse( $permalink ); - - $this->setUpFilters(); - - ( new Sitemap( $this->process ) )->run_preload( $sitemaps ); - - $key = $this->process->getGeneratedKey(); - - $this->assertNotNull( $key ); - - $queue = get_site_option( $key ); - delete_site_option( $key ); - - $expected = [ - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/mobile-preload-homepage/", 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/", 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/2020/02/18/mobile-preload-post-tester/", 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/category/mobile-preload/", 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => "{$this->site_url}/category/mobile-preload/", 'mobile' => true, 'source' => 'sitemap' ], - ]; - - $this->assertSame( $expected, $queue ); - $this->assertCount( 6, $queue ); - - wp_delete_post( $this->post_id, true ); - - remove_filter( 'page_link', [ $this, 'change_page_link' ] ); - } - - public function change_page_link( $link, $post_id, $sample ) { - if ( $sample || $post_id !== $this->post_id ) { - return $link; - } - - return 'https://smashingcoding.com/category/mobile-preload/'; - } -} diff --git a/tests/Integration/inc/Engine/Preload/Subscriber/cleanFullCache.php b/tests/Integration/inc/Engine/Preload/Subscriber/cleanFullCache.php new file mode 100644 index 0000000000..9a7f2eb093 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Subscriber/cleanFullCache.php @@ -0,0 +1,58 @@ +manual_preload = $config['manual_preload']; + foreach ($config['data'] as $cache) { + self::addCache($cache); + } + do_action('after_rocket_clean_domain', 'whatever','whatever', []); + + foreach ($expected['data'] as $cache) { + $this->assertSame($expected['exists'], self::cacheFound($cache)); + } + } + + public function manual_preload() { + return $this->manual_preload; + } +} diff --git a/tests/Integration/inc/Engine/Preload/Subscriber/cleanPartialCache.php b/tests/Integration/inc/Engine/Preload/Subscriber/cleanPartialCache.php new file mode 100644 index 0000000000..65cb63a152 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Subscriber/cleanPartialCache.php @@ -0,0 +1,58 @@ +manual_preload = $config['manual_preload']; + foreach ($config['data'] as $cache) { + self::addCache($cache); + } + do_action($config['hook'], $config['object'], $config['urls'], $config['lang']); + foreach ($expected['data'] as $cache) { + $this->assertTrue(self::cacheFound($cache)); + } + } + + public function manual_preload() { + return $this->manual_preload; + } +} diff --git a/tests/Integration/inc/Engine/Preload/Subscriber/cleanUrls.php b/tests/Integration/inc/Engine/Preload/Subscriber/cleanUrls.php new file mode 100644 index 0000000000..adf475a0e7 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Subscriber/cleanUrls.php @@ -0,0 +1,59 @@ +manual_preload = $config['manual_preload']; + foreach ($config['data'] as $cache) { + self::addCache($cache); + } + + do_action('rocket_after_clean_terms', $config['urls']); + + foreach ($expected['data'] as $cache) { + $this->assertTrue(self::cacheFound($cache)); + } + } + + public function manual_preload() { + return $this->manual_preload; + } +} diff --git a/tests/Integration/inc/Engine/Preload/Subscriber/loadInitialSitemap.php b/tests/Integration/inc/Engine/Preload/Subscriber/loadInitialSitemap.php new file mode 100644 index 0000000000..7a8760dc1e --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Subscriber/loadInitialSitemap.php @@ -0,0 +1,61 @@ +sitemaps = $config['return_sitemaps']; + do_action('update_option_' . WP_ROCKET_SLUG , $config['old_values'], $config['values']); + + foreach ($expected['sitemaps'] as $sitemap) { + $this->assertEquals($expected['exist'], self::taskExist('rocket_preload_job_parse_sitemap', [$sitemap])); + } + } + + public function return_sitemaps() { + return $this->sitemaps; + } + + public function providerTestData() { + return $this->getTestData( __DIR__, 'loadInitialSitemap' ); + } +} diff --git a/tests/Integration/inc/Engine/Preload/Subscriber/updateCacheRow.php b/tests/Integration/inc/Engine/Preload/Subscriber/updateCacheRow.php new file mode 100644 index 0000000000..4e82e5eb55 --- /dev/null +++ b/tests/Integration/inc/Engine/Preload/Subscriber/updateCacheRow.php @@ -0,0 +1,47 @@ +assertGreaterThan( 0, did_action('rocket_preload_completed') ); + } + + foreach ($expected['links'] as $link) { + $this->assertSame(true, self::cacheFound($link)); + } + } + + public function providerTestData() { + return $this->getTestData( __DIR__, 'updateCacheRow' ); + } +} diff --git a/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php b/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php index bac994f8ea..087b72b9d1 100644 --- a/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php +++ b/tests/Integration/inc/Engine/WPRocketUninstall/uninstall.php @@ -114,13 +114,14 @@ public function tear_down() { } public function testShouldDeleteAll() { - $cache_path = 'vfs://public/wp-content/cache/'; + $cache_path = 'vfs://public/wp-content/cache/'; $config_path = 'vfs://public/wp-content/wp-rocket-config/'; $container = apply_filters( 'rocket_container', null ); - $rucss_resources_table = $container->get( 'rucss_resources_table' ); $rucss_usedcss_table = $container->get( 'rucss_usedcss_table' ); + $preload_table = $container->get( 'preload_caches_table' ); + + $uninstall = new WPRocketUninstall( $cache_path, $config_path, $rucss_usedcss_table, $preload_table ); - $uninstall = new WPRocketUninstall( $cache_path, $config_path, $rucss_resources_table, $rucss_usedcss_table ); $uninstall->uninstall(); foreach ( self::getOptionNames() as $option_name ) { @@ -138,7 +139,6 @@ public function testShouldDeleteAll() { $this->assertEmpty( $this->filesystem->getListing( $cache_path ) ); $this->assertFalse( $this->filesystem->exists( $config_path ) ); - $this->assertFalse( $rucss_resources_table->exists() ); $this->assertFalse( $rucss_usedcss_table->exists() ); } } diff --git a/tests/Integration/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber/showEmptyProductGalleryWithDelayJS.php b/tests/Integration/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber/showEmptyProductGalleryWithDelayJS.php index f4c9bd7a5c..575cb93e73 100644 --- a/tests/Integration/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber/showEmptyProductGalleryWithDelayJS.php +++ b/tests/Integration/inc/ThirdParty/Plugins/Ecommerce/WooCommerceSubscriber/showEmptyProductGalleryWithDelayJS.php @@ -1,6 +1,7 @@ unregisterAllCallbacksExcept('rocket_sitemap_preload_list', 'add_jetpack_sitemap'); + } + + public function tearDown(): void + { + $this->restoreWpFilter('rocket_first_install_options'); + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnExpected( $config, $expected ) { + $this->assertSame( $expected, apply_filters( 'rocket_sitemap_preload_list', $config['sitemaps'] )); + } + +} diff --git a/tests/Integration/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php b/tests/Integration/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php new file mode 100644 index 0000000000..28bf71cdc7 --- /dev/null +++ b/tests/Integration/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php @@ -0,0 +1,56 @@ +unregisterAllCallbacksExcept('rocket_sitemap_preload_list', 'add_all_in_one_seo_sitemap'); + } + + public function tearDown(): void + { + $this->restoreWpFilter('rocket_sitemap_preload_list'); + remove_filter('pre_option_aioseop_options', [$this, 'aioseop_options']); + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->aioseop_options = $config['options']; + if($config['version'] === 4) { + $this->aioseo = (object) [ + 'options' => (object) [ + 'sitemap' => (object) [ + 'general' => (object) [ + 'enable' => $config['aioseo_enabled'] + ] + ] + ] + ]; + Functions\when('aioseo')->justReturn($this->aioseo); + } + $this->assertSame($expected, apply_filters('rocket_sitemap_preload_list', $config['sitemaps'])); + } + + public function aioseop_options() { + return $this->aioseop_options; + } +} diff --git a/tests/Integration/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php b/tests/Integration/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php new file mode 100644 index 0000000000..ed8b5b25fd --- /dev/null +++ b/tests/Integration/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php @@ -0,0 +1,39 @@ +unregisterAllCallbacksExcept('rocket_sitemap_preload_list', 'rocket_sitemap'); + } + + public function tearDown(): void + { + $this->restoreWpFilter('rocket_sitemap_preload_list'); + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Router::$sitemap = $config['sitemap']; + $this->assertSame($expected, apply_filters('rocket_sitemap_preload_list', $config['sitemaps'])); + } + +} diff --git a/tests/Integration/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php b/tests/Integration/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php new file mode 100644 index 0000000000..aaebc7a0ab --- /dev/null +++ b/tests/Integration/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php @@ -0,0 +1,38 @@ +unregisterAllCallbacksExcept('rocket_sitemap_preload_list', 'add_seopress_sitemap'); + } + + public function tearDown(): void + { + $this->restoreWpFilter('rocket_sitemap_preload_list'); + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->assertSame($expected, apply_filters('rocket_sitemap_preload_list', $config['sitemaps'])); + } + +} diff --git a/tests/Integration/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php b/tests/Integration/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php new file mode 100644 index 0000000000..5f5204b8af --- /dev/null +++ b/tests/Integration/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php @@ -0,0 +1,46 @@ +unregisterAllCallbacksExcept('rocket_sitemap_preload_list', 'add_tsf_sitemap_to_preload'); + } + + public function tearDown(): void + { + $this->restoreWpFilter('rocket_sitemap_preload_list'); + remove_filter('pre_get_rocket_option_tsf_xml_sitemap', [$this, 'is_disabled']); + parent::tearDown(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\when('rocket_get_constant')->justReturn($config['version']); + Sitemap::$endpoints = $config['endpoints']; + Sitemap::$url = $config['url']; + Sitemap::$sitemap = $config['sitemap']; + $this->assertSame($expected, apply_filters('rocket_sitemap_preload_list', $config['sitemaps'])); + } + +} diff --git a/tests/Integration/inc/admin/rocketNewUpgrade.php b/tests/Integration/inc/admin/rocketNewUpgrade.php index 0759ca3c9f..9bb91c0229 100644 --- a/tests/Integration/inc/admin/rocketNewUpgrade.php +++ b/tests/Integration/inc/admin/rocketNewUpgrade.php @@ -3,6 +3,7 @@ namespace WP_Rocket\Tests\Unit\Inc\admin; use Brain\Monkey\Functions; +use WP_Rocket\Tests\Integration\DBTrait; use WP_Rocket\Tests\Integration\TestCase; /** @@ -12,6 +13,20 @@ * @group AdminOnly */ class Test_RocketNewUpgrade extends TestCase { + use DBTrait; + + public static function set_up_before_class() + { + parent::set_up_before_class(); + self::installFresh(); + } + + public static function tear_down_after_class() + { + self::uninstallAll(); + parent::tear_down_after_class(); + } + public function testShouldRegenerateAdvancedCacheFile() { Functions\expect( 'rocket_generate_advanced_cache_file' ) ->atLeast() diff --git a/tests/Integration/inc/common/doAdminPostRocketPurgeCache.php b/tests/Integration/inc/common/doAdminPostRocketPurgeCache.php index 0c1dec0f5a..0c8e419fa4 100644 --- a/tests/Integration/inc/common/doAdminPostRocketPurgeCache.php +++ b/tests/Integration/inc/common/doAdminPostRocketPurgeCache.php @@ -3,6 +3,7 @@ namespace WP_Rocket\Tests\Integration\Inc\Common; use Brain\Monkey\Functions; +use WP_Rocket\Tests\Integration\DBTrait; use WP_Rocket\Tests\Integration\FilesystemTestCase; /** @@ -26,6 +27,7 @@ * @group AdminOnly */ class Test_DoAdminPostRocketPurgeCache extends FilesystemTestCase { + use DBTrait; protected $path_to_test_data = '/inc/common/doAdminPostRocketPurgeCache.php'; protected static $original_transients = []; protected static $user_id; @@ -44,12 +46,20 @@ public static function wpSetUpBeforeClass( $factory ) { self::$user_id = $factory->user->create( [ 'role' => 'administrator' ] ); } + public static function set_up_before_class() + { + parent::set_up_before_class(); + self::installFresh(); + } + public static function tear_down_after_class() { parent::tear_down_after_class(); foreach ( self::$original_transients as $transient => $value ) { set_transient( $transient, $value, HOUR_IN_SECONDS ); } + + self::uninstallAll(); } public function set_up() { diff --git a/tests/Unit/bootstrap.php b/tests/Unit/bootstrap.php index 44b4cbf98c..1129423d25 100644 --- a/tests/Unit/bootstrap.php +++ b/tests/Unit/bootstrap.php @@ -37,8 +37,14 @@ function load_original_files_before_mocking() { '/WP.php', '/WP_Theme.php', '/WPDieException.php', + '/WP_Sitemaps_Index.php', + '/WP_Sitemaps.php', + '/WP_Filesystem_Direct.php', + '/Action_Scheduler/ActionScheduler_Abstract_QueueRunner.php', '/Kinsta_Cache.php', '/WP_Rewrite.php', + '/inc/ThirdParty/Plugins/SEO/RankMathSEO/fixtures.php', + '/inc/ThirdParty/Plugins/SEO/TheSEOFramework/fixtures.php', ]; foreach ( $fixtures as $file ) { require_once WP_ROCKET_TESTS_FIXTURES_DIR . $file; diff --git a/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/doBatch.php b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/doBatch.php new file mode 100644 index 0000000000..587dbcfe58 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/doBatch.php @@ -0,0 +1,97 @@ +store = Mockery::mock(ActionScheduler_Store::class); + $this->monitor = Mockery::mock(ActionScheduler_FatalErrorMonitor::class); + $this->async_request = Mockery::mock(ActionScheduler_AsyncRequest_QueueRunner::class); + $this->compatibility = Mockery::mock(ActionScheduler_Compatibility::class); + $this->cleaner = Mockery::mock(ActionScheduler_QueueCleaner::class); + $this->logger = Mockery::mock(Logger::class); + $this->locker = Mockery::mock(ActionScheduler_Lock::class); + $this->queueRunner = Mockery::mock(PreloadQueueRunner::class. '[process_action,batch_limits_exceeded]', + [$this->store, + $this->monitor, + $this->cleaner, + $this->async_request, + $this->compatibility, + $this->logger, + $this->locker,]); + $this->claim = Mockery::mock(ActionScheduler_ActionClaim::class); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->store->expects()->stake_claim($config['size'], null, [], $config['group'])->andReturn($this->claim); + $this->monitor->expects()->attach($this->claim); + $this->claim->expects()->get_actions()->andReturn($config['action_ids']); + + $this->configureClaim($config); + $this->configureActions($config); + $this->configureClearCache($config); + + $this->store->expects()->release_claim($this->claim); + $this->monitor->expects()->detach(); + + $this->assertSame($expected, $this->queueRunner->do_batch($config['size'], $config['context'])); + } + + protected function configureClaim($config) { + if(count($config['action_ids']) === 0) { + return; + } + $this->store->shouldReceive('find_actions_by_claim_id')->with($config['claim_id'])->andReturn($config['claim_actions_ids'])->atLeast()->once(); + $this->claim->shouldReceive('get_id')->andReturn($config['claim_id'])->atLeast()->once(); + } + + protected function configureActions($config) { + if(count($config['claim_actions_ids']) === 0) { + return; + } + foreach ($config['action_ids'] as $index => $id) { + $this->queueRunner->expects()->process_action($id, $config['context']); + $this->queueRunner->expects()->batch_limits_exceeded($index + 1)->andReturn($config['action_max'][$index]); + } + } + + protected function configureClearCache($config) { + Functions\expect('wp_using_ext_object_cache')->andReturn($config['is_using_object_cache']); + if($config['is_using_object_cache']) { + Filters\expectApplied('action_scheduler_queue_runner_flush_cache')->with(false)->andReturn($config['flush_cache']); + } + if(! $config['flush_cache'] && $config['is_using_object_cache']) { + return; + } + Functions\expect('wp_cache_flush'); + } +} diff --git a/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/init.php b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/init.php new file mode 100644 index 0000000000..d53d37f974 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/init.php @@ -0,0 +1,86 @@ +store = Mockery::mock(ActionScheduler_Store::class); + $this->monitor = Mockery::mock(ActionScheduler_FatalErrorMonitor::class); + $this->async_request = Mockery::mock(ActionScheduler_AsyncRequest_QueueRunner::class); + $this->compatibility = Mockery::mock(ActionScheduler_Compatibility::class); + $this->cleaner = Mockery::mock(ActionScheduler_QueueCleaner::class); + $this->logger = Mockery::mock(Logger::class); + $this->locker = Mockery::mock(ActionScheduler_Lock::class); + $this->queueRunner = new PreloadQueueRunner( + $this->store, + $this->monitor, + $this->cleaner, + $this->async_request, + $this->compatibility, + $this->logger, + $this->locker + ); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + Filters\expectApplied('cron_schedules')->with([$this->queueRunner, 'add_wp_cron_schedule']); + Functions\expect('wp_next_scheduled')->ordered()->with(PreloadQueueRunner::WP_CRON_HOOK)->andReturn($config['timestamp']); + $this->configureUnschedule($config); + Functions\expect('wp_next_scheduled')->with([ 'WP Cron' ], PreloadQueueRunner::WP_CRON_HOOK)->andReturn($config['next_scheduled']); + $this->configureNextShedule($config); + Actions\expectAdded(PreloadQueueRunner::WP_CRON_HOOK)->with([$this->queueRunner, 'run']); + + Actions\expectAdded('shutdown')->with([$this->queueRunner, 'maybe_dispatch_async_request']); + $this->queueRunner->init(); + } + + protected function configureUnschedule($config) { + if(! $config['timestamp']) { + return; + } + + Functions\expect('wp_unschedule_event')->with($config['timestamp'], PreloadQueueRunner::WP_CRON_HOOK); + } + + protected function configureNextShedule($config) { + if($config['next_scheduled']) { + return; + } + Filters\expectApplied('rocket_action_scheduler_run_schedule')->with(PreloadQueueRunner::WP_CRON_HOOK)->andReturn($config['schedule']); + + Functions\expect('wp_schedule_event')->with(Mockery::on(function($data) { + return time() >= $data && time() - 3600 < $data; + }), $config['schedule'], + PreloadQueueRunner::WP_CRON_HOOK, [ 'WP Cron' ]); + } +} diff --git a/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/instance.php b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/instance.php new file mode 100644 index 0000000000..4afd44b849 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/instance.php @@ -0,0 +1,10 @@ +assertSame(PreloadQueueRunner::instance(), PreloadQueueRunner::instance()); + } +} diff --git a/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php new file mode 100644 index 0000000000..e563864561 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/maybeDispatchAsyncRequest.php @@ -0,0 +1,62 @@ +store = Mockery::mock(\ActionScheduler_Store::class); + $this->monitor = Mockery::mock(\ActionScheduler_FatalErrorMonitor::class); + $this->async_request = Mockery::mock(ActionScheduler_AsyncRequest_QueueRunner::class); + $this->compatibility = Mockery::mock(ActionScheduler_Compatibility::class); + $this->cleaner = Mockery::mock(ActionScheduler_QueueCleaner::class); + $this->logger = Mockery::mock(Logger::class); + $this->locker = Mockery::mock(ActionScheduler_Lock::class); + $this->queueRunner = new PreloadQueueRunner($this->store, + $this->monitor, + $this->cleaner, + $this->async_request, + $this->compatibility, + $this->logger, + $this->locker + ); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + Functions\expect('is_admin')->andReturn($config['is_admin']); + if($config['is_admin']) { + $this->locker->expects()->is_locked('async-request-runner')->andReturn($config['is_locked']); + } + if($config['is_admin'] && ! $config['is_locked']) { + $this->locker->expects()->set('async-request-runner'); + $this->async_request->expects()->maybe_dispatch(); + } + + $this->queueRunner->maybe_dispatch_async_request(); + } +} diff --git a/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/run.php b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/run.php new file mode 100644 index 0000000000..521de239e2 --- /dev/null +++ b/tests/Unit/inc/Engine/Common/Queue/PreloadQueueRunner/run.php @@ -0,0 +1,73 @@ +store = Mockery::mock(\ActionScheduler_Store::class); + $this->monitor = Mockery::mock(\ActionScheduler_FatalErrorMonitor::class); + $this->async_request = Mockery::mock(ActionScheduler_AsyncRequest_QueueRunner::class); + $this->compatibility = Mockery::mock(ActionScheduler_Compatibility::class); + $this->cleaner = Mockery::mock(ActionScheduler_QueueCleaner::class); + $this->logger = Mockery::mock(Logger::class); + $this->locker = Mockery::mock(ActionScheduler_Lock::class); + $this->queueRunner = Mockery::mock(PreloadQueueRunner::class . '[run_cleanup,get_time_limit,has_maximum_concurrent_batches,do_batch,batch_limits_exceeded]', [ + $this->store, + $this->monitor, + $this->cleaner, + $this->async_request, + $this->compatibility, + $this->logger, + $this->locker + ]); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Actions\expectDone('action_scheduler_before_process_queue'); + $this->compatibility->expects()->raise_memory_limit(); + $this->compatibility->expects()->raise_time_limit($config['time_limit']); + $this->queueRunner->expects()->run_cleanup(); + $this->queueRunner->expects()->get_time_limit()->andReturn($config['time_limit']); + $this->queueRunner->shouldReceive('has_maximum_concurrent_batches')->andReturn(! $config['do_batch'])->once(); + + Actions\expectDone('action_scheduler_after_process_queue'); + $this->configureBatch($config); + $this->assertSame($expected, $this->queueRunner->run($config['context'])); + } + + protected function configureBatch($config) { + if(! $config['do_batch']) { + return; + } + $this->queueRunner->shouldReceive('batch_limits_exceeded')->andReturnValues($config['has_max']) + ->atLeast()->once(); + Filters\expectApplied('action_scheduler_queue_runner_batch_size')->with(25)->andReturn($config['batch_size']); + $this->queueRunner->shouldReceive('do_batch')->with($config['batch_size'], $config['context'])->andReturn($config['processed'])->atLeast()->once(); + } +} diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php deleted file mode 100644 index e3866e6af0..0000000000 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldResources.php +++ /dev/null @@ -1,73 +0,0 @@ -isPHP8() ) { - return; - } - - $this->resources = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources') - ->disableOriginalConstructor() - ->getMock(); - - $this->usedCSS = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS') - ->disableOriginalConstructor() - ->getMock(); - $this->database = new Database( $this->resources, $this->usedCSS ); - } - - /** - * @dataProvider configTestData - */ - public function testShouldDoExpected( $input ){ - if ( $this->isPHP8() ) { - $this->assertTrue(true); - return; - } - - $this->resources->expects( $this->once() ) - ->method( 'exists' ) - ->will( $this->returnValue( $input['resources']['exists'] ) ); - - if ( true === $input['resources']['exists'] ) { - $this->resources->expects( $this->once() ) - ->method('delete_old_items'); - } - - $this->database->delete_old_resources(); - } - - /** - * Check if is PHP8. - * - * @return bool - */ - public function isPHP8() { - $version = explode('.', PHP_VERSION); - if ( $version[0] >= 8 ) { - $this->assertTrue(true); - return true; - } - - return false; - } -} diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php index f70fbb5eb8..ebb35fd744 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/deleteOldUsedCss.php @@ -5,7 +5,6 @@ use WP_Rocket\Tests\Unit\TestCase; use WP_Rocket\Engine\Optimization\RUCSS\Admin\Database; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources; use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS; /** @@ -14,7 +13,6 @@ * @group RUCSS */ class Test_DeleteOldUsedCss extends TestCase{ - private $resources; private $usedCSS; private $database; @@ -25,14 +23,10 @@ public function setUp() : void { return; } - $this->resources = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources') + $this->usedCSS = $this->getMockBuilder( UsedCSS::class ) ->disableOriginalConstructor() ->getMock(); - - $this->usedCSS = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS') - ->disableOriginalConstructor() - ->getMock(); - $this->database = new Database( $this->resources, $this->usedCSS ); + $this->database = new Database( $this->usedCSS ); } /** diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php new file mode 100644 index 0000000000..758cacf5a0 --- /dev/null +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropResourcesTable.php @@ -0,0 +1,76 @@ +isPHP8() ) { + return; + } + + $GLOBALS['wpdb'] = new wpdb(); + + $this->usedCSS = $this->getMockBuilder( UsedCSS::class ) + ->disableOriginalConstructor() + ->getMock(); + $this->database = new Database( $this->usedCSS ); + } + + protected function tearDown(): void { + unset( $GLOBALS['wpdb'] ); + + parent::tearDown(); + } + + public function testShouldDeleteTableAndOption() { + if ( $this->isPHP8() ) { + $this->assertTrue(true); + return; + } + + Functions\expect( 'delete_option' ) + ->once() + ->with( 'wpr_rucss_resources_version' ) + ->andReturn( true ); + + $this->assertTrue( $this->database->drop_resources_table() ); + } + + /** + * Check if is PHP8. + * + * @return bool + */ + public function isPHP8() { + $version = explode('.', PHP_VERSION); + if ( $version[0] >= 8 ) { + $this->assertTrue(true); + return true; + } + + return false; + } +} diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php index c94153e48c..bdc02ee5dd 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/dropRucssDatabaseTables.php @@ -5,7 +5,6 @@ use WP_Rocket\Tests\Unit\TestCase; use WP_Rocket\Engine\Optimization\RUCSS\Admin\Database; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources; use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS; /** @@ -14,7 +13,6 @@ * @group RUCSS */ class Test_DropRucssDatabaseTables extends TestCase{ - private $resources; private $usedCSS; private $database; @@ -25,14 +23,10 @@ public function setUp() : void { return; } - $this->resources = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources') + $this->usedCSS = $this->getMockBuilder( UsedCSS::class ) ->disableOriginalConstructor() ->getMock(); - - $this->usedCSS = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS') - ->disableOriginalConstructor() - ->getMock(); - $this->database = new Database( $this->resources, $this->usedCSS ); + $this->database = new Database( $this->usedCSS ); } /** @@ -44,15 +38,6 @@ public function testShouldDoExpected( $input ){ return; } - $this->resources->expects( $this->once() ) - ->method( 'exists' ) - ->will( $this->returnValue( $input['resources']['exists'] ) ); - - if ( true === $input['resources']['exists'] ) { - $this->resources->expects( $this->once() ) - ->method('uninstall'); - } - $this->usedCSS->expects( $this->once() ) ->method( 'exists' ) ->will( $this->returnValue( $input['usedCSS']['exists'] ) ); diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php index 52de6d91ea..8754c8e310 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Admin/Database/truncateUsedCssTable.php @@ -5,7 +5,6 @@ use WP_Rocket\Tests\Unit\TestCase; use WP_Rocket\Engine\Optimization\RUCSS\Admin\Database; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources; use WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS; /** @@ -14,7 +13,6 @@ * @group RUCSS */ class Test_TruncateUsedCssTable extends TestCase{ - private $resources; private $usedCSS; private $database; @@ -25,14 +23,10 @@ public function setUp() : void { return; } - $this->resources = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources') + $this->usedCSS = $this->getMockBuilder( UsedCSS::class ) ->disableOriginalConstructor() ->getMock(); - - $this->usedCSS = $this->getMockBuilder('WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS') - ->disableOriginalConstructor() - ->getMock(); - $this->database = new Database( $this->resources, $this->usedCSS ); + $this->database = new Database( $this->usedCSS ); } /** diff --git a/tests/Unit/inc/Engine/Optimization/RUCSS/Controller/UsedCSS/treeshake.php b/tests/Unit/inc/Engine/Optimization/RUCSS/Controller/UsedCSS/treeshake.php index 2eb353d34b..2b03a1bf9b 100644 --- a/tests/Unit/inc/Engine/Optimization/RUCSS/Controller/UsedCSS/treeshake.php +++ b/tests/Unit/inc/Engine/Optimization/RUCSS/Controller/UsedCSS/treeshake.php @@ -4,7 +4,6 @@ use WP_Rocket\Engine\Common\Queue\QueueInterface; use WP_Rocket\Engine\Optimization\RUCSS\Controller\Filesystem; use WP_Rocket\Engine\Optimization\RUCSS\Controller\UsedCSS; -use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\ResourcesQuery; use WP_Rocket\Engine\Optimization\RUCSS\Database\Queries\UsedCSS as UsedCSS_Query; use WP_Rocket\Engine\Optimization\RUCSS\Database\Row\UsedCSS as UsedCSS_Row; use WP_Rocket\Engine\Optimization\RUCSS\Frontend\APIClient; @@ -20,7 +19,6 @@ class Test_Treeshake extends TestCase { protected $options; protected $usedCssQuery; - protected $resourcesQuery; protected $api; protected $queue; protected $usedCss; @@ -31,7 +29,6 @@ protected function setUp(): void parent::setUp(); $this->options = Mockery::mock(Options_Data::class); $this->usedCssQuery = $this->createMock(UsedCSS_Query::class); - $this->resourcesQuery = $this->createMock(ResourcesQuery::class); $this->api = Mockery::mock(APIClient::class); $this->queue = Mockery::mock(QueueInterface::class); $this->filesystem = Mockery::mock( Filesystem::class ); @@ -39,7 +36,6 @@ protected function setUp(): void UsedCSS::class . '[is_allowed,update_last_accessed]', [ $this->options, $this->usedCssQuery, - $this->resourcesQuery, $this->api, $this->queue, $this->filesystem diff --git a/tests/Unit/inc/Engine/Preload/Activation/activate.php b/tests/Unit/inc/Engine/Preload/Activation/activate.php new file mode 100644 index 0000000000..56bdc3880e --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Activation/activate.php @@ -0,0 +1,40 @@ +queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->activation = new Activation($this->queue, $this->query); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + $this->queue->expects()->add_job_preload_job_load_initial_sitemap_async(); + + $this->activation->activate(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Activation/cleanOnUpdate.php b/tests/Unit/inc/Engine/Preload/Activation/cleanOnUpdate.php new file mode 100644 index 0000000000..8334be7c87 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Activation/cleanOnUpdate.php @@ -0,0 +1,55 @@ +controller = Mockery::mock(LoadInitialSitemap::class); + $this->queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->activation = new Activation($this->queue, $this->query); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + $this->configureCancelJobs($config); + $this->configureCancelCron($config); + $this->activation->clean_on_update($config['new_version'], $config['old_version']); + } + + public function configureCancelJobs($config) { + if($config['old_version'] !== '3.11.0') { + $this->queue->expects()->cancel_pending_jobs()->never(); + return; + } + + $this->queue->expects()->cancel_pending_jobs(); + + Functions\expect('wp_next_scheduled')->with('rocket_preload_process_pending')->andReturn($config['cron_present']); + } + + public function configureCancelCron($config) { + if($config['old_version'] !== '3.11.0'|| ! $config['cron_present']) { + return; + } + Functions\expect('wp_clear_scheduled_hook')->with('rocket_preload_process_pending'); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Activation/refreshOnUpdate.php b/tests/Unit/inc/Engine/Preload/Activation/refreshOnUpdate.php new file mode 100644 index 0000000000..32cbdb98c3 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Activation/refreshOnUpdate.php @@ -0,0 +1,47 @@ +controller = Mockery::mock(LoadInitialSitemap::class); + $this->queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->activation = new Activation($this->queue, $this->query); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + $this->configureReloadSitemap($config); + $this->activation->refresh_on_update($config['new_version'], $config['old_version']); + } + + public function configureReloadSitemap($config) { + if($config['new_version'] !== '3.11.0') { + $this->queue->expects()->add_job_preload_job_load_initial_sitemap_async()->never(); + return; + } + + $this->queue->expects()->add_job_preload_job_load_initial_sitemap_async(); + + } +} diff --git a/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayAsMissedTablesNotice.php b/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayAsMissedTablesNotice.php new file mode 100644 index 0000000000..848f158cd6 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayAsMissedTablesNotice.php @@ -0,0 +1,33 @@ +options = Mockery::mock(Options_Data::class); + $this->settings = new Settings($this->options); + $this->stubTranslationFunctions(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->stubTranslationFunctions(); + Functions\expect('menu_page_url')->with('action-scheduler', false)->andReturn($config['links']); + Functions\expect('rocket_notice_html')->with($expected['notice']); + $this->settings->maybe_display_as_missed_tables_notice(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php b/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php new file mode 100644 index 0000000000..5800d0c991 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Admin/Settings/maybeDisplayPreloadNotice.php @@ -0,0 +1,60 @@ +options = Mockery::mock(Options_Data::class); + $this->settings = new Settings($this->options); + $this->stubTranslationFunctions(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\expect('get_current_screen')->with()->andReturn($config['screen']); + Functions\expect('current_user_can')->with('rocket_manage_options')->andReturn($config['has_right']); + $this->configureEnabled($config); + $this->configureTransient($config); + $this->configureNotice($config, $expected); + $this->settings->maybe_display_preload_notice(); + } + + protected function configureEnabled($config) { + if(! key_exists('enabled', $config)) { + return; + } + $this->options->expects()->get('manual_preload', 0)->andReturn($config['enabled']); + } + + protected function configureTransient($config) { + if(! key_exists('load_transient', $config)) { + return; + } + + Functions\expect('get_transient')->with('rocket_preload_processing')->andReturn($config['transient']); + } + + protected function configureNotice($config, $expected) { + if(! key_exists('show_display_notice', $config)) { + return; + } + + Functions\expect('rocket_notice_html')->with($expected['notice']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php b/tests/Unit/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php new file mode 100644 index 0000000000..21971cc2ad --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/CheckExcludedTrait/isExcluded.php @@ -0,0 +1,32 @@ +trait = Mockery::mock(CheckExcludedTrait::class)->makePartial(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\expect('get_rocket_cache_reject_uri')->andReturn($config['excluded_urls']); + $method = $this->get_reflective_method('is_excluded', get_class($this->trait)); + $this->assertSame($expected, $method->invokeArgs($this->trait,[$config['url']])); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php b/tests/Unit/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php new file mode 100644 index 0000000000..d0d870c063 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/CheckFinished/checkFinished.php @@ -0,0 +1,59 @@ +query = $this->createMock(Cache::class); + $this->queue = Mockery::mock(Queue::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = new CheckFinished($this->settings, $this->query, $this->queue); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + $this->settings->shouldReceive('is_enabled')->andReturn($config['is_enabled'])->zeroOrMoreTimes(); + $this->queue->expects()->has_remaining_tasks()->andReturn($config['remaining'])->atLeast()->zeroOrMoreTimes(); + $this->query->expects(self::atLeast(0))->method('has_pending_jobs')->willReturn($config['have_pending']); + $this->configureRecreateTask($config); + $this->configureEndProcess($config); + $this->controller->check_finished(); + } + + protected function configureEndProcess($config) { + if($config['is_enabled'] && ($config['remaining'] || $config['have_pending'])) { + return; + } + Functions\expect('delete_transient')->with('wpr_preload_running'); + } + + protected function configureRecreateTask($config) { + if(! $config['is_enabled'] || (!$config['remaining'] && !$config['have_pending'])) { + return; + } + $this->queue->expects()->add_job_preload_job_check_finished_async(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/ClearCache/fullClean.php b/tests/Unit/inc/Engine/Preload/Controller/ClearCache/fullClean.php new file mode 100644 index 0000000000..ddf780e059 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/ClearCache/fullClean.php @@ -0,0 +1,34 @@ +query = $this->createMock(Cache::class); + $this->controller = new ClearCache($this->query); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + + $this->query->expects(self::once())->method('set_all_to_pending'); + + $this->controller->full_clean(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/ClearCache/partialClean.php b/tests/Unit/inc/Engine/Preload/Controller/ClearCache/partialClean.php new file mode 100644 index 0000000000..0926abc826 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/ClearCache/partialClean.php @@ -0,0 +1,41 @@ +query = $this->createMock(Cache::class); + $this->controller = Mockery::mock(ClearCache::class . '[is_excluded]', [$this->query]) + ->shouldAllowMockingProtectedMethods(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + + foreach ($config['urls'] as $url) { + $this->controller->expects()->is_excluded($url)->andReturn($config['is_excluded']); + } + if(! $config['is_excluded']) { + $this->query->expects(self::atLeastOnce())->method('create_or_update')->withConsecutive(...$expected['urls']); + } + + $this->controller->partial_clean($config['urls']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php b/tests/Unit/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php new file mode 100644 index 0000000000..3b5e33476a --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/CrawlHomepage/crawl.php @@ -0,0 +1,52 @@ +controller = new CrawlHomepage(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + Filters\expectApplied('https_local_ssl_verify')->with(false)->andReturn(false); + Filters\expectApplied('rocket_homepage_preload_url_request_args')->with($config['args'])->andReturn($config['args']); + Functions\expect('home_url')->andReturn($config['home_url']); + Functions\expect('esc_url_raw')->with()->andReturn($config['escaped_home_url']); + Functions\expect('wp_remote_get')->with($config['escaped_home_url'])->andReturn($config['request']['response']); + Functions\expect('is_wp_error')->with($config['request']['response'])->andReturn($config['request']['is_error']); + Functions\when('wp_parse_url')->alias(function ($url, $component = -1) { + return parse_url($url, $component); + }); + $this->configureCheckCode($config); + $this->configureRetrieveBody($config); + + $this->assertSame($expected, $this->controller->crawl()); + } + + protected function configureCheckCode($config) { + if($config['request']['is_error']) { + return; + } + + Functions\expect('wp_remote_retrieve_response_code')->with($config['request']['response'])->andReturn($config['request']['code']); + } + + protected function configureRetrieveBody($config) { + if($config['request']['is_error'] || $config['request']['code'] !== 200) { + return; + } + + Functions\expect('wp_remote_retrieve_body')->with($config['request']['response'])->andReturn($config['request']['body']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/cancelPreload.php b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/cancelPreload.php new file mode 100755 index 0000000000..e350509539 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/cancelPreload.php @@ -0,0 +1,38 @@ +queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->crawler = Mockery::mock(CrawlHomepage::class); + $this->controller = new LoadInitialSitemap($this->queue, $this->query, $this->crawler); + } + + public function testShouldDoAsExpected() { + $this->queue->expects()->cancel_pending_jobs(); + $this->query->expects(self::once())->method('revert_in_progress'); + $this->controller->cancel_preload(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php new file mode 100755 index 0000000000..3c86106652 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/LoadInitialSitemap/loadInitialSitemap.php @@ -0,0 +1,81 @@ +queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->crawler = Mockery::mock(CrawlHomepage::class); + $this->controller = new LoadInitialSitemap($this->queue, $this->query, $this->crawler); + } + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + Filters\expectApplied('rocket_sitemap_preload_list')->with($config['sitemaps'])->andReturn($config['filter_sitemaps']); + Filters\expectApplied('rocket_preload_load_custom_urls')->with([])->andReturn([]); + $this->queue->expects()->add_job_preload_job_preload_url_async($config['home_url']); + foreach ($config['filter_sitemaps'] as $sitemap) { + $this->queue->expects()->add_job_preload_job_parse_sitemap_async($sitemap); + } + if(count($config['filter_sitemaps']) > 0) { + $this->queue->expects()->add_job_preload_job_check_finished_async(); + } + if(key_exists('transient', $expected)) { + Functions\expect('set_transient')->with('wpr_preload_running', true); + } + + Functions\when('home_url')->justReturn($config['home_url']); + $this->configureWordPressSitemap($config); + $this->controller->load_initial_sitemap(); + } + + protected function configureWordPressSitemap($config) { + if(count($config['filter_sitemaps']) > 0) { + return ; + $this->query->expects(self::once())->method('create_or_nothing')->with([ + 'url' => $config['home_url'] + ]); + } + Functions\expect('get_option')->with('blog_public')->andReturn($config['is_sitemap_activated']); + + if($config['is_sitemap_activated']) { + $mock = Mockery::mock(WP_Sitemaps_Index::class); + $mock->expects()->get_index_url()->andReturn($config['wp_sitemap']); + $sitemap = (object) ['index' => $mock]; + Functions\expect('wp_sitemaps_get_server')->with()->andReturn($sitemap); + + $this->queue->expects()->add_job_preload_job_parse_sitemap_async($config['wp_sitemap']); + $this->queue->expects()->add_job_preload_job_check_finished_async(); + $this->query->expects(self::once())->method('create_or_nothing')->with([ + 'url' => $config['home_url'] + ]); + } else { + $this->crawler->expects()->crawl()->andReturn($config['crawl_urls']); + $this->query->expects(self::atLeast(1))->method('create_or_nothing')->withConsecutive(...$config['add_crawl_urls']); + } + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php new file mode 100644 index 0000000000..a4fdc9a393 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/getMobileUserAgentPrefix.php @@ -0,0 +1,46 @@ +options = Mockery::mock(Options_Data::class); + $this->query = $this->createMock(Cache::class); + $this->queue = Mockery::mock(Queue::class); + $this->file_system = Mockery::mock(WP_Filesystem_Direct::class); + $this->controller = new PreloadUrl($this->options, $this->queue, $this->query, $this->file_system); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + Filters\expectApplied('rocket_mobile_preload_user_agent_prefix')->with($config['prefix'])->andReturn($config['filter']); + $method = $this->get_reflective_method('get_mobile_user_agent_prefix', PreloadUrl::class); + $this->assertSame($expected, $method->invokeArgs($this->controller,[])); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php new file mode 100644 index 0000000000..ffdef2f31a --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/preloadUrl.php @@ -0,0 +1,70 @@ +options = Mockery::mock(Options_Data::class); + $this->query = $this->createMock(Cache::class); + $this->queue = Mockery::mock(Queue::class); + $this->file_system = Mockery::mock(WP_Filesystem_Direct::class); + $this->controller = Mockery::mock(PreloadUrl::class . '[get_mobile_user_agent_prefix,is_already_cached]', + [$this->options, + $this->queue, $this->query, $this->file_system])->shouldAllowMockingProtectedMethods(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + $this->options->expects()->get('do_caching_mobile_files', false)->andReturn($config['cache_mobile']); + $this->controller->expects()->is_already_cached($config['url'])->andReturn($config['cache_exists']); + $this->configureRequest($config); + $this->configureMobileRequest($config); + $this->controller->preload_url($config['url']); + } + + protected function configureRequest($config) { + if($config['cache_exists']) { + return; + } + + Functions\expect('wp_safe_remote_get')->with($config['url'] . '/', $config['request']['config']); + } + + protected function configureMobileRequest($config) { + if($config['cache_exists']) { + return; + } + + if(! $config['cache_mobile']) { + return; + } + $this->controller->expects()->get_mobile_user_agent_prefix()->andReturn($config['user_agent']); + Functions\expect('wp_safe_remote_get')->with($config['url'] . '/', $config['request_mobile']['config']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php new file mode 100644 index 0000000000..8d0fb85b16 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Controller/PreloadUrl/processPendingJobs.php @@ -0,0 +1,51 @@ +options = Mockery::mock(Options_Data::class); + $this->query = $this->createMock(Cache::class); + $this->queue = Mockery::mock(Queue::class); + $this->file_system = Mockery::mock(WP_Filesystem_Direct::class); + $this->controller = new PreloadUrl($this->options, $this->queue, $this->query, $this->file_system); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + + Filters\expectApplied('rocket_preload_cache_pending_jobs_cron_rows_count')->with(100)->andReturn($config['rows']); + $this->query->expects(self::once())->method('get_pending_jobs')->with($config['rows'])->willReturn($config['jobs']); + $this->query->expects(self::atLeastOnce())->method('make_status_inprogress')->withConsecutive(...$expected['job_ids']); + foreach ($expected['job_urls'] as $url) { + $this->queue->expects()->add_job_preload_job_preload_url_async( $url ); + } + + $this->controller->process_pending_jobs(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addInterval.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addInterval.php new file mode 100644 index 0000000000..552199e2c4 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addInterval.php @@ -0,0 +1,55 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + $this->stubTranslationFunctions(); + $this->settings->expects()->is_enabled()->andReturn($config['is_enabled']); + + $this->assertSame($expected, $this->subscriber->add_interval($config['schedules'])); + } + + public function configureInterval($config) { + if(! $config['is_enabled'] ) { + return; + } + Filters\expectApplied('rocket_preload_pending_jobs_cron_interval')->with()->andReturn($config['filtered_interval']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php new file mode 100644 index 0000000000..cf96be9148 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/addRevertOldInProgressInterval.php @@ -0,0 +1,54 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + $this->stubTranslationFunctions(); + $this->settings->expects()->is_enabled()->andReturn($config['is_enabled']); + $this->assertSame($expected, $this->subscriber->add_revert_old_in_progress_interval($config['schedules'])); + } + + public function configureInterval($config) { + if(! $config['is_enabled'] ) { + return; + } + Filters\expectApplied('rocket_preload_revert_old_in_progress_rows_cron_interval')->with()->andReturn($config['filtered_interval']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php new file mode 100644 index 0000000000..6e9b7b05d9 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/maybeInitPreloadQueue.php @@ -0,0 +1,55 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + $this->settings->expects()->is_enabled()->andReturn($config['is_enable']); + $this->configureEnable($config); + $this->subscriber->maybe_init_preload_queue(); + } + + protected function configureEnable($config) { + if(! $config['is_enable']) { + return; + } + $this->queue_runner->expects()->init(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php new file mode 100644 index 0000000000..1ba6b47c85 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleCleanNotCommonlyUsedRows.php @@ -0,0 +1,65 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + $this->configureCheckNextSchedule($config); + $this->configureScheduleEvent($config); + $this->subscriber->schedule_clean_not_commonly_used_rows(); + } + + protected function configureCheckNextSchedule($config) { + + Functions\expect('wp_next_scheduled')->with('rocket_load_preload_url')->andReturn($config['has_next_schedule']); + } + + protected function configureScheduleEvent($config) { + if($config['has_next_schedule']) { + return; + } + + $old_time = time() + 10 * MINUTE_IN_SECONDS; + + Functions\expect('wp_schedule_event')->with( Mockery::on(function ($date) use ($old_time) { + return $date >= $old_time && $date <= time() + 10 * MINUTE_IN_SECONDS; + }), 'weekly', 'rocket_preload_clean_rows_time_event'); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php new file mode 100644 index 0000000000..78106919d8 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/schedulePendingJobs.php @@ -0,0 +1,92 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + $this->settings->shouldReceive('is_enabled')->andReturn($config['is_enabled'])->atLeast()->once(); + $this->configureCheckNextSchedule($config); + $this->configureClearSchedule($config); + $this->configureNextSchedule($config); + $this->configureScheduleEvent($config); + $this->subscriber->schedule_pending_jobs(); + } + + protected function configureCheckNextSchedule($config) { + if($config['is_enabled'] ) { + return; + } + + Functions\expect('wp_next_scheduled')->with('rocket_preload_process_pending')->andReturn($config['has_next_schedule']); + } + + protected function configureClearSchedule($config) { + if($config['is_enabled'] || ! $config['has_next_schedule']) { + return; + } + + Functions\expect('wp_clear_scheduled_hook')->with('rocket_preload_process_pending'); + } + + protected function configureNextSchedule($config) { + if(! $config['is_enabled']) { + return; + } + + Functions\expect('wp_next_scheduled')->with('rocket_preload_process_pending')->andReturn($config['next_success']); + } + + protected function configureScheduleEvent($config) { + + if(! $config['is_enabled']) { + return; + } + + if($config['next_success']) { + return; + } + + $old_time = time() + MINUTE_IN_SECONDS; + + Functions\expect('wp_schedule_event')->with( Mockery::on(function ($date) use ($old_time) { + return $date >= $old_time && $date <= time() + MINUTE_IN_SECONDS; + }), 'rocket_preload_process_pending', 'rocket_preload_process_pending'); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php new file mode 100644 index 0000000000..358eeecf60 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Cron/Subscriber/scheduleRevertOldInProgressRows.php @@ -0,0 +1,92 @@ +query = $this->createMock(Cache::class); + $this->settings = Mockery::mock(Settings::class); + $this->controller = Mockery::mock(PreloadUrl::class); + $this->queue_runner = Mockery::mock(PreloadQueueRunner::class); + + $this->subscriber = new Subscriber($this->settings, $this->query, $this->controller, $this->queue_runner); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config) { + + $this->settings->shouldReceive('is_enabled')->andReturn($config['is_enabled'])->atLeast()->once(); + $this->configureCheckNextSchedule($config); + $this->configureClearSchedule($config); + $this->configureNextSchedule($config); + $this->configureScheduleEvent($config); + $this->subscriber->schedule_revert_old_in_progress_rows(); + } + + protected function configureCheckNextSchedule($config) { + if($config['is_enabled'] ) { + return; + } + + Functions\expect('wp_next_scheduled')->with('rocket_preload_revert_old_in_progress_rows')->andReturn($config['has_next_schedule']); + } + + protected function configureClearSchedule($config) { + if($config['is_enabled'] || ! $config['has_next_schedule']) { + return; + } + + Functions\expect('wp_clear_scheduled_hook')->with('rocket_preload_revert_old_in_progress_rows'); + } + + protected function configureNextSchedule($config) { + if(! $config['is_enabled']) { + return; + } + + Functions\expect('wp_next_scheduled')->with('rocket_preload_revert_old_in_progress_rows')->andReturn($config['next_success']); + } + + protected function configureScheduleEvent($config) { + + if(! $config['is_enabled']) { + return; + } + + if($config['next_success']) { + return; + } + + $old_time = time() + MINUTE_IN_SECONDS; + + Functions\expect('wp_schedule_event')->with( Mockery::on(function ($date) use ($old_time) { + return $date >= $old_time && $date <= time() + MINUTE_IN_SECONDS; + }), 'rocket_revert_old_in_progress_rows', 'rocket_preload_revert_old_in_progress_rows'); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php new file mode 100644 index 0000000000..39d9130782 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrNothing.php @@ -0,0 +1,72 @@ +logger = Mockery::mock(Logger::class); + $this->query = $this->createPartialMock(Cache::class, ['query','add_item']); + $this->setProtectedProperty($this->query, 'logger', $this->logger); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\when('current_time')->justReturn($config['time']); + $this->query->expects(self::once())->method('query')->with([ + 'url' => $config['resource']['url'], + ])->willReturn($config['rows']); + + $this->configureCreate($config); + + $this->assertSame($expected, $this->query->create_or_nothing($config['resource'])); + } + + protected function configureCreate($config) { + if(count($config['rows']) > 0) { + return; + } + + if(! $config['id']) { + $this->logger->expects()->error("Cannot insert {$config['resource']['url']} into wpr_rocket_cache"); + } + + $this->query->expects(self::once())->method('add_item')->with($config['save'])->willReturn($config['id']); + } + + /** + * Sets a protected property on a given object via reflection + * + * @param $object - instance in which protected value is being modified + * @param $property - property on instance being modified + * @param $value - new value of the property being modified + * + * @return void + */ + public function setProtectedProperty($object, $property, $value) + { + $reflection = new ReflectionClass($object); + $reflection_property = $reflection->getProperty($property); + $reflection_property->setAccessible(true); + $reflection_property->setValue($object, $value); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php new file mode 100644 index 0000000000..1dfac6d855 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/createOrUpdate.php @@ -0,0 +1,80 @@ +logger = Mockery::mock(Logger::class); + $this->query = $this->createPartialMock(Cache::class, ['query','add_item','update_item']); + $this->setProtectedProperty($this->query, 'logger', $this->logger); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\when('current_time')->justReturn($config['time']); + $this->query->expects(self::once())->method('query')->with([ + 'url' => $config['resource']['url'], + ])->willReturn($config['rows']); + + $this->configureCreate($config); + $this->configureUpdate($config); + + $this->assertSame($expected, $this->query->create_or_update($config['resource'])); + } + + protected function configureCreate($config) { + if(count($config['rows']) > 0) { + return; + } + + if(! $config['id']) { + $this->logger->expects()->error("Cannot insert {$config['resource']['url']} into wpr_rocket_cache"); + } + + $this->query->expects(self::once())->method('add_item')->with($config['save'])->willReturn($config['id']); + } + + protected function configureUpdate($config) { + if(count($config['rows']) === 0) { + return; + } + $this->query->expects(self::exactly(1))->method('update_item')->with($config['id'], $config['save']); + } + + /** + * Sets a protected property on a given object via reflection + * + * @param $object - instance in which protected value is being modified + * @param $property - property on instance being modified + * @param $value - new value of the property being modified + * + * @return void + */ + public function setProtectedProperty($object, $property, $value) + { + $reflection = new ReflectionClass($object); + $reflection_property = $reflection->getProperty($property); + $reflection_property->setAccessible(true); + $reflection_property->setValue($object, $value); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php new file mode 100644 index 0000000000..c083ead875 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/deleteByUrl.php @@ -0,0 +1,39 @@ +query = $this->createPartialMock(Cache::class, ['get_rows_by_url', 'delete_item']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->query->expects(self::once())->method('get_rows_by_url')->with($config['url'])->willReturn($config['results']); + $this->configureDelete($config); + $this->assertSame($expected, $this->query->delete_by_url($config['url'])); + } + + protected function configureDelete($config) { + if(count($config['results']) === 0) { + return; + } + $this->query->expects(self::exactly(2))->method('delete_item')->withConsecutive([$config['delete_id_one']], [$config['delete_id_two']])->willReturnOnConsecutiveCalls($config['delete_return_one'], $config['delete_return_two']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php new file mode 100644 index 0000000000..53804699ac --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getPendingJobs.php @@ -0,0 +1,42 @@ +query = $this->createPartialMock(Cache::class, ['get_rows_by_url', 'query']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnPending($config, $expected) { + $this->query->expects(self::atLeastOnce())->method('query')->with([ + 'number' => $config['total'], + 'status' => 'pending', + 'fields' => [ + 'id', + 'url', + ], + 'job_id__not_in' => [ + 'not_in' => '', + ], + 'orderby' => 'modified', + 'order' => 'asc', + ])->willReturn($config['results']); + $this->assertSame($expected, $this->query->get_pending_jobs($config['total'])); + } + +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php new file mode 100644 index 0000000000..4d86a4bbdc --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/getRowsByUrl.php @@ -0,0 +1,31 @@ +query = $this->createPartialMock(Cache::class, ['query']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->query->expects(self::once())->method('query')->with(['url' => $config['url']])->willReturn($config['result']); + $this->assertSame($expected, $this->query->get_rows_by_url($config['url'])); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php new file mode 100644 index 0000000000..bdbe4a97a6 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/isPreloaded.php @@ -0,0 +1,35 @@ +query = $this->createPartialMock(Cache::class, ['query']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->query->expects(self::once())->method('query')->with([ + 'url' => $config['url'], + 'count' => true, + 'status' => 'in-progress', + ])->willReturn($config['result']); + $this->assertSame($expected, $this->query->is_preloaded($config['url'])); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php new file mode 100644 index 0000000000..493e5b6598 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/makeStatusComplete.php @@ -0,0 +1,44 @@ +query = $this->createPartialMock(Cache::class, ['get_rows_by_url', 'delete_item', 'query', 'update_item']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnPending($config, $expected) { + $this->query->expects(self::once())->method('query')->with($config['query_params'])->willReturn($config['results']); + $this->configureUpdate($config); + $this->assertSame($expected, $this->query->make_status_complete($config['url'])); + } + + protected function configureUpdate($config) { + if(! key_exists('task_id', $config)) { + return; + } + + $this->query->expects(self::once())->method('update_item')->with($config['task_id'], [ + 'status' => 'completed' + ])->willReturn($config['update_status']); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php new file mode 100644 index 0000000000..1a1c5144ff --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/removeAllNotAccessedRows.php @@ -0,0 +1,32 @@ +query = $this->createPartialMock(Cache::class, ['query', 'delete_item', 'get_old_cache']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDeleteAsExpected($config, $expected) { + $this->query->expects(self::once())->method('get_old_cache')->willReturn($config['results']); + $this->query->expects(self::any())->method('delete_item')->withConsecutive(...$expected); + $this->query->remove_all_not_accessed_rows(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php new file mode 100644 index 0000000000..da73524597 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Database/Queries/Cache/revertInProgress.php @@ -0,0 +1,34 @@ +query = $this->createPartialMock(Cache::class, ['update_item', 'query']); + } + + /** + * @dataProvider configTestData + */ + public function testShouldDoAsExpected($config, $expected) { + $this->query->expects(self::once())->method('query')->with([ + 'status' => 'in-progress', + ])->willReturn($config['results']); + $this->query->expects(self::atLeast(0))->method('update_item')->withConsecutive(...$expected); + $this->query->revert_in_progress(); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php b/tests/Unit/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php new file mode 100644 index 0000000000..02a9990e89 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Frontend/FetchSitemap/parseSitemap.php @@ -0,0 +1,70 @@ +sitemap_parser = Mockery::mock(SitemapParser::class); + $this->queue = Mockery::mock(Queue::class); + $this->query = $this->createMock(Cache::class); + $this->controller = Mockery::mock(FetchSitemap::class . '[is_excluded]', [$this->sitemap_parser, $this->queue, $this->query])->shouldAllowMockingProtectedMethods(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config) { + + $this->configureRequest($config); + $this->configureParseSitemap($config); + + $this->controller->parse_sitemap($config['url']); + } + + protected function configureRequest($config) { + Functions\expect('wp_safe_remote_get')->with($config['url'])->andReturn($config['response']); + Functions\expect('wp_remote_retrieve_response_code')->with($config['response'])->andReturn($config['status']); + if(! key_exists('request_succeed', $config)) { + return; + } + Functions\expect('wp_remote_retrieve_body')->with($config['response'])->andReturn($config['content']); + } + + protected function configureParseSitemap($config) { + if(! key_exists('request_succeed', $config)) { + return; + } + $this->sitemap_parser->expects()->set_content($config['content']); + $this->sitemap_parser->expects()->get_links()->andReturn($config['links']); + $this->sitemap_parser->expects()->get_children()->andReturn($config['children']); + + foreach ($config['links'] as $index => $link) { + $this->controller->expects()->is_excluded($link)->andReturn($config['is_excluded']); + if(! $config['is_excluded']) { + $this->query->expects(self::any())->method('create_or_nothing')->withConsecutive(...$config['jobs']) + ->willReturn(true); + } + } + + foreach ($config['children'] as $child) { + $this->queue->expects()->add_job_preload_job_parse_sitemap_async($child); + } + } +} diff --git a/tests/Unit/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php b/tests/Unit/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php new file mode 100644 index 0000000000..9a3ae8aca2 --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Frontend/SitemapParser/getLinks.php @@ -0,0 +1,26 @@ +sitemap_parser = new SitemapParser(); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->sitemap_parser->set_content($config['content']); + $this->assertSame($expected, $this->sitemap_parser->get_links()); + } +} diff --git a/tests/Unit/inc/Engine/Preload/Homepage/preload.php b/tests/Unit/inc/Engine/Preload/Homepage/preload.php deleted file mode 100644 index 9727612967..0000000000 --- a/tests/Unit/inc/Engine/Preload/Homepage/preload.php +++ /dev/null @@ -1,153 +0,0 @@ -shouldReceive( 'format_item' ) - ->times( 3 ) - ->andReturn( [] ); - $preload_process - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->never(); - - $preload = new Homepage( $preload_process ); - - // No URLs. - $preload->preload( [] ); - - // Invalid URLs. - $preload->preload( - [ - 1234, - [], - [ 'src' => 'foobar' ], - ] - ); - } - - public function testShouldPreloadWhenValidUrls() { - $queue = []; - $home_urls = [ - [ 'url' => 'https://example.org', 'mobile' => 0 ], - [ 'url' => 'https://example.org/foobar/', 'mobile' => 0 ], - [ 'url' => 'https://example.org/category/barbaz/', 'mobile' => 1 ], - ]; - - // Stubs. - $preload_process = Mockery::mock( FullProcess::class ); - $preload_process - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->once() - ->andReturn( true ); - $preload_process - ->shouldReceive( 'push_to_queue' ) - ->andReturnUsing( function( $item ) use ( &$queue ) { - $queue[] = $item; - } ); - $preload_process - ->shouldReceive( 'save' ) - ->once() - ->andReturnSelf(); - $preload_process - ->shouldReceive( 'dispatch' ) - ->once() - ->andReturn( null ); - $preload_process - ->shouldReceive( 'format_item' ) - ->andReturnArg(0); - $preload_process - ->shouldReceive( 'get_item_user_agent' ) - ->andReturnUsing( function ( $item ) { - if ( $item['mobile'] ) { - return 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 WP Rocket/Preload'; - } - return 'WP Rocket/Preload'; - } ); - - Functions\when( 'wp_parse_url' )->alias( function( $url, $component = - 1 ) { - return parse_url( $url, $component ); - } ); - Functions\when( 'set_transient' )->justReturn( null ); - - // Stubs for $this->get_urls(). - Functions\when( 'wp_remote_get' )->alias( function( $url, $args = [] ) { - $mobile_sub = ! empty( $args['user-agent'] ) && strpos( $args['user-agent'], 'iPhone' ) ? '/mobile' : ''; - $home_url = 'https://example.org' . $mobile_sub; - switch ( $url ) { - case 'https://example.org': - return [ 'body' => sprintf( '', $home_url ) ]; - case 'https://example.org/foobar/': - return [ 'body' => sprintf( '', $home_url ) ]; - case 'https://example.org/category/barbaz/': - return [ 'body' => sprintf( '', $home_url ) ]; - } - - return false; - } ); - Functions\when( 'get_transient' )->alias( function( $transient ) { - return 'rocket_preload_errors' === $transient ? [] : false; - } ); - Functions\when( 'is_wp_error' )->justReturn( false ); - Functions\when( 'wp_remote_retrieve_response_code' )->justReturn( 200 ); - Functions\when( 'wp_remote_retrieve_body' )->alias( function( $response ) { - return is_array( $response ) && isset( $response['body'] ) ? $response['body'] : ''; - } ); - - // Stubs for $this->should_preload(). - Functions\when( 'get_rocket_parse_url' )->alias( function( $url ) { - if ( ! is_string( $url ) ) { - return; - } - $def = [ - 'host' => '', - 'path' => '', - 'scheme' => '', - 'query' => '', - 'fragment' => '', - ]; - - return array_intersect_key( array_merge( $def, parse_url( $url ) ), $def ); - } ); - Functions\when( 'home_url' )->justReturn( 'https://example.org/' ); - Functions\when( 'rocket_add_url_protocol' )->returnArg(); - Functions\when( 'get_rocket_cache_reject_uri' )->justReturn( '/foo/|/bar/|/(?:.+/)?embed/' ); - Functions\when( 'get_rocket_cache_query_string' )->justReturn( [] ); - - $preload = new Homepage( $preload_process ); - - $preload->preload( $home_urls ); - - $expected = [ - [ 'url' => 'https://example.org/fr', 'mobile' => false, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/es', 'mobile' => false, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/de', 'mobile' => false, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/mobile', 'mobile' => true, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/mobile/it', 'mobile' => true, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/mobile/fr', 'mobile' => true, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/mobile/es', 'mobile' => true, 'source' => 'homepage' ], - [ 'url' => 'https://example.org/mobile/de', 'mobile' => true, 'source' => 'homepage' ], - ]; - - $this->assertSame( $expected, $queue ); - $this->assertCount( 8, $queue ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php b/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php deleted file mode 100644 index 87739e7acf..0000000000 --- a/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/maybeDispatch.php +++ /dev/null @@ -1,116 +0,0 @@ -queue = []; - - parent::tearDown(); - } - - public function testShouldNotDispatchWhenNoUrls() { - $options = Mockery::mock( Options_Data::class ); - $partial_process = Mockery::mock( PartialProcess::class ); - $partial_process - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->never(); - - Functions\when( 'wp_doing_ajax' ) - ->justReturn( false ); - - $subscriber = new PartialPreloadSubscriber( $partial_process, $options ); - - $subscriber->maybe_dispatch(); - - $this->assertEmpty( $this->queue ); - } - - public function testShouldDispatchWhenUrlsAndNoMobilePreload() { - $urls = [ - 'https://example.org/', - 'https://example.org/test/', - ]; - - $this->getSubscriber( $urls, false )->maybe_dispatch(); - - foreach ( $urls as $url ) { - $this->assertContains( $url, $this->queue ); - } - $this->assertCount( 2, $this->queue ); - } - - public function testShouldDispatchWhenUrlsAndMobilePreload() { - $urls = [ - 'https://example.org/', - 'https://example.org/test/', - ]; - $expected = [ - 'https://example.org/', - [ 'url' => 'https://example.org/', 'mobile' => true ], - 'https://example.org/test/', - [ 'url' => 'https://example.org/test/', 'mobile' => true ], - ]; - - $this->getSubscriber( $urls, true )->maybe_dispatch(); - - foreach ( $expected as $url ) { - $this->assertContains( $url, $this->queue ); - } - $this->assertCount( 4, $this->queue ); - } - - private function getSubscriber( array $urls, $mobile_preload_enabled ) { - $nbr_items_in_queue = $mobile_preload_enabled ? 4 : 2; - $this->queue = []; - $options = Mockery::mock( Options_Data::class ); - $partial_process = Mockery::mock( PartialProcess::class ); - $partial_process - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->once() - ->andReturn( $mobile_preload_enabled ); - $partial_process - ->shouldReceive( 'push_to_queue' ) - ->times( $nbr_items_in_queue ) - ->andReturnUsing( function( $item ) { - $this->queue[] = $item; - } ); - $partial_process - ->shouldReceive( 'save' ) - ->once() - ->andReturnSelf(); - $partial_process - ->shouldReceive( 'dispatch' ) - ->once() - ->andReturn( null ); - - Functions\when( 'wp_doing_ajax' ) - ->justReturn( false ); - - Functions\when( 'wp_parse_url' )->alias( function( $url, $component = -1 ) { - return parse_url( $url, $component ); - } ); - - Functions\when( 'get_rocket_cache_reject_uri' ) - ->justReturn( '/foo/|/bar/|/(?:.+/)?embed/' ); - - $subscriber = new PartialPreloadSubscriber( $partial_process, $options ); - - $this->set_reflective_property( $urls, 'urls', $subscriber ); - - return $subscriber; - } -} diff --git a/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php b/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php deleted file mode 100644 index 15b99a7d03..0000000000 --- a/tests/Unit/inc/Engine/Preload/PartialPreloadSubscriber/preloadAfterAutomaticCachePurge.php +++ /dev/null @@ -1,65 +0,0 @@ -options = Mockery::mock( Options_Data::class ); - $this->partial_process = Mockery::mock( PartialProcess::class ); - $this->subscriber = new PartialPreloadSubscriber( $this->partial_process, $this->options ); - $this->property = $this->get_reflective_property( 'urls', $this->subscriber ); - $this->property->setAccessible( true ); - - Functions\when( 'untrailingslashit' )->alias( function( $string ) { - return rtrim( $string, '/\\' ); - } ); - } - - protected function tearDown(): void { - $this->urls = []; - $this->property->setAccessible( false ); - - parent::tearDown(); - } - - /** - * @dataProvider configTestData - */ - public function testShouldDoExpected( $permalink_structure, $option_value, $deleted, $expected ) { - if ( $deleted ) { - $this->options->shouldReceive( 'get' )->andReturn( $option_value ); - } - - Functions\when( 'get_option' )->justReturn( $permalink_structure ); - - $this->subscriber->preload_after_automatic_cache_purge( $deleted ); - - $this->property = $this->get_reflective_property( 'urls', $this->subscriber ); - $this->urls = $this->property->getValue( $this->subscriber ); - - if ( ! $expected ) { - $this->assertEmpty( $this->urls ); - } - - foreach ( $expected as $url ) { - $this->assertContains( $url, $this->urls ); - } - } -} diff --git a/tests/Unit/inc/Engine/Preload/PreloadSubscriber/maybePreloadMobileHomepage.php b/tests/Unit/inc/Engine/Preload/PreloadSubscriber/maybePreloadMobileHomepage.php deleted file mode 100644 index 09bf6845db..0000000000 --- a/tests/Unit/inc/Engine/Preload/PreloadSubscriber/maybePreloadMobileHomepage.php +++ /dev/null @@ -1,69 +0,0 @@ -shouldReceive( 'is_mobile_preload_enabled' ) - ->once() - ->andReturn( true ); - $homepage_preloader - ->shouldReceive( 'get_mobile_user_agent_prefix' ) - ->once() - ->andReturn( $this->prefix ); - - Functions\expect( 'wp_safe_remote_get' ) - ->once() - ->with( - $this->home_url, - [ - 'user-agent' => $this->prefix . ' ' . $this->user_agent, - ] - ); - - $subscriber = new PreloadSubscriber( $homepage_preloader, $options, $checker ); - - $subscriber->maybe_preload_mobile_homepage( $this->home_url, 'whatever', [] ); - } - - public function testShouldNotUseMobilePrefixWhenMobilePreloadIsNotEnabled() { - $options = Mockery::mock( Options_Data::class ); - $homepage_preloader = Mockery::mock( Homepage::class ); - $checker = Mockery::mock( Checker::class ); - $homepage_preloader - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->once() - ->andReturn( false ); - $homepage_preloader - ->shouldReceive( 'get_mobile_user_agent_prefix' ) - ->never(); - - Functions\expect( 'wp_safe_remote_get' ) - ->never(); - - $subscriber = new PreloadSubscriber( $homepage_preloader, $options, $checker ); - - $subscriber->maybe_preload_mobile_homepage( $this->home_url, 'whatever', [] ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/PreloadSubscriber/preloadAfterOptionsChange.php b/tests/Unit/inc/Engine/Preload/PreloadSubscriber/preloadAfterOptionsChange.php deleted file mode 100644 index c04a73bc03..0000000000 --- a/tests/Unit/inc/Engine/Preload/PreloadSubscriber/preloadAfterOptionsChange.php +++ /dev/null @@ -1,90 +0,0 @@ -homepage_preloader = Mockery::mock( Homepage::class ); - $this->subscriber = new PreloadSubscriber( - $this->homepage_preloader, - Mockery::mock( Options_Data::class ), - Mockery::mock( Checker::class ) - ); - - Functions\when( 'home_url' )->justReturn( $this->home_url ); - } - - public function testShouldPreloadDesktopHomepageOnly() { - Functions\expect( 'wp_safe_remote_get' ) - ->once() - ->with( - $this->home_url, - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => $this->user_agent, - 'sslverify' => false, - ] - ); - - $this->subscriber->preload_after_options_change( [] ); - } - - public function testShouldPreloadDesktopAndMobileHomepage() { - $this->homepage_preloader - ->shouldReceive( 'get_mobile_user_agent_prefix' ) - ->once() - ->andReturn( $this->prefix ); - - Functions\expect( 'wp_safe_remote_get' ) - ->once() - ->with( - $this->home_url, - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => $this->user_agent, - 'sslverify' => false, - ] - ); - - Functions\expect( 'wp_safe_remote_get' ) - ->once() - ->with( - $this->home_url, - [ - 'timeout' => 0.01, - 'blocking' => false, - 'user-agent' => $this->prefix . ' ' . $this->user_agent, - 'sslverify' => false, - ] - ); - - $this->subscriber->preload_after_options_change( - [ - 'do_caching_mobile_files' => 1, - ] - ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Process/formatItem.php b/tests/Unit/inc/Engine/Preload/Process/formatItem.php deleted file mode 100644 index 92dbc48d6c..0000000000 --- a/tests/Unit/inc/Engine/Preload/Process/formatItem.php +++ /dev/null @@ -1,86 +0,0 @@ -process = new PartialProcess(); - } - - public function testShouldReturnArrayWhenValidArrayIsProvided() { - $item = $this->process->format_item( - [ - 'url' => 'https://example.org', - ] - ); - - $this->assertTrue( is_array( $item ) ); - $this->assertArrayHasKey( 'url', $item ); - $this->assertArrayHasKey( 'mobile', $item ); - $this->assertSame( 'https://example.org', $item['url'] ); - $this->assertFalse( $item['mobile'] ); - - $item = $this->process->format_item( - [ - 'url' => 'https://example.org', - 'mobile' => 0, - ] - ); - - $this->assertTrue( is_array( $item ) ); - $this->assertArrayHasKey( 'url', $item ); - $this->assertArrayHasKey( 'mobile', $item ); - $this->assertSame( 'https://example.org', $item['url'] ); - $this->assertFalse( $item['mobile'] ); - - $item = $this->process->format_item( - [ - 'url' => 'https://example.org', - 'mobile' => 1, - ] - ); - - $this->assertTrue( is_array( $item ) ); - $this->assertArrayHasKey( 'url', $item ); - $this->assertArrayHasKey( 'mobile', $item ); - $this->assertSame( 'https://example.org', $item['url'] ); - $this->assertTrue( $item['mobile'] ); - } - - public function testShouldReturnArrayWhenStringIsProvided() { - $item = $this->process->format_item( 'https://example.org' ); - - $this->assertTrue( is_array( $item ) ); - $this->assertArrayHasKey( 'url', $item ); - $this->assertArrayHasKey( 'mobile', $item ); - $this->assertSame( 'https://example.org', $item['url'] ); - $this->assertFalse( $item['mobile'] ); - } - - public function testShouldReturnEmptyArrayWhenInvalidArgIsProvided() { - $item = $this->process->format_item( [] ); - - $this->assertSame( [], $item ); - - $item = $this->process->format_item( - [ - 'src' => 'https://example.org', - ] - ); - - $this->assertSame( [], $item ); - - $item = $this->process->format_item( 666 ); - - $this->assertSame( [], $item ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Process/getItemUserAgent.php b/tests/Unit/inc/Engine/Preload/Process/getItemUserAgent.php deleted file mode 100644 index 76afda11a9..0000000000 --- a/tests/Unit/inc/Engine/Preload/Process/getItemUserAgent.php +++ /dev/null @@ -1,33 +0,0 @@ -process = new PartialProcess(); - } - - public function testShouldReturnMobileUaWhenMobileItem() { - $expected = $this->prefix . ' ' . $this->user_agent; - - $this->assertSame( $expected, $this->process->get_item_user_agent( [ 'mobile' => 1 ] ) ); - } - - public function testShouldNotReturnMobileUaWhenNotMobileItem() { - $expected = $this->user_agent; - - $this->assertSame( $expected, $this->process->get_item_user_agent( [ 'mobile' => 0 ] ) ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Process/getMobileUserAgentPrefix.php b/tests/Unit/inc/Engine/Preload/Process/getMobileUserAgentPrefix.php deleted file mode 100644 index 0980e6f95d..0000000000 --- a/tests/Unit/inc/Engine/Preload/Process/getMobileUserAgentPrefix.php +++ /dev/null @@ -1,44 +0,0 @@ -process = new PartialProcess(); - } - - public function testShouldReturnMobilePrefixWhenNotFiltered() { - $this->assertSame( $this->prefix, $this->process->get_mobile_user_agent_prefix() ); - } - - public function testShouldReturnMobilePrefixWhenFilteredWithWrongValue() { - Filters\expectApplied( 'rocket_mobile_preload_user_agent_prefix' ) - ->andReturn( '' ); // Simulate a filter. - - $this->assertSame( $this->prefix, $this->process->get_mobile_user_agent_prefix() ); - - Filters\expectApplied( 'rocket_mobile_preload_user_agent_prefix' ) - ->andReturn( [ 'ho ho ho' ] ); // Simulate a filter. - - $this->assertSame( $this->prefix, $this->process->get_mobile_user_agent_prefix() ); - } - - public function testShouldNotReturnMobilePrefixWhenFilteredWithValidValue() { - Filters\expectApplied( 'rocket_mobile_preload_user_agent_prefix' ) - ->andReturn( 'Internet Explorer' ); // Simulate a filter. - - $this->assertSame( 'Internet Explorer', $this->process->get_mobile_user_agent_prefix() ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Process/isMobilePreloadEnabled.php b/tests/Unit/inc/Engine/Preload/Process/isMobilePreloadEnabled.php deleted file mode 100644 index 3bdf8c345d..0000000000 --- a/tests/Unit/inc/Engine/Preload/Process/isMobilePreloadEnabled.php +++ /dev/null @@ -1,112 +0,0 @@ -process = new PartialProcess(); - } - - public function testShouldReturnTrueWhenOptionsEnabled() { - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - case 'cache_mobile': - case 'do_caching_mobile_files': - return 1; - } - return $default; - } ); - - $this->assertTrue( $this->process->is_mobile_preload_enabled() ); - } - - public function testShouldReturnFalseWhenOptionsDisabled() { - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - return 0; - case 'cache_mobile': - case 'do_caching_mobile_files': - return 1; - } - return $default; - } ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - return 1; - case 'cache_mobile': - return 0; - case 'do_caching_mobile_files': - return 1; - } - return $default; - } ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - case 'cache_mobile': - return 1; - case 'do_caching_mobile_files': - return 0; - } - return $default; - } ); - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - } - - public function testShouldReturnBooleanWhenFiltered() { - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - return 0; - case 'cache_mobile': - case 'do_caching_mobile_files': - return 1; - } - return $default; - } ); - - Filters\expectApplied( 'rocket_mobile_preload_enabled' ) - ->once() - ->andReturn( 'boobar' ); // Simulate a filter. - - $this->assertTrue( $this->process->is_mobile_preload_enabled() ); - - Functions\when( 'get_rocket_option' )->alias( function( $option, $default = '' ) { - switch ( $option ) { - case 'manual_preload': - case 'cache_mobile': - case 'do_caching_mobile_files': - return 1; - } - return $default; - } ); - - Filters\expectApplied( 'rocket_mobile_preload_enabled' ) - ->once() - ->andReturn( '' ); // Simulate a filter. - - $this->assertFalse( $this->process->is_mobile_preload_enabled() ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Sitemap/runPreload.php b/tests/Unit/inc/Engine/Preload/Sitemap/runPreload.php deleted file mode 100644 index 18c8ecc6df..0000000000 --- a/tests/Unit/inc/Engine/Preload/Sitemap/runPreload.php +++ /dev/null @@ -1,104 +0,0 @@ -never(); - - // No URLs. - ( new Sitemap( $preload_process ) )->run_preload( [] ); - } - - public function testShouldPreloadSitemapsWhenValidUrls() { - $queue = []; - $sitemaps = [ - 'https://example.org/sitemap.xml', - 'https://example.org/sitemap-mobile.xml', - ]; - - // Stubs. - $preload_process = Mockery::mock( FullProcess::class ); - $preload_process - ->shouldReceive( 'is_mobile_preload_enabled' ) - ->andReturn( true ); - $preload_process - ->shouldReceive( 'push_to_queue' ) - ->andReturnUsing( function ( $item ) use ( &$queue ) { - $queue[] = $item; - } ); - $preload_process - ->shouldReceive( 'save' ) - ->once() - ->andReturnSelf(); - $preload_process - ->shouldReceive( 'dispatch' ) - ->once() - ->andReturn( null ); - - Functions\when( 'wp_parse_url' )->alias( function( $url, $component = -1 ) { - return parse_url( $url, $component ); - } ); - Functions\when( 'get_rocket_cache_reject_uri' )->justReturn( '/foo/|/bar/|/(?:.+/)?embed/' ); - Functions\when( 'set_transient' )->justReturn( null ); - - // Stubs for $this->process_sitemap(). - Functions\when( 'wp_remote_get' )->alias( function( $url, $args = [] ) { - switch ( $url ) { - case 'https://example.org/sitemap.xml': - return [ 'body' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Preload/Sitemap/sitemap.xml' ) ]; - case 'https://example.org/sitemap-mobile.xml': - return [ 'body' => file_get_contents( WP_ROCKET_TESTS_FIXTURES_DIR . '/inc/Engine/Preload/Sitemap/sitemap-mobile.xml' ) ]; - } - return false; - } ); - Functions\when( 'get_transient' )->alias( function( $transient ) { - return 'rocket_preload_errors' === $transient ? [] : false; - } ); - Functions\when( 'is_wp_error' )->justReturn( false ); - Functions\when( 'wp_remote_retrieve_response_code' )->justReturn( 200 ); - Functions\when( 'wp_remote_retrieve_body' )->alias( function ( $response ) { - return is_array( $response ) && isset( $response['body'] ) ? $response['body'] : ''; - } ); - - // Stubs for $this->get_url_identifier(). - Functions\when( 'get_rocket_cache_query_string' )->justReturn( [] ); - - $preload = new Sitemap( $preload_process ); - - $preload->run_preload( $sitemaps ); - - $expected = [ - [ 'url' => 'https://example.org/', 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/', 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/fr/', 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/fr/', 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/es/', 'mobile' => false, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/es/', 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/mobile/de/', 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/mobile/fr/', 'mobile' => true, 'source' => 'sitemap' ], - [ 'url' => 'https://example.org/mobile/es/', 'mobile' => true, 'source' => 'sitemap' ], - ]; - - $this->assertSame( $expected, $queue ); - $this->assertCount( 9, $queue ); - } -} diff --git a/tests/Unit/inc/Engine/Preload/Subscriber/onPermalinkChanged.php b/tests/Unit/inc/Engine/Preload/Subscriber/onPermalinkChanged.php new file mode 100644 index 0000000000..812643b27f --- /dev/null +++ b/tests/Unit/inc/Engine/Preload/Subscriber/onPermalinkChanged.php @@ -0,0 +1,45 @@ +options = Mockery::mock(Options_Data::class); + $this->controller = Mockery::mock(LoadInitialSitemap::class); + $this->query = $this->createMock(Cache::class); + $this->activation = Mockery::mock(Activation::class); + $this->mobile_detect = Mockery::mock(WP_Rocket_Mobile_Detect::class); + $this->clear_cache = Mockery::mock(ClearCache::class); + $this->queue = Mockery::mock(Queue::class); + $this->subscriber = new Subscriber($this->options, $this->controller, $this->query, $this->activation, $this->mobile_detect, $this->clear_cache, $this->queue ); + } + + public function testShouldDoAsExpected() { + $this->controller->expects()->load_initial_sitemap(); + $this->query->expects(self::once())->method('remove_all'); + $this->subscriber->on_permalink_changed(); + } +} diff --git a/tests/Unit/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php b/tests/Unit/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php new file mode 100644 index 0000000000..3ce56a06f7 --- /dev/null +++ b/tests/Unit/inc/ThirdParty/Plugins/Jetpack/addJetpackSitemap.php @@ -0,0 +1,35 @@ +option = Mockery::mock(Options_Data::class); + $this->subscriber = new Jetpack($this->option); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Functions\expect('jetpack_sitemap_uri')->andReturn($config['jetpack_sitemap']); + $this->assertSame($expected, $this->subscriber->add_jetpack_sitemap($config['sitemaps'])); + } +} diff --git a/tests/Unit/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php b/tests/Unit/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php new file mode 100644 index 0000000000..fd5ca25cdf --- /dev/null +++ b/tests/Unit/inc/ThirdParty/Plugins/SEO/AllInOneSEOPack/addAllInOneSeoSitemap.php @@ -0,0 +1,90 @@ +option = Mockery::mock(Options_Data::class); + $this->subscriber = new AllInOneSEOPack($this->option); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->configureCheckVersion($config); + $this->configureCheckOption($config); + $this->configureCreateSitemap($config); + $this->assertSame($expected, $this->subscriber->add_all_in_one_seo_sitemap($config['sitemaps'])); + } + + protected function configureCheckVersion($config) { + if($config['version'] == 4) { + + $this->aioseo = (object) [ + 'options' => (object) [ + 'sitemap' => (object) [ + 'general' => (object) [ + 'enable' => $config['aioseo_enabled'] + ] + ] + ] + ]; + Functions\when('aioseo')->justReturn($this->aioseo); + } + } + + protected function configureCheckOption($config) { + if($config['version'] !== 3) { + return; + } + + Functions\expect('get_option')->with('aioseop_options')->andReturn($config['options']); + } + + protected function configureCreateSitemap($config) { + if(! $config['aioseo_enabled']) { + return; + } + + Functions\when('trailingslashit')->returnArg(); + Functions\when('home_url')->justReturn($config['home_url']); + + if($config['version'] === 3) { + Filters\expectApplied('aiosp_sitemap_filename')->with('sitemap')->andReturn($config['sitemap']); + } else { + Filters\expectApplied('aioseo_sitemap_filename')->with('sitemap')->andReturn($config['sitemap']); + } + } +} diff --git a/tests/Unit/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php b/tests/Unit/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php new file mode 100644 index 0000000000..2dba071ad2 --- /dev/null +++ b/tests/Unit/inc/ThirdParty/Plugins/SEO/RankMathSEO/rocketSitemap.php @@ -0,0 +1,36 @@ +option = Mockery::mock(Options_Data::class); + $this->subscriber = new RankMathSEO($this->option); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + Router::$sitemap = $config['sitemap']; + $this->assertSame($expected, $this->subscriber->rocket_sitemap($config['sitemaps'])); + } +} diff --git a/tests/Unit/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php b/tests/Unit/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php new file mode 100644 index 0000000000..6ea1b3cc33 --- /dev/null +++ b/tests/Unit/inc/ThirdParty/Plugins/SEO/SEOPress/addSeopressSitemap.php @@ -0,0 +1,41 @@ +option = Mockery::mock(Options_Data::class); + $this->subscriber = new SEOPress($this->option); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->configureAddSitemap($config); + $this->assertSame($expected, $this->subscriber->add_seopress_sitemap($config['sitemaps'])); + } + + protected function configureAddSitemap($config) { + Functions\expect('get_home_url')->andReturn($config['home_url']); + } +} diff --git a/tests/Unit/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php b/tests/Unit/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php new file mode 100644 index 0000000000..8f117740e7 --- /dev/null +++ b/tests/Unit/inc/ThirdParty/Plugins/SEO/TheSEOFramework/addTsfSitemapToPreload.php @@ -0,0 +1,59 @@ +option = Mockery::mock(Options_Data::class); + $this->subscriber = new TheSEOFramework($this->option); + } + + /** + * @dataProvider configTestData + */ + public function testShouldReturnAsExpected($config, $expected) { + $this->configureCheckVersion($config); + $this->configureInferior4($config); + $this->configure4($config); + $this->assertSame($expected, $this->subscriber->add_tsf_sitemap_to_preload($config['sitemaps'])); + } + + protected function configureCheckVersion($config) { + Functions\when('rocket_get_constant')->justReturn($config['version']); + } + + protected function configureInferior4($config) { + if($config['version'] == '4.0') { + return; + } + Sitemap::$sitemap = $config['sitemap']; + } + + protected function configure4($config) { + if($config['version'] != '4.0') { + return; + } + Sitemap::$endpoints = $config['endpoints']; + Sitemap::$url = $config['url']; + } +} diff --git a/uninstall.php b/uninstall.php index 39ec165917..3c091bccfe 100755 --- a/uninstall.php +++ b/uninstall.php @@ -22,11 +22,16 @@ require_once dirname( __FILE__ ) . '/inc/Dependencies/Database/Queries/Meta.php'; require_once dirname( __FILE__ ) . '/inc/Dependencies/Database/Queries/Date.php'; require_once dirname( __FILE__ ) . '/inc/Dependencies/Database/Queries/Compare.php'; -require_once dirname( __FILE__ ) . '/inc/Engine/Optimization/RUCSS/Database/Tables/Resources.php'; require_once dirname( __FILE__ ) . '/inc/Engine/Optimization/RUCSS/Database/Tables/UsedCSS.php'; -$rocket_rucss_resources_table = new WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\Resources(); -$rocket_rucss_usedcss_table = new WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS(); +require_once dirname( __FILE__ ) . '/inc/Engine/Preload/Database/Tables/Cache.php'; +$rocket_rucss_usedcss_table = new WP_Rocket\Engine\Optimization\RUCSS\Database\Tables\UsedCSS(); +$rocket_cache_table = new \WP_Rocket\Engine\Preload\Database\Tables\Cache(); +$rocket_uninstall = new WPRocketUninstall( + WP_ROCKET_CACHE_ROOT_PATH, + WP_ROCKET_CONFIG_PATH, + $rocket_rucss_usedcss_table, + $rocket_cache_table + ); -$rocket_uninstall = new WPRocketUninstall( WP_ROCKET_CACHE_ROOT_PATH, WP_ROCKET_CONFIG_PATH, $rocket_rucss_resources_table, $rocket_rucss_usedcss_table ); $rocket_uninstall->uninstall(); diff --git a/views/settings/page-sections/dashboard.php b/views/settings/page-sections/dashboard.php index b5649e9931..2eab1c68f7 100644 --- a/views/settings/page-sections/dashboard.php +++ b/views/settings/page-sections/dashboard.php @@ -83,7 +83,7 @@ - + One.com @@ -147,7 +147,7 @@ 'link', 'purge_cache', [ - 'label' => __( 'Clear cache', 'rocket' ), + 'label' => (bool) get_rocket_option( 'manual_preload', false ) ? __( 'Clear and preload cache', 'rocket' ) : __( 'Clear cache', 'rocket' ), 'parameters' => [ 'type' => 'all', ], @@ -159,24 +159,6 @@ ?> - -
-

- render_action_button( - 'link', - 'preload', - [ - 'label' => __( 'Preload cache', 'rocket' ), - 'attributes' => [ - 'class' => 'wpr-button wpr-button--icon wpr-button--small wpr-icon-refresh', - ], - ] - ); - ?> -
- -

diff --git a/wp-rocket.php b/wp-rocket.php index df71747a70..54ad49772b 100755 --- a/wp-rocket.php +++ b/wp-rocket.php @@ -3,9 +3,9 @@ * Plugin Name: WP Rocket * Plugin URI: https://wp-rocket.me * Description: The best WordPress performance plugin. - * Version: 3.11.5 - * Requires at least: 5.5 - * Requires PHP: 7.1 + * Version: 3.12 + * Requires at least: 5.6 + * Requires PHP: 7.2 * Code Name: Iego * Author: WP Media * Author URI: https://wp-media.me @@ -20,10 +20,10 @@ defined( 'ABSPATH' ) || exit; // Rocket defines. -define( 'WP_ROCKET_VERSION', '3.11.5' ); -define( 'WP_ROCKET_WP_VERSION', '5.5' ); +define( 'WP_ROCKET_VERSION', '3.12' ); +define( 'WP_ROCKET_WP_VERSION', '5.6' ); define( 'WP_ROCKET_WP_VERSION_TESTED', '5.9' ); -define( 'WP_ROCKET_PHP_VERSION', '7.1' ); +define( 'WP_ROCKET_PHP_VERSION', '7.2' ); define( 'WP_ROCKET_PRIVATE_KEY', false ); define( 'WP_ROCKET_SLUG', 'wp_rocket_settings' ); define( 'WP_ROCKET_WEB_MAIN', 'https://wp-rocket.me/' ); @@ -80,7 +80,7 @@ define( 'CHMOD_WP_ROCKET_CACHE_DIRS', 0755 ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals } if ( ! defined( 'WP_ROCKET_LASTVERSION' ) ) { - define( 'WP_ROCKET_LASTVERSION', '3.10.9' ); + define( 'WP_ROCKET_LASTVERSION', '3.11.5' ); } /**