diff --git a/.clang-format b/.clang-format deleted file mode 100644 index a71b20fb..00000000 --- a/.clang-format +++ /dev/null @@ -1,3 +0,0 @@ -BasedOnStyle: Google -IndentWidth: 4 -SortIncludes: true diff --git a/.github/test.yml b/.github/test.yml new file mode 100644 index 00000000..e1a885ea --- /dev/null +++ b/.github/test.yml @@ -0,0 +1,73 @@ +name: Test + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + paths-ignore: + - "research/**" + - "**.ipynb" + - "**.md" + push: + branches: + - main + paths-ignore: + - "research/**" + - "**.ipynb" + - "**.md" +jobs: + test: + if: github.event.pull_request.draft == false + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest"] + python-version: ["3.10"] + name: Test (${{ matrix.python-version }}, ${{ matrix.os }}) + runs-on: ${{ matrix.os }} + steps: + + - uses: actions/checkout@v3 + + - name: Install poetry + run: pipx install poetry + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: 'poetry' + + # Cache pre-commit files so it's fast! + # based on https://pre-commit.com/#github-actions-example + - name: set PY + run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV + - name: Cache pre-commit + uses: actions/cache@v3 + with: + path: ~/.cache/pre-commit + key: pre-commit|${{ env.PY }}|${{ hashFiles('.pre-commit-config.yaml') }} + id: precommitcache + + - name: Update environment + run: | + poetry env use ${{ matrix.python-version }} && poetry install --with=test,cloud + + - name: Run all pre-commit checks on all files + run: poetry run pre-commit run --color=always -a + + - name: Pytest + run: poetry run pytest -n auto -s + + - name: Report failures on Slack + if: failure() && github.event.repository.default_branch == github.event.workflow_run.head_branch + id: slack + uses: slackapi/slack-github-action@v1.19.0 + with: + # Slack channel id, channel name, or user id to post message. + # See also: https://api.slack.com/methods/chat.postMessage#channels + channel-id: C02TC2DAN74 + # For posting a simple plain text message + slack-message: "*Build failure on default branch!* 😱\nhttps://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" + env: + SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml deleted file mode 100644 index dd86c3ae..00000000 --- a/.github/workflows/test.yml +++ /dev/null @@ -1,77 +0,0 @@ -name: Test - -on: - schedule: - # Every day at 9:00 AM UTC - - cron: "0 9 * * *" - push: -jobs: - test: - timeout-minutes: 15 - strategy: - fail-fast: false - matrix: - os: ["ubuntu-latest"] - python-version: ["3.9"] - name: Test (${{ matrix.python-version }}, ${{ matrix.os }}) - runs-on: ${{ matrix.os }} - defaults: - run: - shell: bash -l {0} - # https://github.com/marketplace/actions/setup-miniconda#caching-environments - steps: - - uses: actions/checkout@v2 - - name: Setup Mambaforge - uses: conda-incubator/setup-miniconda@v2 - with: - miniforge-variant: Mambaforge - miniforge-version: latest - activate-environment: anaconda-client-env - use-mamba: true - python-version: ${{ matrix.python-version }} - - name: Get Date - id: get-date - run: echo "::set-output name=today::$(/bin/date -u '+%Y%m%d')" - shell: bash - - name: Cache Dependencies - uses: actions/cache@v2 - with: - # Cache the Conda, Bazel, and Pre-commit files - path: | - ${{ env.CONDA }}/envs - ~/.cache/pre-commit - ~/.cache/bazel - key: conda-${{ runner.os }}--${{ runner.arch }}--${{ steps.get-date.outputs.today }}-${{ hashFiles('environment.yml') }}-${{ env.CACHE_NUMBER }} - env: - # Increase this value to reset cache if environment.yml has not changed - CACHE_NUMBER: 1 - id: cache - - name: Update environment - run: mamba env update -n anaconda-client-env -f environment.yml - if: steps.cache.outputs.cache-hit != 'true' - - name: Run all pre-commit checks on the full repo! - run: | - pre-commit run --all-files - - name: Build and install pyimprint - run: | - ./generate_bazelrc - bazel build -c dbg //python:pyimprint_wheel - pip install --no-deps --force-reinstall bazel-bin/python/dist/*.whl - - name: Bazel Test - run: | - bazel test -c dbg //... - - name: Pytest - run: | - pytest . - - name: Report failures on Slack - if: failure() && github.event.repository.default_branch == github.event.workflow_run.head_branch - id: slack - uses: slackapi/slack-github-action@v1.19.0 - with: - # Slack channel id, channel name, or user id to post message. - # See also: https://api.slack.com/methods/chat.postMessage#channels - channel-id: C02TC2DAN74 - # For posting a simple plain text message - slack-message: "*Build failure on default branch!* 😱\nhttps://github.com/${{github.repository}}/actions/runs/${{github.run_id}}" - env: - SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index e911b8cd..e665dc68 100644 --- a/.gitignore +++ b/.gitignore @@ -1,37 +1,48 @@ *.DS_Store - -build/ -/.vs -.history/ -/imprint/CMakeSettings.json -CMakeCache.txt -CMakeFiles/ -imprintConfig.cmake -imprintConfigVersion.cmake -DartConfiguration.tcl .env -/python/dist/ -.spyproject/ +# python stuff +__pycache__/ +*.py[cod] +*$py.class + +# notebook stuff +.ipynb_checkpoints -# ignore rc because we are tracking generator now -.bazelrc -bazel -bazel-* -.vagrant/ -Vagrantfile -.idea/ -compile_commands.json +# profiler outputs +*.lprof +*.prof -# python stuff -__pycache__ +# python packaging outputs +*.egg-info # c++ extensions built in place within the source tree. +.rendered.*.cpp *.so -# bazel outputs -*pid*.log +# poetry.toml should not be committed because it will vary between machines +# (e.g. CI will want to use virtualenvs but locally we use conda) +poetry.toml + +# various data +*.pkl +*.npy +*.parquet +*.db +*.db.wal +*.zip + +# anything else +*.gitignore* +!**/.gitignore # Codespaces oryx-build-commands.txt venv + +# Cloud and AWS stuff, CDK +.terraform +.terraform.* +terraform.* +.cdk.staging/ +cdk.out/ diff --git a/.gitleaks.toml b/.gitleaks.toml new file mode 100644 index 00000000..677cfcd8 --- /dev/null +++ b/.gitleaks.toml @@ -0,0 +1,21 @@ +# Title for the gitleaks configuration file. +title = "Gitleaks title" + +# Extend the base (this) configuration. When you extend a configuration +# the base rules take precendence over the extended rules. I.e, if there are +# duplicate rules in both the base configuration and the extended configuration +# the base rules will override the extended rules. +# Another thing to know with extending configurations is you can chain together +# multiple configuration files to a depth of 2. Allowlist arrays are appended +# and can contain duplicates. +# useDefault and path can NOT be used at the same time. Choose one. +[extend] +# useDefault will extend the base configuration with the default gitleaks config: +# https://github.com/zricethezav/gitleaks/blob/master/config/gitleaks.toml +useDefault = true + +[allowlist] +paths = [ + '''(.*?)(ipynb)$''', + '''tools/gitleaks-report.json''' +] \ No newline at end of file diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index d42ccde8..00000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "src/imprint/third_party/pybind11"] - path = src/imprint/third_party/pybind11 - url = https://github.com/pybind/pybind11.git - branch = stable diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d8228843..c0798bca 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,34 +1,41 @@ fail_fast: false repos: - - repo: https://github.com/pocc/pre-commit-hooks - rev: v1.3.5 + # We have black here twice because the first black block runs black on + # Jupyter notebooks. And we don't want to run black on notebooks in the + # research folder because 1) it's slow. 2) it can overwrite a notebook in + # current use causing the session to be lost. 3) there's no reason, those + # notebooks are exploration anyway. + - repo: https://github.com/psf/black + rev: 22.10.0 hooks: - - id: clang-format - args: [-i] - # - id: clang-tidy + - id: black-jupyter + language_version: python3 + exclude: research/ - repo: https://github.com/psf/black - rev: 22.3.0 + rev: 22.10.0 hooks: - id: black - language_version: python3 - - repo: https://gitlab.com/pycqa/flake8 - rev: 3.8.4 + - repo: https://github.com/pycqa/flake8 + rev: 5.0.4 hooks: - id: flake8 - repo: https://github.com/asottile/reorder_python_imports - rev: v3.8.1 + rev: v3.9.0 hooks: - id: reorder-python-imports - repo: https://github.com/mwouts/jupytext - rev: v1.13.8 + rev: v1.14.1 + hooks: + - id: jupytext + args: [--from, ipynb, --to, "md"] + # Should run after jupytext so that secrets in ipynb files get properly scanned. + - repo: https://github.com/zricethezav/gitleaks + rev: v8.15.2 hooks: - - id: jupytext - args: [--from, ipynb, --to, "md"] + - id: gitleaks + args: [--baseline-path, tools/gitleaks-report.json] - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.0.1 + rev: v4.3.0 hooks: - id: debug-statements - - id: detect-aws-credentials - args: [--allow-missing-credentials] - - id: detect-private-key - - id: forbid-new-submodules + - id: forbid-new-submodules \ No newline at end of file diff --git a/.vscode/build.sh b/.vscode/build.sh deleted file mode 100755 index 914626ea..00000000 --- a/.vscode/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/zsh -eval "$(conda shell.zsh hook)" -conda activate imprint -bazel build //python:pyimprint/core.so -ln -sf ./bazel-bin/python/pyimprint/core.so python/pyimprint/core.so \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json deleted file mode 100644 index 186042d0..00000000 --- a/.vscode/c_cpp_properties.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "configurations": [ - { - "name": "Linux", - "includePath": [ - "${workspaceFolder}/**", - "${workspaceFolder}/imprint/include", - "${workspaceFolder}/bazel-imprint/external/eigen", - "${workspaceFolder}/bazel-imprint/external/fmtlib/include", - "${workspaceFolder}/bazel-imprint/external/com_github_scipy_boost/", - "${workspaceFolder}/bazel-imprint/external/pybind11/include", - "${workspaceFolder}/bazel-imprint/external/com_github_google_benchmark/include", - "${workspaceFolder}/bazel-imprint/external/com_google_googletest/googletest/include" - ], - "defines": [], - "compilerPath": "/usr/bin/clang", - "cStandard": "c11", - "cppStandard": "c++17", - "intelliSenseMode": "linux-clang-x64", - "compilerArgs": [], - "mergeConfigurations": false, - "browse": { - "path": [ - "${workspaceFolder}/**" - ], - "limitSymbolsToIncludedHeaders": true - }, - "forcedInclude": [ - "${workspaceFolder}/.vscode/eigen_fix.h" - ], - "compileCommands": "${workspaceFolder}/compile_commands.json" - } - ], - "version": 4 -} \ No newline at end of file diff --git a/.vscode/eigen_fix.h b/.vscode/eigen_fix.h deleted file mode 100644 index a70f248a..00000000 --- a/.vscode/eigen_fix.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Proposed fix with IntelliSense that keeps raising error with Eigen classes - * about incomplete types. - * https://github.com/microsoft/vscode-cpptools/issues/7413#issuecomment-1105063602 - * This file is force-included in c_cpp_properties.json. - */ -#if __INTELLISENSE__ -#undef __ARM_NEON -#undef __ARM_NEON__ -#endif \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 306f58eb..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Python: Current File", - "type": "python", - "request": "launch", - "program": "${file}", - "console": "integratedTerminal", - "justMyCode": true - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index af9b6d59..1c355f81 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,120 +1,18 @@ { - "bazel-cpp-tools.compileCommands.targets": [ - "//...", - ], - "jupyter.jupyterServerType": "local", - "files.associations": { - "functional": "cpp", - "*.evaluator": "cpp", - "*.traits": "cpp", - "fft": "cpp", - "openglsupport": "cpp", - "regex": "cpp", - "tuple": "cpp", - "type_traits": "cpp", - "any": "cpp", - "array": "cpp", - "atomic": "cpp", - "bit": "cpp", - "*.tcc": "cpp", - "bitset": "cpp", - "cctype": "cpp", - "chrono": "cpp", - "cinttypes": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "codecvt": "cpp", - "complex": "cpp", - "condition_variable": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdint": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "deque": "cpp", - "forward_list": "cpp", - "list": "cpp", - "map": "cpp", - "set": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "vector": "cpp", - "exception": "cpp", - "algorithm": "cpp", - "iterator": "cpp", - "memory": "cpp", - "memory_resource": "cpp", - "numeric": "cpp", - "optional": "cpp", - "random": "cpp", - "ratio": "cpp", - "string": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "utility": "cpp", - "hash_map": "cpp", - "fstream": "cpp", - "future": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "mutex": "cpp", - "new": "cpp", - "ostream": "cpp", - "shared_mutex": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "thread": "cpp", - "typeinfo": "cpp", - "valarray": "cpp", - "variant": "cpp", - "filesystem": "cpp", - "locale": "cpp", - "mprealsupport": "cpp", - "nonlinearoptimization": "cpp", - "dense": "cpp", - "__bit_reference": "cpp", - "__bits": "cpp", - "__config": "cpp", - "__debug": "cpp", - "__errc": "cpp", - "__hash_table": "cpp", - "__locale": "cpp", - "__mutex_base": "cpp", - "__node_handle": "cpp", - "__nullptr": "cpp", - "__split_buffer": "cpp", - "__string": "cpp", - "__threading_support": "cpp", - "__tree": "cpp", - "__tuple": "cpp", - "compare": "cpp", - "concepts": "cpp", - "ios": "cpp", - "queue": "cpp", - "stack": "cpp", - "__functional_base": "cpp", - "alignedvector3": "cpp", - "typeindex": "cpp", - "*.ipp": "cpp", - "*.inc": "cpp", - "core": "cpp", - "geometry": "cpp", - "qtalignedmalloc": "cpp", - "matrixfunctions": "cpp", - "bvh": "cpp" - }, - "C_Cpp.errorSquiggles": "Enabled", - "editor.formatOnSave": false, - "cmake.configureOnOpen": false, - "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + "python.linting.pylintEnabled": false, + "python.linting.flake8Enabled": true, + "python.linting.flake8Args": ["--ignore=E1,E2,E3,E4,E5,W1,W2,W3,W4,W5"], + "python.linting.enabled": true, + "python.formatting.provider": "black", + "autoDocstring.docstringFormat": "google-notypes", + "r.bracketedPaste": true, + "r.plot.useHttpgd": true, + "search.exclude": { + "**/.git": true, + "**/node_modules": true, + "**/__pycache__": true, + "research/archive": true + } } diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 724e5d26..00000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "type": "shell", - "label": "Build Python extension", - "command": ".vscode/build.sh", - "options": { - "cwd": "${workspaceFolder}", - }, - "problemMatcher": [ - "$gcc" - ], - "group": { - "kind": "build", - "isDefault": true - } - } - ] -} \ No newline at end of file diff --git a/BUILD.bazel b/BUILD.bazel deleted file mode 100644 index 56fa8821..00000000 --- a/BUILD.bazel +++ /dev/null @@ -1,2 +0,0 @@ -# Dummy file just to appease Bazel. -# .bzl requires the existence of a BUILD file. diff --git a/LICENSE b/LICENSE deleted file mode 100644 index cba20ac3..00000000 --- a/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -BSD 3-Clause License - -Copyright (c) 2022, Confirm Solutions, Inc. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -3. Neither the name of the copyright holder nor the names of its - contributors may be used to endorse or promote products derived from - this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/README.md b/README.md index 4b7e6c6d..e90004c3 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,9 @@ Imprint is a library to validate clinical trial designs. ![example workflow](https://github.com/Confirm-Solutions/imprint/actions/workflows/test.yml/badge.svg) -## Dependencies +## Installing Imprint for development. -The most important dependencies are: - -- [conda](https://docs.conda.io/projects/conda/en/latest/index.html) - - [Anaconda](https://www.anaconda.com/) - - [Miniconda](https://docs.conda.io/en/latest/miniconda.html) -- [Python >= 3.9](https://www.python.org/) - -## Installing Imprint for development - -NOTE: In the future, we will produce PyPI and conda-forge packages to ease the installation process for users. This will reduce the installation process to one or two steps. The current process is oriented at a developer of imprint. - -Please run all the steps here to get a fully functional development environment. +(Soon, we will have a separate pathway for users to install via PyPI/pip) 1. If you do not have conda installed already, please install it. There are many ways to get conda. We recommend installing `Mambaforge` which is a @@ -25,68 +14,34 @@ Please run all the steps here to get a fully functional development environment. `conda-forge` as the default set of package repositories. [CLICK HERE for installers and installation instructions.](https://github.com/conda-forge/miniforge#mambaforge) -2. Install Bazel. On Mac, you can just run `brew install bazelisk`. On Ubuntu - Linux, please follow the [instructions - here](https://docs.bazel.build/versions/main/install-ubuntu.html). -3. Clone the git repo: - - ```bash - git clone git@github.com:Confirm-Solutions/imprint.git - ``` - -4. Set up your imprint conda environment (note that you may substitute `mamba` - here for `conda` and the install will be substantially faster). The list of - packages that will be installed inside your conda environment can be seen in - the [`environment.yml` file](../environment.yml). - - ```bash - cd imprint/ - conda update -y conda - conda env create - conda activate imprint - ``` - -5. To set up pre-commit for this git repo: - - ```bash - pre-commit install - ``` - -6. To set up your bazel configuration for building C++. **See below to install bazel.** - - ```bash - ./generate_bazelrc - ``` - -7. Build and install the `pyimprint` package. - - ```bash - bazel build //python:pyimprint_wheel - pip install bazel-bin/python/dist/pyimprint-0.1-py3-none-any.whl - ``` - -8. (it's okay to skip this step if this is your first time installing imprint) To recompile and reinstall the pyimprint package after making changes to the C++ backend, run the following: - - ```bash - bazel build //python:pyimprint_wheel - pip install --force-reinstall bazel-bin/python/dist/pyimprint-0.1-py3-none-any.whl - ``` - -9. Finally, check that the installation process was successful by running one of our example scripts: - - ```bash - bazel run -c opt //python/example:simple_selection -- main - ``` +2. Clone the git repo: + + ```bash + git clone git@github.com:Confirm-Solutions/imprint.git + ``` + +3. Set up your imprint conda environment. The list of packages that will be + installed inside your conda environment can be seen + in [`pyproject.toml`](pyproject.toml). + + ```bash + cd confirm/env + mamba update -y conda + # create a development virtual environment with useful tools + mamba env create + conda activate confirm + # install the confirm package plus development tools + poetry install --with=dev,test,cloud,cloud_dev + ``` + +## Committing code + +In order to commit code and pass the pre-commit checks, you will need to install `go` and `gitleaks` with `brew install go gitleaks`. ## Getting started understanding imprint -[Please check out the tutorial where we analyze a three arm basket trial here.](./research/berry/tutorial.ipynb) - -## Developing the Imprint C++ core engine - -Most users will not need to work directly with the core C++, instead working entirely through the Python interface. +[Please check out the tutorial where we analyze a three arm basket trial here.](./tutorials/basket/basket.ipynb) -[Instructions for developing the C++ core engine are available in the subfolder](./imprint/README.md) ## References diff --git a/WORKSPACE b/WORKSPACE deleted file mode 100644 index d218b638..00000000 --- a/WORKSPACE +++ /dev/null @@ -1,154 +0,0 @@ -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") - -rules_python_version = "740825b7f74930c62f44af95c9a4c1bd428d2c53" # Latest @ 2021-06-23 - -# Python rules -http_archive( - name = "rules_python", - sha256 = "09a3c4791c61b62c2cbc5b2cbea4ccc32487b38c7a2cc8f87a794d7a659cc742", - strip_prefix = "rules_python-{}".format(rules_python_version), - url = "https://github.com/bazelbuild/rules_python/archive/{}.zip".format(rules_python_version), -) - -# GoogleTest/GoogleMock framework. Used by most unit-tests -http_archive( - name = "com_google_googletest", - sha256 = "205ddbea89a0dff059cd681f3ec9b0a6c12de7036a04cd57f0254105257593d9", - strip_prefix = "googletest-13a433a94dd9c7e55907d7a9b75f44ff82f309eb", - urls = ["https://github.com/google/googletest/archive/13a433a94dd9c7e55907d7a9b75f44ff82f309eb.zip"], -) - -# Google benchmark -http_archive( - name = "com_github_google_benchmark", - sha256 = "59f918c8ccd4d74b6ac43484467b500f1d64b40cc1010daa055375b322a43ba3", - strip_prefix = "benchmark-16703ff83c1ae6d53e5155df3bb3ab0bc96083be", - urls = ["https://github.com/google/benchmark/archive/16703ff83c1ae6d53e5155df3bb3ab0bc96083be.zip"], -) - -# Rules CC -http_archive( - name = "rules_cc", - sha256 = "9a446e9dd9c1bb180c86977a8dc1e9e659550ae732ae58bd2e8fd51e15b2c91d", - strip_prefix = "rules_cc-262ebec3c2296296526740db4aefce68c80de7fa", - urls = ["https://github.com/bazelbuild/rules_cc/archive/262ebec3c2296296526740db4aefce68c80de7fa.zip"], -) - -# PyBind11 Bazel -PYBIND_BAZEL_VERSION = "72cbbf1fbc830e487e3012862b7b720001b70672" - -PYBIND_VERSION = "2.9.1" - -http_archive( - name = "pybind11_bazel", - sha256 = "fec6281e4109115c5157ca720b8fe20c8f655f773172290b03f57353c11869c2", - strip_prefix = "pybind11_bazel-{}".format(PYBIND_BAZEL_VERSION), - urls = ["https://github.com/pybind/pybind11_bazel/archive/{}.zip".format(PYBIND_BAZEL_VERSION)], -) - -# We still require the pybind library. -http_archive( - name = "pybind11", - build_file = "@pybind11_bazel//:pybind11.BUILD", - sha256 = "c6160321dc98e6e1184cc791fbeadd2907bb4a0ce0e447f2ea4ff8ab56550913", - strip_prefix = "pybind11-{}".format(PYBIND_VERSION), - urls = ["https://github.com/pybind/pybind11/archive/v{}.tar.gz".format(PYBIND_VERSION)], -) - -load("@pybind11_bazel//:python_configure.bzl", "python_configure") - -python_configure(name = "local_config_python") - -# fmt -http_archive( - name = "fmtlib", - patch_cmds = [ - "mv support/bazel/.bazelrc .bazelrc", - "mv support/bazel/.bazelversion .bazelversion", - "mv support/bazel/BUILD.bazel BUILD.bazel", - "mv support/bazel/WORKSPACE.bazel WORKSPACE.bazel", - ], - sha256 = "23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d", - strip_prefix = "fmt-8.1.1", - urls = ["https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip"], -) - -# ==================================== -# GOOGLE TCMALLOC + DEPENDENCIES -# ==================================== - -http_archive( - name = "rules_fuzzing", - sha256 = "a5734cb42b1b69395c57e0bbd32ade394d5c3d6afbfe782b24816a96da24660d", - strip_prefix = "rules_fuzzing-0.1.1", - urls = ["https://github.com/bazelbuild/rules_fuzzing/archive/v0.1.1.zip"], -) - -# Protobuf -load("@rules_fuzzing//fuzzing:repositories.bzl", "rules_fuzzing_dependencies") - -rules_fuzzing_dependencies() - -load("@rules_fuzzing//fuzzing:init.bzl", "rules_fuzzing_init") - -rules_fuzzing_init() - -http_archive( - name = "com_google_absl", - sha256 = "92d469a1a652fd1944398e560bd0d92ee8e3affbd61ed41fca89bb624b59109e", - strip_prefix = "abseil-cpp-04bde89e5cb33bf4a714a5496fac715481fc48311", - urls = ["https://github.com/abseil/abseil-cpp/archive/04bde89e5cb33bf4a714a5496fac715481fc48311.zip"], -) - -http_archive( - name = "com_google_tcmalloc", - sha256 = "2e5e6755e02b0275b1333199c2a128a57c0d48ec8838fdca9baccf3b0e939ad6", - strip_prefix = "tcmalloc-a3717bc4fcade63c642f9b991fbdd64299896762", - urls = ["https://github.com/google/tcmalloc/archive/a3717bc4fcade63c642f9b991fbdd64299896762.zip"], -) - -# ==================================== -# EIGEN -# ==================================== - -EIGEN_VERSION = "3.4.0" - -http_archive( - name = "eigen", - build_file_content = - """ -# TODO(keir): Replace this with a better version, like from TensorFlow. -# See https://github.com/ceres-solver/ceres-solver/issues/337. -cc_library( - name = 'eigen', - srcs = [], - includes = ['.'], - hdrs = glob(['Eigen/**', 'unsupported/Eigen/**']), - visibility = ['//visibility:public'], -) -""", - sha256 = "8586084f71f9bde545ee7fa6d00288b264a2b7ac3607b974e54d13e7162c1c72", - strip_prefix = "eigen-{}".format(EIGEN_VERSION), - urls = ["https://gitlab.com/libeigen/eigen/-/archive/{0}/eigen-{0}.tar.gz".format(EIGEN_VERSION)], -) - -_BOOST_COMMIT = "d8626c9d2d937abf6a38a844522714ad72e63281" - -http_archive( - name = "com_github_scipy_boost", - build_file_content = - """ -cc_library( - name = 'boost', - srcs = [], - includes = ['.'], - hdrs = glob(['boost/**']), - visibility = ['//visibility:public'], -) -""", - sha256 = "496064bba545eb218179c0fa479304ac396ecca9f02ba6e0d3d4cc872f3569fa", - strip_prefix = "boost-headers-only-%s" % _BOOST_COMMIT, - urls = [ - "https://github.com/scipy/boost-headers-only/archive/%s.zip" % _BOOST_COMMIT, - ], -) diff --git a/conftest.py b/conftest.py new file mode 100644 index 00000000..72968bfe --- /dev/null +++ b/conftest.py @@ -0,0 +1,10 @@ +import os + +from jax.config import config + +dir_path = os.path.dirname(os.path.realpath(__file__)) +# This avoids errors that occur when imprint is in a subtree. +if dir_path == os.getcwd(): + pytest_plugins = ["imprint.testing"] + +config.update("jax_enable_x64", True) diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index 3f31e8c8..00000000 --- a/docs/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -*.aux -*.fdb_latexmk -*.fls -*.log -*.synctex.gz -*.bbl -*.blg diff --git a/docs/adagrid/.gitignore b/docs/adagrid/.gitignore deleted file mode 100644 index c18dd8d8..00000000 --- a/docs/adagrid/.gitignore +++ /dev/null @@ -1 +0,0 @@ -__pycache__/ diff --git a/docs/adagrid/adagrid_1d.py b/docs/adagrid/adagrid_1d.py deleted file mode 100644 index 54016a43..00000000 --- a/docs/adagrid/adagrid_1d.py +++ /dev/null @@ -1,66 +0,0 @@ -import matplotlib.pyplot as plt -import numpy as np -from scipy.stats import norm - - -def f(x): - return np.abs( - np.cos(x) * 3 - np.sin(2 * x) - x + x**2 - 1 / 3.0 * x**3 * np.cos(x) - ) - - -def adagrid_1d(lower, upper, f, sigma=1, n_batch=10, n_max=100, seed=0, tol=1e-2): - # set seed - np.random.seed(seed) - - # create initial values - x = np.linspace(lower, upper, n_batch) - fx = f(x) - # sd = np.maximum(np.abs(fx), 1e-8) - sd = sigma * np.ones(len(x)) - w_sum = np.sum(fx) - w = fx / w_sum - - # compute loss-function - p = np.array([np.dot(w, norm.pdf(xi, loc=x, scale=sd)) for xi in x]) - L = np.dot((p - w) ** 2, w) - L_prev = np.Inf - - n_pts = n_batch - - while (n_pts < n_max) and (np.abs(L - L_prev) > L * tol): - z_new = np.random.choice(len(w), size=n_batch, replace=True, p=w) - mean_new = x[z_new] - sd_new = sd[z_new] - x_new = np.random.normal(loc=mean_new, scale=sd_new) - - for i in range(len(x_new)): - while (x_new[i] < lower) or (x_new[i] > upper): - x_new[i] = np.random.normal(mean_new[i], sd_new[i]) - - fx_new = f(x_new) - x = np.append(x, x_new) - # sd = np.append(sd, 1./np.maximum(np.abs(fx_new), 1e-8)) - sd = sigma * np.ones(len(x)) - w_sum_new = np.sum(fx_new) - w *= w_sum / (w_sum + w_sum_new) - w_sum += w_sum_new - w = np.append(w, fx_new / w_sum) - n_pts += n_batch - - # compute loss-function - p = np.array([np.dot(w, norm.pdf(xi, loc=x, scale=sd)) for xi in x]) - L_prev = L - L = np.dot((p - w) ** 2, w) - - return x - - -if __name__ == "__main__": - x = adagrid_1d(-10, 10, f, sigma=1, n_batch=10, n_max=1000, tol=1e-2) - print("len(x) = {n}".format(n=len(x))) - x_ord = np.argsort(x) - x_even = np.linspace(np.min(x), np.max(x), 1000) - plt.plot(x[x_ord], f(x)[x_ord], ls="-", marker=".") - plt.plot(x_even, f(x_even), ls="--") - plt.show() diff --git a/docs/adagrid/adagrid_2d.py b/docs/adagrid/adagrid_2d.py deleted file mode 100644 index f532d067..00000000 --- a/docs/adagrid/adagrid_2d.py +++ /dev/null @@ -1,142 +0,0 @@ -# flake8: noqa -# The above line should be removed, but currently the code in this file is -# incorrect in several ways and it is unclear to me whether this is dead code or -# simply temporarily broken. -import queue - -import matplotlib.pyplot as plt -import numpy as np -from binomial import Binomial2Arm -from gridpt import GridPt -from scipy.stats import norm - - -def adagrid_internal(gridpt, grid_q, grid_final, model, alpha, N_max): - # store upper bound at current grid point - model.upper_bd(gridpt) - - # get full upper bound - ub = gridpt.create_upper() - - itr = 0 - while ub >= alpha and itr < 20: - model.tune_gridpt(gridpt) - ub = gridpt.create_upper() - ++itr - - # delta_0' + delta_1' ~ N(delta_0 + delta_1, sigma^2) - # sigma = sd([delta_0'_i + v^* delta_1'_i]) - # P(Ub > alpha) ~~ 1-NCDF((ub-alpha)/sigma) decrease - while ((ub - alpha) / sigma) < norm.isf(0.05): - model.tune_gridpt(gridpt) - ub = gridpt.create_upper() - # update sigma - - print( - "{p}:\n\tub={ub}\n\tub_old={ub_old}".format(p=gridpt.pt, ub=ub, ub_old=ub_old) - ) - - # if we have to shrink grid - if shrink_grid: - d = len(gridpt.pt) - bits = np.zeros(d) - new_rad = gridpt.radius / 2 - for _ in range(2**d): - new_pt = gridpt.pt + new_rad * (2 * bits - 1) - - # only add the new point if it's "viable". - # The only check right now is if it's in the null - if model.is_viable(new_pt): - grid_q.put(GridPt(new_pt, new_rad, gridpt)) - - # add 1 to bits - for j in range(d - 1, -1, -1): - carry = (bits[j] + 1) // 2 - bits[j] = (bits[j] + 1) % 2 - if carry == 0: - break - else: - grid_final.append(gridpt) - - -def adagrid( - lower, upper, model, alpha=0.025, init_size=2, N_init=1000, N_max=100000, max_iter=2 -): - # set-up root node for special behavior - root_pt = GridPt(None, None, None) - root_pt.N = N_init - root_pt.delta_0 = np.Inf - root_pt.delta_0_u = np.Inf - root_pt.delta_1 = np.Inf - root_pt.delta_1_u = np.Inf - root_pt.delta_2_u = np.Inf - root_pt.delta_0_ci_lower = np.Inf - root_pt.delta_0_ci_upper = np.Inf - - # make initial 1d grid - rnge = upper - lower - radius = rnge / (2 * init_size) - theta_grids = ( - np.arange(lower[i] + radius[i], upper[i], step=2 * radius[i]) - for i in range(len(lower)) - ) - - # make full grid - coords = np.meshgrid(*theta_grids) - grid = np.concatenate([c.flatten().reshape(-1, 1) for c in coords], axis=1) - - grid_q = queue.Queue() - for pt in grid: - if model.is_viable(pt): - grid_q.put(GridPt(pt, radius, root_pt)) - - # Final list of nodes to actually compute upper bound for. - # Essentially the leaves of the tree we are building. - grid_final = list() - - itr = 0 - while (not grid_q.empty()) and (itr < max_iter): - # TODO: all grid_plt related stuff is temporary - grid_plt = [] - - # run through current queue and update the queue - grid_q_size = grid_q.qsize() - for _ in range(grid_q_size): - gridpt = grid_q.get() - adagrid_internal(gridpt, grid_q, grid_final, model, alpha, N_max) - # TODO - grid_plt.append(gridpt) - itr += 1 - - # TODO: temporary code here - # plot the upper bound for each of the points - grid_plt = list(set().union(grid_final, grid_plt)) - pts = np.array([pt.pt for pt in grid_plt]) - z = np.array([gp.create_upper() for gp in grid_plt]) - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) - ax.plot_trisurf(pts[:, 0], pts[:, 1], z) - plt.show() - - # If max iteration was reached, just output the current leaves - # with the deepest nodes that we were supposed to prune further. - if itr == max_iter: - grid_final = list(set().union(grid_final, grid_q.queue)) - - return np.array(grid_final) - - -if __name__ == "__main__": - model = Binomial2Arm() - grid = adagrid( - lower=np.array([-0.02, -0.02]), - upper=np.array([0.02, 0.02]), - model=model, - alpha=0.025, - init_size=16, - max_iter=6, - N_max=10000, - ) - grid_raw = np.array([pt.pt for pt in grid]) - N_raw = np.array([pt.N for pt in grid]) - plt.scatter(grid_raw[:, 0], grid_raw[:, 1], s=1, alpha=N_raw / np.max(N_raw)) - plt.show() diff --git a/docs/adagrid/adagrid_garbage_compactor.py b/docs/adagrid/adagrid_garbage_compactor.py deleted file mode 100644 index 87f3e84a..00000000 --- a/docs/adagrid/adagrid_garbage_compactor.py +++ /dev/null @@ -1,223 +0,0 @@ -import queue - -import matplotlib.pyplot as plt -import numpy as np -from binomial import Binomial2Arm -from gridpt import GridPt - - -def adagrid_internal(gridpt, grid_q, grid_final, model, alpha, N_max, slack_factor=0.1): - # store upper bound at current grid point - model.upper_bd(gridpt) - - print(gridpt) - - # get full upper bound - ub = gridpt.create_upper() - - # already a good estimate for ub: no need to tune N and eps further - if (ub < alpha * (1 - slack_factor)) or (gridpt.N >= N_max): - grid_final.append(gridpt) - return - - # Compute z-score if N changed to N*2^d, d = dimension of gridpt - N = gridpt.N - d = len(gridpt.pt) - N_factor = 2**d - N_new = min(N * N_factor, N_max) - N_ratio = N / N_new - # sigma_dN = gridpt.sigma / np.sqrt(N_new) - mu_dN = ( - gridpt.delta_0 - + gridpt.delta_1 - + (gridpt.delta_0_u + gridpt.delta_1_u) * np.sqrt(N_ratio) - + gridpt.delta_2_u - ) - # z_dN = (alpha - mu_dN) / sigma_dN - - # Compute z-score if eps changed to eps/2 - # sigma_deps = gridpt.sigma - mu_deps = ( - gridpt.delta_0 - + gridpt.delta_1 - + gridpt.delta_0_u - + gridpt.delta_1_u / 2.0 - + gridpt.delta_2_u / 4.0 - ) - # z_deps = (alpha - mu_deps) / sigma_deps - - # mu_dN < mu_deps - # <=> - # gridpt.delta_0_u > 3/2 * gridpt.delta_2_u - - # Compare z-scores: larger the z-score, the more likely UpperBound < alpha. - - # 1) increase N and push gridpt into grid_q - if mu_dN < mu_deps: - gridpt.N = N_new - grid_q.put(gridpt) - - # 2) decrease eps by adding children gridpts into grid_q - else: - bits = np.zeros(d) - new_rad = gridpt.radius / 2 - for _ in range(2**d): - new_pt = gridpt.pt + new_rad * (2 * bits - 1) - - # only add the new point if it's "viable". - # The only check right now is if it's in the null - if model.is_viable(new_pt): - grid_q.put(GridPt(new_pt, new_rad, gridpt)) - - # add 1 to bits - for j in range(d - 1, -1, -1): - carry = (bits[j] + 1) // 2 - bits[j] = (bits[j] + 1) % 2 - if carry == 0: - break - - -def adagrid(lower, upper, model, alpha, init_size, max_iter, N_init, N_max): - # set-up root node for special behavior - root_pt = GridPt(None, None, None) - root_pt.N = N_init - root_pt.delta_0 = np.Inf - root_pt.delta_0_u = np.Inf - root_pt.delta_1 = np.Inf - root_pt.delta_1_u = np.Inf - root_pt.delta_2_u = np.Inf - root_pt.delta_0_ci_lower = np.Inf - root_pt.delta_0_ci_upper = np.Inf - - # make initial 1d grid - rnge = upper - lower - radius = rnge / (2 * init_size) - theta_grids = ( - np.arange(lower[i] + radius[i], upper[i], step=2 * radius[i]) - for i in range(len(lower)) - ) - - # make full grid - coords = np.meshgrid(*theta_grids) - grid = np.concatenate([c.flatten().reshape(-1, 1) for c in coords], axis=1) - - # create initial queue of potential gridpts to look into further - grid_q = queue.Queue() - for pt in grid: - if model.is_viable(pt): - grid_q.put(GridPt(pt, radius, root_pt)) - - # initialize thresholds - # Note: this assumes that we're doing an one-sided upper-tail test because - # we're always taking the maximum of the thresholds as the conservative - # lambda. This loop is just to get a reasonable estimate for the thresholds. - # By construction, they always correspond to threshold such that - # at all initial grid points, - # alpha_hat, alpha_minus_hat <= true alpha, true alpha_minus. - thr_minus = -np.Inf - thr = -np.Inf - for pt in grid_q.queue: - thr_minus_new, thr_new = model.initial_thresh(pt) - thr_minus = max(thr_minus_new, thr_minus) - thr = max(thr_new, thr) - model.da_dthresh = (model.alpha_target - model.alpha_minus_target) / ( - thr - thr_minus - ) - model.thresh = thr - model.thresh_minus = thr_minus - print( - "da_dthresh={dd}, alpha_t={at}, alpha_minus_t={amt}".format( - dd=model.da_dthresh, at=model.alpha_target, amt=model.alpha_minus_target - ) - ) - - # Final list of nodes to actually compute upper bound for. - # Essentially the leaves of the tree we are building. - grid_final = list() - - itr = 0 - while (not grid_q.empty()) and (itr < max_iter): - # TODO: just a nice ol print - print( - "thr={thr}, thr_minus={thr_minus}".format( - thr=model.thresh, thr_minus=model.thresh_minus - ) - ) - - model.seed = itr - - # TODO: all grid_plt related stuff is temporary - grid_plt = [] - - # run through current queue and update the queue - alpha_hat = 0 - alpha_minus_hat = 0 - grid_q_size = grid_q.qsize() - N_crit = 0 - for _ in range(grid_q_size): - gridpt = grid_q.get() - adagrid_internal(gridpt, grid_q, grid_final, model, alpha, N_max) - - if gridpt.delta_0 > alpha_hat: - alpha_hat = max(gridpt.delta_0, alpha_hat) - N_crit = gridpt.N - alpha_minus_hat = max(gridpt.delta_0_minus, alpha_minus_hat) - - # TODO - grid_plt.append(gridpt) - - print( - "alpha={alpha}, alpha_minus={alpha_minus}".format( - alpha=alpha_hat, alpha_minus=alpha_minus_hat - ) - ) - model.alpha_minus_target = max( - model.alpha_target / 2, - model.alpha_target - - 2 * np.sqrt(model.alpha_target * (1 - model.alpha_target) / N_crit), - ) - - # update thresholds again - model.da_dthresh = (alpha_hat - alpha_minus_hat) / ( - model.thresh - model.thresh_minus - ) - model.thresh += (model.alpha_target - alpha_hat) / model.da_dthresh - model.thresh_minus += ( - model.alpha_minus_target - alpha_minus_hat - ) / model.da_dthresh - - itr += 1 - - # TODO: temporary code here - # plot the upper bound for each of the points - grid_plt = list(set().union(grid_final, grid_plt)) - pts = np.array([pt.pt for pt in grid_plt]) - z = np.array([pt.create_upper() for pt in grid_plt]) - fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) - ax.plot_trisurf(pts[:, 0], pts[:, 1], z) - plt.show() - - # If max iteration was reached, just output the current leaves - # with the deepest nodes that we were supposed to prune further. - if itr == max_iter: - grid_final = list(set().union(grid_final, grid_q.queue)) - - return np.array(grid_final) - - -if __name__ == "__main__": - model = Binomial2Arm() - grid = adagrid( - lower=np.array([-2, -2]), - upper=np.array([2, 2]), - model=model, - alpha=0.025, - init_size=8, - max_iter=8, - N_init=1000, - N_max=64000, - ) - grid_raw = np.array([pt.pt for pt in grid]) - N_raw = np.array([pt.N for pt in grid]) - plt.scatter(grid_raw[:, 0], grid_raw[:, 1], s=1, alpha=N_raw / np.max(N_raw)) - plt.show() diff --git a/docs/adagrid/binomial.py b/docs/adagrid/binomial.py deleted file mode 100644 index 14efbc68..00000000 --- a/docs/adagrid/binomial.py +++ /dev/null @@ -1,154 +0,0 @@ -import numpy as np -from scipy.stats import norm - - -class Binomial2Arm: - def __init__(self): - self.n_sample = 250 - self.alpha_minus_target = None - - self.da_dthresh = None - self.thresh = None - self.thresh_minus = None - - self.null_hypo = lambda p: p[1] <= p[0] - self.seed = 1324 - self.alpha_target = 0.025 - self.delta = 0.025 - - @staticmethod - def sigmoid(x): - return 1.0 / (1.0 + np.exp(-x)) - - def is_viable(self, theta): - return self.null_hypo(Binomial2Arm.sigmoid(theta)) - - def simulate_once(self, gridpt): - # generate RNG - unifs = np.random.uniform(size=(self.n_sample, 2)) - - p = Binomial2Arm.sigmoid(gridpt.pt) - - # construct binomials - x_control = np.sum(unifs[:, 0] < p[0]) - x_treat = np.sum(unifs[:, 1] < p[1]) - - # construct z-stat - p_control = x_control / self.n_sample - p_treat = x_treat / self.n_sample - var = (p_control * (1 - p_control) + p_treat * (1 - p_treat)) / self.n_sample - z = p_treat - p_control - if var <= 0: - z = np.Inf * np.sign(z) - else: - z /= np.sqrt(var) - - return np.array([x_control, x_treat]), z - - def simulate(self, gridpt): - # prepare some members of gridpt - p = Binomial2Arm.sigmoid(gridpt.pt) - if not self.null_hypo(p): - return - - # set seed - np.random.seed(self.seed) - - gridpt.grad = np.zeros(2) - gridpt.grad_minus = np.zeros(2) - - # run through each simulation and update upper bound - for i in range(gridpt.N): - X, z = self.simulate_once(gridpt) - - ## accumulate upper bound quantities - - curr_grad = X - self.n_sample * p - - if z > self.thresh_minus: - gridpt.delta_0_minus += 1 - gridpt.grad_minus += curr_grad - - # rejected if above thresh and is under null - if z > self.thresh: - gridpt.delta_0 += 1 - gridpt.grad += curr_grad - gridpt.kernel_trick += np.outer(curr_grad, curr_grad) - - ## finalize upper bound - gridpt.delta_0 /= gridpt.N - gridpt.delta_0_minus /= gridpt.N - gridpt.grad_minus /= gridpt.N - gridpt.delta_1_minus = np.dot(gridpt.radius, np.abs(gridpt.grad_minus)) - gridpt.grad /= gridpt.N - gridpt.kernel_trick /= gridpt.N - - def upper_bd(self, gridpt): - # simulate - self.simulate(gridpt) - - # mean parameter - p = Binomial2Arm.sigmoid(gridpt.pt) - - gridpt.delta_0_u = norm.isf(self.delta / 2.0) * np.sqrt( - gridpt.delta_0 * (1 - gridpt.delta_0) / gridpt.N - ) - - v_star = gridpt.radius * np.sign(gridpt.grad) - gridpt.delta_1 = np.dot(gridpt.radius, np.abs(gridpt.grad)) - - gridpt.delta_1_u = np.sqrt( - np.dot(gridpt.radius**2, p * (1 - p)) - * self.n_sample - * (2.0 / self.delta - 1.0) - / gridpt.N - ) - - gridpt.delta_2_u = 0 - for k in range(len(p)): - pk_lower = Binomial2Arm.sigmoid(gridpt.pt[k] - gridpt.radius[k]) - pk_upper = Binomial2Arm.sigmoid(gridpt.pt[k] + gridpt.radius[k]) - if pk_lower <= 0.5 and 0.5 <= pk_upper: - gridpt.delta_2_u += 0.25 * gridpt.radius[k] ** 2 - else: - lower = pk_lower - 0.5 - upper = pk_upper - 0.5 - max_at_upper = np.abs(upper) < np.abs(lower) - max_endpt = pk_upper if max_at_upper else pk_lower - gridpt.delta_2_u += max_endpt * (1 - max_endpt) * gridpt.radius[k] ** 2 - gridpt.delta_2_u *= self.n_sample / 2.0 - - gridpt.delta_0_ci_lower = ( - gridpt.delta_0 - (2 * gridpt.delta_0 * (1 - gridpt.delta_0)) / gridpt.N - ) - gridpt.delta_0_ci_upper = ( - gridpt.delta_0 + (2 * gridpt.delta_0 * (1 - gridpt.delta_0)) / gridpt.N - ) - - # 1/N sum_i (1_F_i + v^T df_hat_i)^2 - (mean)^2 - # = 1/N sum_i (1_F_i + 2v^T df_hat_i + v^T df_hat_i df_hat_i^T v) - (mean)^2 - # = delta_0 + 2*delta_1 + v^T (1/N sum_i df_hat_i df_hat_i^T) v - (mean)^2 - # mean = delta_0 + delta_1 - gridpt.sigma = np.sqrt( - gridpt.delta_0 - + 2 * gridpt.delta_1 - + v_star.dot(gridpt.kernel_trick.dot(v_star)) - - (gridpt.delta_0 + gridpt.delta_1) ** 2 - ) - - def initial_thresh(self, gridpt): - p = Binomial2Arm.sigmoid(gridpt.pt) - if not self.null_hypo(p): - return - - # set seed - np.random.seed(self.seed) - - z_vec = np.array([self.simulate_once(gridpt)[1] for _ in range(gridpt.N)]) - np.sort(z_vec) - alpha = self.alpha_target - self.alpha_minus_target = alpha - 2 * np.sqrt(alpha * (1 - alpha) / gridpt.N) - thr = np.quantile(z_vec, 1 - alpha) - thr_minus = np.quantile(z_vec, 1 - self.alpha_minus_target) - - return thr_minus, thr diff --git a/docs/adagrid/gridpt.py b/docs/adagrid/gridpt.py deleted file mode 100644 index 5984be40..00000000 --- a/docs/adagrid/gridpt.py +++ /dev/null @@ -1,47 +0,0 @@ -import numpy as np - - -class GridPt: - def __init__(self, pt, radius, parent): - self.pt = pt - self.parent = parent - self.N = 0 if parent is None else parent.N - self.radius = radius - self.grad = None - self.grad_minus = None - self.delta_0 = 0 - self.delta_0_minus = 0 - self.delta_0_u = 0 - self.delta_1 = 0 - self.delta_1_minus = 0 - self.delta_1_u = 0 - self.delta_2_u = 0 - self.delta_0_ci_lower = 0 - self.delta_0_ci_upper = 0 - self.sigma = 0 - self.kernel_trick = ( - None if radius is None else np.zeros(shape=(len(radius), len(radius))) - ) - - def __repr__(self): - return "{pt}, N={N}, deltas={deltas}, sigma={sigma}\n".format( - pt=self.pt, - N=self.N, - deltas=[ - self.delta_0, - self.delta_1, - self.delta_0_u, - self.delta_1_u, - self.delta_2_u, - ], - sigma=self.sigma, - ) - - def create_upper(self): - return ( - self.delta_0 - + self.delta_0_u - + self.delta_1 - + self.delta_1_u - + self.delta_2_u - ) diff --git a/docs/design/grid/grid_range/grid_range.md b/docs/design/grid/grid_range/grid_range.md deleted file mode 100644 index b6687d5b..00000000 --- a/docs/design/grid/grid_range/grid_range.md +++ /dev/null @@ -1,162 +0,0 @@ -# Grid Range - -In general, `imprint` requires a notion of "a set of grid-points" -on which to simulate a given model. -As it turns out, we require a few more additional detail -to be able to integrate grid range into the framework. -This document covers the specification and the API -for our grid range class. - -## Overview - -A typical workflow of using a grid range is described below: -```mermaid -flowchart TB - user([User]) - - %% Grid range construction - subgraph gr_subg [Grid Range Construction] - get_gridpts[Create a list of grid-points] - get_radii[Create a list of radii] - get_ss[Create a list of simulation sizes] - get_gr[Create a GridRange] - get_null_hypos[Create a list of null hypothesis surface objects] - get_tiles[Create tiles] - prune[Prune the grid range] - - get_gridpts --> get_gr - get_radii --> get_gr - get_ss --> get_gr - get_gr --> get_tiles - get_null_hypos --> get_tiles - get_tiles --> prune - end - user --> gr_subg - - gr_subg --> process([Use grid range]) -``` - -The following sections discuss in further detail -the subroutines depicted as rectangular tiles in the diagram above. - -## Grid Range Specification - -This section covers the required specification -of a grid range concept. -Throughout this section, we will illustrate many concepts -using a running example of a user-defined grid-space. - -### Grid-points - -The first and foremost requirement is to store a list of grid-points. -As mentioned in [Grid Range](#grid-range), -this is the set of grid-points under which we simulate a given model. -An example is shown below with blue dots representing the grid-points -and the gray-space representing the grid-space of interest: - -

- -

- -Note that the context, or meaning, of these points is defined by the model of interest. -See [Model](../model/model.md#attaching-gridrange) for more detail. -The user is responsible for constructing a valid list of grid-points -that adhere to the convention of the model of interest. - -However, regardless of the context, -a range of grid-points is still a meaningful quantity -for the rest of the framework. -The framework only ever assumes that the grid-points lie in the space in which -we apply the Taylor expansion of the function of interest (e.g. Type I error function) -(see [ImprintBound](../../../math/bound/doc.pdf)). - -### Radii - -In [ImprintBound](../../../math/bound/doc.pdf), -the Type I error guarantees originate from having control of a Taylor expansion -around a small region `R` associated with each grid-point. -While it is true that `R` need not contain the corresponding grid-point, -accuracy is improved when it does. -So, if a user has a grid-space they wish to get Type I error guarantees on, -we will assume that the space has been first partitioned by a set of hypercubes -where each hypercube is defined by a grid-point as in [Grid-points](#grid-points) -as the center and a radius vector that defines the radius along each direction. -The following pictures shows an example of a grid partitioned by -hypercubes with the same radius: - -

- -

- -### Simulation Sizes - -For each grid-point that we wish to simulate under, -we can associate it with a simulation size (number of simulations). -In general, we would like to have different simulation sizes -for each grid-point because some points will result in a higher Type I error than others -and we wish to get a more accurate estimate in those regions. -During simulation, we can keep track of the number of finished simulations -and stop updating for those that reached the desired simulation size. - -### Null Hypothesis Surfaces - -A vector of "null-hypothesis surfaces" is needed to create tiles -(see [Tiles](#tiles)). -A null-hypothesis surface is a surface that splits a space -into three portions: negative orientation, positive orientation, and boundary. -The positive orientation and the boundary is one half of the space split by the surface -that is assumed to be associated with the null-hypothesis. -The negative orientation is the alternative space. -The most common type of a null-hypothesis surface is a hyperplane. -It is motivated by examples of the form `theta_i <= theta_0`, -where the hyperplane is of the form `(1,0,...,0,-1,0,...)` where -the `-1` is in the ith position (0-indexed) with a `0` shift. - -### Tiles - -Once the grid-point, radius, simulation size, -and null hypothesis surface information are provided, -we can construct tiles. -A tile is simply a hypercube mentioned in [Radii](#radii) -intersected by all null-hypothesis surfaces. -Naturally, a vector of null-hypothesis surfaces partition -the given grid space into disjoint tiles. -These tiles are precisely the regions on which we Taylor-expand -and compute our Imprint bounds. -Associated with each tile is an _intersection hypothesis space_ (IHS) -defined by the configuration of the null-hypothesis space. -Since each tile belongs to one partition of the null-hypothesis surfaces, -it is associated with exactly one of 2 configurations for each hypothesis -(in the null vs. in the alternative). -An IHS is simply the full configuration of all null-hypotheses -(e.g. (1,0,1) represents 1st and 3rd hypotheses as null and the 2nd as alternative). -The following is an example of a grid-range with 2 hyperplanes as null-hypothesis surfaces. - -

- -

- -The 2nd tile on the top has both hyperplanes cutting the hypercube -with the 4 tiles labeled from 1-4. -__Note: currently for simplicity, if more than one hyperplane cuts a tile, -no further cutting occurs and the current tile simply gets copied and labeled -as on the negative/positive orientation, respectively. -This does not break the math - it simply makes it more conservative.__ -The neighboring tiles are only cut by one hyperplane. -The right-most column of tiles are not cut by any of the hyperplanes. - -### Pruning - -After tiles have been created, the user has the option to prune the tiles/grid-points. -Since tiles associated with fully-alternative configuration is completely -unnecessary for studying the Type I error, -we can preemptively prune those tiles out. -Moreover, if there are no tiles associated with a grid-point, -the grid-point itself can be pruned out, lowering the cost of simulation. -The following diagram shows the positive orientation of each of the hyperplanes, -the purple lines delineate the set of tiles which get pruned, -and the purple dots denote the grid-points which get pruned out as well. - -

- -

diff --git a/docs/design/grid/grid_range/img_000.png b/docs/design/grid/grid_range/img_000.png deleted file mode 100644 index 58a35ee4..00000000 Binary files a/docs/design/grid/grid_range/img_000.png and /dev/null differ diff --git a/docs/design/grid/grid_range/img_001.png b/docs/design/grid/grid_range/img_001.png deleted file mode 100755 index 3a22a1d7..00000000 Binary files a/docs/design/grid/grid_range/img_001.png and /dev/null differ diff --git a/docs/design/grid/grid_range/img_002.png b/docs/design/grid/grid_range/img_002.png deleted file mode 100755 index 9e339381..00000000 Binary files a/docs/design/grid/grid_range/img_002.png and /dev/null differ diff --git a/docs/design/grid/grid_range/img_003.png b/docs/design/grid/grid_range/img_003.png deleted file mode 100755 index 7ef1a84a..00000000 Binary files a/docs/design/grid/grid_range/img_003.png and /dev/null differ diff --git a/docs/design/model/model.md b/docs/design/model/model.md deleted file mode 100644 index fb9b044f..00000000 --- a/docs/design/model/model.md +++ /dev/null @@ -1,441 +0,0 @@ -# Model - -Model classes are at the heart of `imprint` -as they define all simulation-specific routines, -model-specific imprint bound quantities, -and any global configurations for the model. -This document will explain in detail the design of our model classes. - -## Table of Content - -- [Overview](#overview) -- [Model Specification](#model-specification) - - [Attaching `GridRange`](#attaching-gridrange) - - [Simulating](#simulating) - - [`Accumulator` Update](#accumulator-update) - - [`ImprintBound` Update](#imprintbound-update) -- [Model API](#model-api) - - [`Distribution`](#distribution) - - [`Model` and `ModelBase`](#model-and-modelbase) - - [`SimGlobalState` and `SimGlobalStateBase`](#simglobalstate-and-simglobalstatebase) - - [`SimState` and `SimStateBase`](#simstate-and-simstatebase) - - [`ImprintBoundState` and `ImprintBoundStateBase`](#imprintboundstate-and-imprintboundstatebase) - - [Virtual Members](#virtual-members) - -## Overview - -The following diagram shows how a `model` fits into the whole framework. -For simplicity, we assume that the cloud only consists of one node with four cores. - -The first diagram depicts only the key parts of -the simulation framework that interact with a `model`. -```mermaid -flowchart TB - user([User]) - - %% Fit subgraph - user -->|pass model, GridRange| fit_driver([Fit Driver]) - subgraph fd_subg [Fit Mechanism] - fit_driver --> set_grid_range[Attach model to GridRange] - set_grid_range -->|simulate model on node| n([Node]) - n --> c1([Core 1]) - n --> c2([Core 2]) - n --> c3([Core 3]) - n --> c4([Core 4]) - end -``` -We refer to [TODO: link a page about `GridRange`]() -for more information about the `GridRange` class -and terminologies. - -We see that nearly all of the interactions with `model` occurs in the cores. -The following diagram shows a close-up flowchart of the core mechanism. -```mermaid -flowchart TB - n([Node]); - - %% Core subgraph - subgraph ft_subg [Core] - set_rng([Initialize RNG]) - set_rng --> simulate[Simulate once for model] - simulate --> is_update[Accumulate result] - is_update -->|repeat n_sim times| simulate - end - n -->|pass attached model| ft_subg -``` - -Aside from the simulation mechanism, -we also have the imprint-bound mechanism where the framework -interacts with a `model` and an accumulator object -that has accrued information from simulations with that `model` -to compute the corresponding `ImprintBound` object. -The following diagram describes this interaction: -```mermaid -flowchart LR - model([Model]) - is_o([Accumulator]) - model --> ub[Compute ImprintBound] - is_o --> ub -``` - -In the subsequent sections, we will discuss each of the -subroutines in the diagrams depicted by the rectangular nodes -to see how they interact with a `model`. -Combining will give us a sketch of the `model` API. -We will then describe our implementation of the API. - -## Model Specification - -This section will cover the subroutines mentioned in [Overview](#overview). - -### Attaching `GridRange` - -Every `model` should have the opportunity to cache information -from the given `GridRange` object before any simulations occur. -For example, if a `model` assumes the grid lies in some space -that parametrizes the mean parameter space of the exponential family, -it is usually advantageous to transform the grid-points -into the mean parameters first before any simulations occur, -since simulation-dependent quantities such as the log-partition function -can usually be computed cheaply in terms of the mean parameters. -[Simulating](#simulating) gives another justification -for having `models` attach to a `GridRange`. - -As mentioned in the previous paragraph, -a `model` defines the context of the grid-points. -It is the user's responsibility to construct a `GridRange` object -that adheres to the convention of the `model` they wish to simulate. -For example, a `model` assuming exponentially distributed data -may define the grid-points to lie in the log-hazard space -rather than the natural parameter space (negative hazard). -The user is then responsible for constructing grid-points -in the log-hazard space. -This promise is solely between the user and the `model` of interest; -the rest of the `imprint` framework does not use the context of a `GridRange` object -for a given `model`, since they must be agnostic to the `model` types. - -__In summary__: -- The framework guarantees that a `model` will be attached -to a `GridRange` on which it will simulate. -- The attaching procedure gives the opportunity for a `model` to cache -any information that can potentially speed-up the simulations. -- A `model` defines the context of the grid-points. -It is the user's responsibility to construct grid-points in the expected space that they belong. - -### Simulating - -A `model` needs to define the simulation procedure -beginning with the data generation to computing the false rejections for each tile of `GridRange`. - -From an optimization point of view, -it is important that the `model` is aware of the `GridRange` ahead of time. -As a simple example, consider a (one-arm) binomial distribution with size `n` -and parameters `p_i` for `i=1,...,d` (`d` grid-points). -Using Skhorokhod's embedding, it is enough to sample -_`n` uniform random variables_ `U_j` (`j=1,...,n`) and evaluate the indicators -that `U_j < p_i`. -This is because such an indicator follows a Bernoulli with parameter `p_i` -and the sum over `j` will give us a binomial distribution with size `n`, parameter `p_i`. -This certainly correlates the binomials for each of the parameters `p_i`, -but this __does not__ invalidate our math. -In fact, this correlation only helps smooth-out the Type I error profile. -Furthermore, assuming `U_j` and `p_i` are sorted, -we can compute _all_ binomials by reading `U` and `p` _exactly once_. -Moreover, if the model assumes independent binomial draws for `k` arms -and there are `d` grid-points, -it is enough to only save the _unique_ parameter values for each arm, -and hence, enough to only compute binomials for these unique parameters. -For this particular binomial model, the number of unique parameter values -is typically `O(log(d))`, which introduces massive memory and computation savings. -Note that this optimization is only possible because -a `model` is aware of the whole range of grid-points. - -After sampling the RNG, -we typically have to further compute the sufficient statistic, -e.g. for the binomial example, the binomials are the sufficient statistic. -Note that an exponential family only depends on the data through the sufficient statistic, -so the test statistic used to compute false rejections -should (in principle) only depend on the sufficient statistic. -However, it is entirely up to the user how to sample RNG and save the necessary information -(sometimes we may need to save a quantity other than the sufficient statistic!). -The user has complete autonomy in deciding what data structure is most -beneficial for the simulation procedure. - -Lastly, the simulation procedure must -compute the false rejections for all tiles in `GridRange`. -Note that from the framework perspective, -the model is free to choose the meaning of "false rejection" -(e.g. controlling FWER). - -__In summary__: -- A `model` is given an RNG and must provide a simulation function that (conceptually): - - Generates data for each grid-point. - - Saves any necessary information (usually sufficient statistic). - - Computes "false rejection" (defined model-specifically) for each tile. - -### `Accumulator` Update - -An `Accumulator` object essentially stores the necessary simulation-specific information -needed to compute its corresponding imprint-bound. -Depending on the function of interest (e.g. Type I Error, bias, MSE), -we may have different quantities in general that are needed to compute their respective imprint bound. -As an example, Type I Error accumulator will save the sum of false rejections -and the score estimates for each tile in the attached `GridRange` object of the `model` -(see [TODO: link `Accumulator` page]() for more information). -See [TODO: ImprintBound page instead?](../math/stats/imprint_bound/doc.pdf) -for the mathematical details for why this the case. - -The false rejections per tile has already been discussed in [Simulating](#simulating). -The only extra information needed from `model` is then the score estimates. - -__In summary__: -- After a simulation of a `model`, -the `Accumulator` object is updated to accrue simulation information. -- As an example, Type I Error accumulator only requires: - - False rejections for each tile. - - Score estimates for each grid-point. - -### `ImprintBound` Update - -An `ImprintBound` object stores the components that comprise the imprint bound estimate. -It is computed from a `model`, its attached `GridRange` object, -and its corresponding `Accumulator` object that accrued information across all the simulations. -The only model-specific quantities are: - -- Jacobian operator of the transformation that maps grid-points to natural parameters. -- Quadratic form of the covariance of the sufficient statistic. -- Imprint bound on the quadratic form of the hessian. - -We explain the reasoning at a high-level. -The first quantity is required since a `model` defines -the space in which the grid-points lie, -and `ImprintBound` requires the Jacobian of the transform -that maps grid-points to the natural parameters. -Hence, this Jacobian is a model-specific quantity. -The second and third quantities are obviously model-specific -since a model assumes a particular data distribution -and both quantities are dependent on that distribution. -See [ImprintBound](../math/stats/imprint_bound/doc.pdf) -for further mathematical details. -See [Exponential Model](../math/model/exp_control_k_treatment/doc.pdf) -for a concrete example of these specifications. - -## Model API - -In this section, we discuss the Model API and remark on the design choices. -The following class diagram describes a typical model class `Model`. -Note that the diagram is a simplification of our implementation; -we only present the essential class members for our discussion. -```mermaid -classDiagram - -class Distribution { - <> -} - -class GridRange - -class ModelBase { - -vec_t critical_values_ - +n_models() size_t - +critical_values(crit_vals) void - +critical_values() vec_t -} - -class Model { - +make_sim_global_state(grid_range) SimGlobalState - +make_imprint_bound_state(grid_range) ImprintBoundState -} - -class SimGlobalStateBase { - +make_sim_state()* unique_ptr~SimStateBase~ -} - -class SimGlobalState - -class SimStateBase { - +simulate(gen, rej_len)* void - +score(gridpt_idx, out)* void -} - -class SimState - -class ImprintBoundStateBase { - +apply_eta_jacobian(gridpt_idx, v, out)* void - +covar_quadform(gridpt_idx, v)* double - +hessian_quadform_bound(gridpt_idx, tile_idx, v)* double -} - -class ImprintBoundState - -%% Inheritance -Distribution --|> ImprintBoundState -Distribution --|> SimGlobalState -Distribution --|> SimState -ModelBase --|> Model : Inheritance -SimStateBase --|> SimState -ImprintBoundStateBase --|> ImprintBoundState -SimGlobalStateBase --|> SimGlobalState - -%% Composition (up to reference) -Model --* SimGlobalState -GridRange --* SimGlobalState : Composition by Reference - -SimGlobalState --* SimState - -Model --* ImprintBoundState -GridRange --* ImprintBoundState - -%% Type Dependency -SimGlobalState ..> Model -ImprintBoundState ..> Model: Type Dependency -``` - -We list the diagram notation definitions: -- `-`: private. -- `+`: public. -- `: name`: `name` is the return type. -- Italicized functions are `virtual` or `pure virtual`. -- Arrows with triangular tips represent `Inheritance` (example shown). -- Arrows with rhombus tips represent `Composition by Reference` (example shown). -- Arrows with dashed lines and angled tips represent `Type Dependency` (example shown). -- `Distribution`: a class with a static interface for computing quantities -specific to a particular distribution (e.g. binomial). -- `GridRange`: a grid range class. -- `Model`: concrete model class. -- `SimState`: concrete simulation state class associated with `Model`. -- `SimGlobalState`: concrete simulation global state class associated with `Model`. -- `ImprintBoundState`: concrete imprint bound state class associated with `Model`. -- All class names of the form `FooBase` are base classes for -their corresponding derived classes `Foo`. - -The following subsections will cover the design choices -for the classes in the diagram. - -### `Distribution` - -`Distribution` is a class with a static interface for computing quantities -specific to a particular distribution. -The purpose of this class is to isolate and modularize -the expressions for such quantities so that these expressions -are not duplicated within the codebase. -So, different models, which may assume the same distribution, -do not have to re-implement the logic of distribution-specific quantities, -such as the score function. - -In general, distribution-specific quantities are present in -- `SimState` (e.g. score function) -- `SimGlobalState` (e.g. natural parameter to mean parameter transformation) -- `ImprintBoundState` (e.g. covariance quadratic form) - -### `Model` and `ModelBase` - -The `Model` class should be interpreted as a collection of policies. -It is simply a dispatcher to create sibling classes for a particular routine -and store any model-specific configuration data. -Note that `Model` contains two member functions which create -an instance of `SimGlobalState` and `ImprintBoundState`. -These sibling classes will be discussed in further detail in the later sections, -but at a high level, `SimGlobalState` is a class used in simulation -and `ImprintBoundState` is a class used to construct an imprint bound estimate. -`Model` itself does not interact with the framework otherwise. -The sibling classes are constructed with an instance of a `GridRange` object, -`grid_range`. -It is precisely here where we "attach" a `GridRange` object to a model -as discussed in [Attaching `GridRange`](#attaching-gridrange). - -Looking slightly ahead, we see that `Model`'s `make_*` functions -return the derived classes themselves rather than `unique_ptr`s. -Of course, we could have returned `unique_ptr`s, -but here we can avoid the unnecessary heap-allocation, -since we are not attempting to return abstract types. - -The `ModelBase` class is a base class to all model types. -Currently, the only property in common among all model types is that -we can define a __sequence of models__. -For now, we enforce that a sequence of real numbers index this sequence of models. -In particular, in all our use-cases, this sequence will represent the critical values -for which we reject our test-statistic of a given model. -__Note: the context of these critical values is _model-specific_!__ -Every concrete `Model` class decides its own meaning of these critical values -(e.g. critical values associated with lower-sided, upper-sided, or two-sided test; -scaling of the critical values, e.g. z-score values, chi-squared values, etc.). -These critical values are only ever used within `Model`-related classes, -so the user is free to decide the context; -`Accumulator` and `ImprintBound` objects never work with these critical values directly. -The critical values solely exist to define the sequence of models -and to compute the false rejections during simulations. - -### `SimGlobalState` and `SimGlobalStateBase` - -`SimGlobalState` is a class that represents a concrete `Model` class -attached to a `GridRange` object. -The primary goal of this object is to cache any global information -that can be used by all simulations to potentially speed them up -(see [Simulating](#simulating)). -__The user is free to choose the internal representation -of these concrete `SimGlobalState` types -and expose any members that are needed by `SimState`.__ -This class only interacts with `SimState`. - -`SimGlobalStateBase` is the corresponding base class. -It instructs all derived classes to implement -`make_sim_state`, which creates a new `SimState` object -(casted down to the abstract base type `SimStateBase`). -See [Virtual Members](#virtual-members) for why -this function is made `virtual`. - -### `SimState` and `SimStateBase` - -`SimState` is a class that represents a simulation state -for the `Model` class under the global cache of `SimGlobalState`. -At a high level, this class contains any members that stores -simulation-specific information and member functions that compute -simulation-specific quantities using model-specific values -and pre-computed information about the current `GridRange` object. -__The user is free to choose the internal representation -of these concrete `SimState` types.__ - -`SimStateBase` is the corresponding base class. -It instructs all derived classes to implement the virtual member functions: -- `simulate`: runs one simulation and outputs the false rejections -for each tile in the current `GridRange` object -(see [Simulating](#simulating)). -- `score`: computes the score function evaluated at a grid-point -and one of the parameters -(see [`Accumulator` Update](#accumulator-update)). - -### `ImprintBoundState` and `ImprintBoundStateBase` - -`ImprintBoundState` is a class associated with `Model` -that is used to create an `ImprintBound` object. -It implements the members of `ImprintBoundStateBase`, -which are the only members needed to create an imprint bound estimate -(see [`ImprintBound` Update](#imprintbound-update)). -__The user is otherwise free to choose the internal representation -of these concrete `ImprintBoundState` types.__ - -### Virtual Members - -At first glance, it seems arbitrary that -some member functions are declared `virtual` in a base class -and others are not. -However, the choice was deliberate. - -In our framework, there are C++ functions that must -be able to interact with _any arbitrary model-related types_, -e.g. different `SimState` types, -and they are later exported to a higher-level language like Python. -So ideally, we would like to expose only one declaration/overload for each of the functions. -We would also like to be able to write model-related classes not just in C++ -but also in Python and still be able to seamlessly plug them into our framework. -These exported C++ functions must then be able to take any -Python model-related class objects as well. -The only solution is to introduce polymorphism and ensure that -all model-related classes (written in C++ or Python) that interact with these exported C++ functions -override the necessary member functions. - -In summary, all `virtual` functions are functions that get called by -these exported C++ functions that must be callable for arbitrary types. -The non-`virtual` functions are either extra user-defined functions -or functions that only get called at a higher-level stage. diff --git a/docs/imprint_flowcharts.md b/docs/imprint_flowcharts.md deleted file mode 100644 index f979c43c..00000000 --- a/docs/imprint_flowcharts.md +++ /dev/null @@ -1,37 +0,0 @@ -# Imprint Flowcharts - -## Main Flowchart -```mermaid -flowchart LR; - user[User]; - style user fill:#006666,stroke:#f66,stroke-width:2px - SQL[(SQL)]; - ubcomp(Compute UpperBound); - - ubcomp --> |request data| SQL; - SQL --> |send data| ubcomp; - - user -->|model| driver; - subgraph subg_sim [Simulation]; - driver(Driver); - driver --> |Batch 1| Node1((Node1)); - driver --> |Batch 2| Node2((Node2)); - driver --> |Batch 3| Node3((Node3)); - driver --> |Batch 4| Node4((Node4)); - end; - Node1 --> SQL; - Node2 --> |update InterSum| SQL; - Node3 --> SQL; - Node4 --> SQL; - - user --> |request plot| visproc; - subgraph subg_vis [Visualization]; - visproc(Process request); - visualizer(Visualizer); - visproc -->|UpperBound| visualizer; - end; - visproc --> |database ID| ubcomp; - ubcomp --> |get UpperBound| visproc; - visualizer --> |send plots| user; - -``` diff --git a/docs/latex/mathtools.tex b/docs/latex/mathtools.tex deleted file mode 100644 index ee2471cc..00000000 --- a/docs/latex/mathtools.tex +++ /dev/null @@ -1,81 +0,0 @@ -\usepackage{amsmath} -\usepackage{amssymb} -\usepackage{amsfonts} -\usepackage{amsthm} -\usepackage{mathrsfs} -\usepackage{mathtools} -\usepackage{bbm} -\usepackage{listings} -\usepackage{enumitem} % reference enum item -\usepackage{wasysym} % smiley faces! - -% COLORS -\usepackage{color} -\usepackage{xcolor} -\definecolor{mygray}{rgb}{0.4,0.4,0.4} - -% Math Utils -\newcommand{\inner}[2]{\langle#1,\,#2\rangle} -\newcommand{\innerone}[1]{\langle#1\rangle} -\newcommand{\paren}[1]{\left(#1\right)} -\newcommand{\bracket}[1]{\left[#1\right]} -\newcommand{\given}{\biggr\rvert} -\newcommand{\PP}[1]{\mathbb{P}\paren{#1}} -\newcommand{\PPB}[1]{\mathbb{P}\bracket{#1}} -\newcommand{\PPP}{\mathbb{P}} -\newcommand{\E}{\mathbb{E}} -\newcommand{\EE}[1]{\mathbb{E}\paren{#1}} -\newcommand{\EEB}[1]{\mathbb{E}\bracket{#1}} -\newcommand{\Tr}[1]{\text{Tr}\paren{#1}} -\newcommand{\R}{\mathbb{R}} -\newcommand{\Z}{\mathbb{Z}} -\newcommand{\Q}{\mathbb{Q}} -\newcommand{\N}{\mathbb{N}} -\newcommand{\xeq}[1]{\stackrel{#1}{=}} -\newcommand{\indist}{\mathcal{D}} -\newcommand{\inprob}{\mathcal{P}} -\newcommand{\borel}{\mathcal{B}} -\newcommand{\indic}[1]{\mathbbm{1}_{#1}} -\newcommand\restr[2]{{% we make the whole thing an ordinary symbol - \left.\kern-\nulldelimiterspace% automatically resize the bar with \right - #1 % the function - \vphantom{\big|} % pretend it's a little taller at normal size - \right|_{#2} % this is the delimiter - }} -\newcommand{\im}{\text{Im}} -\newcommand{\cov}[2]{\text{Cov}\paren{#1,#2}} -\newcommand{\corr}[2]{\text{Corr}\paren{#1,#2}} -\newcommand{\var}[1]{\text{Var}\paren{#1}} -\newcommand{\abs}[1]{\left\lvert#1\right\rvert} -\newcommand{\norm}[1]{\vert\vert#1\rvert\rvert} -\newcommand{\grad}{\nabla} -\newcommand{\varrow}{\overset{\rightharpoonup}} -\newcommand{\diag}[1]{\text{diag}\paren{#1}} -\newcommand{\mesh}{\text{mesh}} -\newcommand{\sgn}[1]{\text{sgn}\paren{#1}} -\newcommand{\set}[1]{\{#1\}} -\newcommand{\swap}{\operatorname{swap}} - -\DeclareMathOperator*{\argmax}{arg\,max} -\DeclareMathOperator*{\argmin}{arg\,min} -\DeclareMathOperator*{\tv}{d_{TV}} - -\DeclarePairedDelimiter{\floor}{\lfloor}{\rfloor} -\DeclarePairedDelimiter{\ceil}{\lceil}{\rceil} - -\newcommand\indep{\protect\mathpalette{\protect\independenT}{\perp}} -\def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}} - -\newcommand{\code}[1]{{\texttt{\textcolor{mygray}{\small #1}}}} - -% TODO highlighting -\newcommand{\todo}[1]{\textcolor{red}{#1}} - -% Theorem stuff -\newtheorem{theorem}{Theorem}[section] -\newtheorem{definition}[theorem]{Definition} -\newtheorem{corollary}{Corollary}[theorem] -\newtheorem{lemma}[theorem]{Lemma} -\newtheorem{exercise}{Exercise}[section] -\newtheorem{remark}{Remark}[section] -\newtheorem{example}{Example}[section] diff --git a/docs/math/bound/doc.pdf b/docs/math/bound/doc.pdf deleted file mode 100644 index a227b9a4..00000000 Binary files a/docs/math/bound/doc.pdf and /dev/null differ diff --git a/docs/math/bound/doc.tex b/docs/math/bound/doc.tex deleted file mode 100644 index 2c30a9c3..00000000 --- a/docs/math/bound/doc.tex +++ /dev/null @@ -1,568 +0,0 @@ -\documentclass[10pt]{article} -\usepackage{cite} -\usepackage{fullpage} -\input{../../latex/mathtools} - -\newcommand{\new}{\operatorname{new}} - -\begin{document} -\title{Generalized Grid Upper Bound} -\author{James Yang} -\maketitle - -\section{Introduction}\label{sec:intro} - -The current formulation of the upper bound estimate assumes that the -(rectangular) gridding occurs in the (canonical) natural parameter space $\Xi$. -However, it is sometimes more suitable to grid -a different space $\Theta$ that parametrizes $\Xi$. -For example, an exponential model with the control and treatment arms assumed to be -exponentially distributed with hazards $\lambda_c, \lambda_t$, respectively, -equipped with the logrank test -can be greatly optimized under the parametrization of $\lambda_{c}, h$ -where $h := \lambda_t / \lambda_c$ is the hazard rate. -Moreover, for better scaling, we may want to grid -the $(\log(\lambda_{c}), \log(h))$ space. -Such a parametrization defines a mapping from -\emph{the grid space} to the natural parameter space. -We wish to construct the upper bound estimate under any -such parametrization, -provided that the mapping is sufficiently smooth. - -In the subsequent sections, -we will use the notation $\theta \in \Theta \subseteq \R^s$ to denote -a point in the grid space and $\eta = \eta(\theta) \in \Xi \subseteq \R^d$ -as the canonical natural parameter. - -\section{Original Upper Bound Estimate}\label{sec:orig-ub} - -For completion, we give a short overview of the old version -of the upper bound estimate. - -We begin with a set of multiple hypotheses $H_1,\ldots, H_p$. -We define a \emph{configuration} of the multiple hypotheses -as an element of $\set{0,1}^p$ where the ith coordinate is 1 -if and only if $H_i$ is true. -We assume that we have i.i.d. draws of $X^i \sim \PPP_\eta$ -where $\PPP_\eta$ forms an exponential family. -For adaptive trials, we assume that there exists a finite time horizon $\tau_{\max}$ -so that $X^i \in \R^{\tau_{\max}}$, though we only observe up to a stopping time $\tau$. -We denote $T_{t}$ as the sufficient statistic of $(X_1,\ldots,X_t)$. - -Let $f(\eta) := \PPP_{\eta}\paren{X \in A}$ -where $A$ is the event of false rejection. -Since exponential families are sufficiently smooth, -$f(\eta)$ is twice-continuously differentiable. -A second-order Taylor expansion gives us -\begin{align*} - f(\eta) - &= - f(\eta_0) - + - \nabla f(\eta_0)^\top (\eta - \eta_0) - + - \int_0^1 - (1-\alpha) - (\eta - \eta_0)^\top - \nabla^2 f(\eta_0 + \alpha (\eta-\eta_0)) - (\eta - \eta_0) - d\alpha -\end{align*} -Note that the derivatives are with respect to $\eta$. - -Given a bounded set of $\eta$ values, $R$, -we obtain an upper bound of the true Type I error: -\begin{align*} - \sup\limits_{\eta \in R} - f(\eta) - &= - f(\eta_0) - + - \sup\limits_{\eta \in R} - \bracket{% - \nabla f(\eta_0)^\top (\eta - \eta_0) - + - \int_0^1 - (1-\alpha) - {(\eta - \eta_0)}^\top - \nabla^2 f(\eta_0 + \alpha (\eta-\eta_0)) - (\eta - \eta_0) - d\alpha - } - \\&\leq - f(\eta_0) - + - \sup\limits_{v \in R-\eta_0} - \bracket{% - \nabla f(\eta_0)^\top v - + - \frac{1}{2} - v^\top - \sup\limits_{\eta \in R} \var{T_{\tau_{\max}}}_{\eta} - v - } -\end{align*} -where $R-\eta_0 := \set{\eta-\eta_0 : \eta \in R}$. - -An obvious estimate for $f(\eta_0)$ is simply -\begin{align*} - \hat{f}(\eta_0) - := - \frac{1}{N} - \sum\limits_{i=1}^N - \indic{X^i \in A} -\end{align*} -and using Clopper-Pearson, for any $\delta_1 \in [0,1]$, -we have an exact upper bound $\hat{\delta}_0^u$ for this estimate such that -\begin{align*} - \PPP_{\eta_0}\paren{% - f(\eta_0) < \hat{f}(\eta_0) + \hat{\delta}_0^u - } - = - 1-\delta_1 -\end{align*} - -From here, we further assume that $R$ is a convex hull of a finite set of points, -$v_1,\ldots, v_M$ so that the supremum is attained at one of the points by convexity. -Using Cantelli's inequality, -we showed that for any fixed $\delta_2 \in [0,1]$, -there exists random $\hat{c}_m$, $m=1,\ldots, M$, -such that -\begin{align*} - \PPP_{\eta_0}\paren{% - \sup\limits_{v\in R-\eta_0} - \bracket{% - \nabla f(\eta_0)^\top v - + - \frac{1}{2} - v^\top - \sup\limits_{\eta \in R} \var{T_{\tau_{\max}}}_{\eta} - v - } - \leq - \max\limits_{m=1,\ldots, M} \hat{c}_m - } - \geq - 1-\delta_2 -\end{align*} -In particular, we have -\begin{align*} - \hat{c}_m - &= - \widehat{\nabla f}(\eta_0)^\top v_m - + - \sqrt{% - \frac{v_m^\top \var{T_{\tau_{\max}}}_{\eta_0} v_m}{N} - \paren{\frac{1}{\delta_2}-1} - } - + - \frac{1}{2} - v_m^\top - \sup\limits_{\eta \in R} \var{T_{\tau_{\max}}}_{\eta} - v_m -\end{align*} -where -\begin{align*} - \widehat{\nabla f}(\eta_0) - := - \frac{1}{N} \sum\limits_{i=1}^N - (T(X^i) - \nabla A(\eta_0)) \indic{X^i \in A} -\end{align*} - -Combining the two estimates, -\begin{align*} - &\PPP_{\eta_0}\paren{% - \sup\limits_{\eta \in R} f(\eta) - > - \hat{f}(\eta_0) + \hat{\delta}_0^u - + - \max\limits_{m=1,\ldots, M} \hat{c}_m - } - \leq - \\&\qquad - \PPP_{\eta_0}\paren{% - \hat{f}(\eta_0) + \hat{\delta}_0^u - < - f(\eta_0) - } - \\&\qquad + - \PPP_{\eta_0}\paren{% - \max\limits_{m=1,\ldots, M} \hat{c}_m - < - \sup\limits_{v\in R-\eta_0} - \bracket{% - \nabla f(\eta_0)^\top v - + - \frac{1}{2} - v^\top - \sup\limits_{\eta \in R} \var{T_{\tau_{\max}}}_{\eta} - v - } - } - \\&\qquad \leq - \delta_1 + \delta_2 -\end{align*} - -Given a bounded subset of the natural parameter space $H \subseteq \Xi$ -and a finite disjoint covering of $H$, $\set{R_j}_{j=1}^M$, -where, without loss of generality, each $R_j$ belongs to -exactly one configuration of the multiple hypotheses, -we construct the upper bound estimates on each $R_j$. -This gives us a point-wise (in $\eta$) guarantee -that the true Type I error at $\eta$ is no larger than the upper bound estimate -with probability at least $ 1-\delta$ -where $\delta := \delta_1 + \delta_2$. - -We define a few notations before we conclude this section. -For any given $\eta \in H$, if $R_0$ is a partition where $\eta \in R_0$, -and $\eta_0$ is a simulation grid-point associated with $R_0$ -(note that $\eta_0$ need not be inside $R_0$), -then the upper bound quantity is the sum of the following five quantities: -\begin{align*} - \hat{\delta}_0 &:= \hat{f}(\eta_0) \\ - \hat{\delta}_0^u &:= \text{(Clopper-Pearson upper bound with level $\delta_1$)} - \hat{\delta}_0 \\ - \hat{\delta}_1 &:= \widehat{\nabla f}(\eta_0)^\top v_{m^*} \\ - \hat{\delta}_1^u &:= \sqrt{% - \frac{v_{m^*}^\top \var{T_{\tau_{\max}}}_{\eta_0} v_{m^*}}{N} - \paren{\frac{1}{\delta_2}-1} - } \\ - \hat{\delta}_2^u &:= \frac{1}{2} - v_{m^*}^\top \sup\limits_{\eta \in R_0} \var{T_{\tau_{\max}}}_{\eta} v_{m^*} -\end{align*} -where $m^* = \argmax\limits_{m=1,\ldots, M} \hat{c}_m$. - -\section{Generalized Upper Bound Estimate}\label{sec:gen-ub} - -In Section~\ref{sec:orig-ub}, we discussed the old version of the upper bound estimate. -Note that we assumed the gridding occured in the canonical natural parameter space. -In this section, we extend this framework to allow gridding in a different space $\Theta$ -where there exists a twice-continuously differentiable mapping $\eta(\cdot) : \Theta \to \Xi$ -that maps from the grid space to the natural parameter space, $\Xi$. - -Since we changed the gridding space, we must change the Taylor expansion -to be with respect to $\Theta$ space. -We abuse notation by denoting $f(\theta)$ as $f(\eta(\theta))$ -and $f(\eta)$ as in Section~\ref{sec:orig-ub}. -Then, for any $\theta, \theta_0$, -\begin{align*} - f(\theta) - &= - f(\theta_0) - + - \nabla f(\theta_0) (\theta - \theta_0) - + - \int_0^1 (1-\alpha) - (\theta-\theta_0)^\top - \nabla^2 f(\theta_0 + \alpha (\theta-\theta_0)) - (\theta-\theta_0) - d\alpha -\end{align*} -Note that all derivatives are with respect to $\theta$. - -For now, assume we have a function $U_R(v)$ such that -\begin{align*} - \sup\limits_{\theta \in R} - v^\top \nabla^2 f(\theta) v - \leq - U_R(v) -\end{align*} -for any $v$. -In Section~\ref{ssec:hess-quadform-bound}, -we will propose ways of finding such a $U_R$. -Then, -\begin{align*} - \int_0^1 (1-\alpha) v^\top \nabla^2 f(\theta_0 + \alpha v) v d\alpha - \leq - \frac{1}{2} U_R(v) -\end{align*} -where $v = \theta-\theta_0$. - -In summary, we have the bound: -\begin{align*} - \sup\limits_{\theta \in R} - f(\theta) - &= - f(\theta_0) - + - \sup\limits_{v \in R-\theta_0} - \bracket{% - \nabla f(\theta_0)^\top v - + - \int_0^1 (1-\alpha) - v^\top \nabla^2 f(\theta_0 + \alpha v) v - d\alpha - } - \\&\leq - f(\theta_0) - + - \sup\limits_{v \in R-\theta_0} - \bracket{% - \nabla f(\theta_0)^\top v - + - \frac{1}{2} U_R(v) - } -\end{align*} - -\subsection{Constant Order Terms: $\hat{\delta}_0, \hat{\delta}_0^u$} - -The Monte Carlo term $\hat{\delta}_0$ and its corresponding upper bound -$\hat{\delta}_0^u$ need no change from reparametrization -other than the initial evaluation of $\eta_0 := \eta(\theta_0)$. - -\subsection{First Order Term: $\hat{\delta}_1$} - -The first order terms are affected by the $\eta$ transformation. -\begin{align*} - \nabla f(\theta) - := - \nabla_{\theta} P_\theta(A) - &= - \nabla_{\theta} \int_A \frac{P_{\theta}}{P_{\theta_0}} dP_{\theta_0} - = - \int_A \nabla_{\theta} \frac{P_{\theta}}{P_{\theta_0}} dP_{\theta_0} - \\&= - \int_A (D_{\theta}\eta)^\top - \nabla_{\eta} \frac{P_{\eta}}{P_{\eta_0}} dP_{\eta_0} -\end{align*} -where $\eta_0 = \eta(\theta_0)$. -If $\theta_0$ is the point at which we are Taylor expanding, -it suffices to compute this gradient at $\theta = \theta_0$. -This results in -\begin{align*} - \nabla_{\theta} P_{\theta_0}(A) - &= - \int_A (D_{\theta}\eta(\theta_0))^\top (T - \nabla_\eta A(\eta_0)) dP_{\eta_0} -\end{align*} - -Hence, our new gradient Monte Carlo estimate will be -\begin{align*} - \widehat{\nabla f}(\theta_0) - := - D_{\theta} \eta(\theta_0)^\top - \frac{1}{N} - \sum\limits_{i=1}^N - (T(X^i)-\nabla_\eta A(\eta_0)) \indic{X^i \in A} -\end{align*} - -Note that the Jacobian of $\eta$ is known when defining a model -and is simulation-independent. -Hence, we may save the same gradient estimate as in Section~\ref{sec:orig-ub} -and later multiply by $D_{\theta} \eta(\theta_0)^\top$. - -\subsection{Higher Order Upper Bound Terms: $\hat{\delta}_1, \hat{\delta}_1^u, \hat{\delta}_2^u$}% -\label{ssec:higher-order-ub-terms} - -Similar to Section~\ref{sec:orig-ub}, -once we can show for any $v_m = \theta_m - \theta_0$, -where $\theta_m$ are the vertices of a convex hull $R \subseteq \Theta$, -$m=1,\ldots, M$, -there exists a corresponding random $\hat{c}_m$ such that -\[ - \PPP_{\theta_0}\paren{% - \nabla f(\theta_0)^\top v_m - + - \frac{1}{2}U_R(v_m) - \leq - \hat{c}_m - } - \geq 1-\delta_2 -\] -then we have -\[ - \PPP_{\theta_0}\paren{% - \sup\limits_{v\in R-\theta_0} - \bracket{% - \nabla f(\theta_0)^\top v - + - \frac{1}{2}U_R(v) - } - \leq - \max\limits_{m=1,\ldots, M} \hat{c}_m - } - \geq - 1-\delta_2 -\] -as soon as we further assume that $U_R$ is convex. - -Using Cantelli's inequality -with $Y = \widehat{\nabla f}(\theta_0)^\top v_m = \frac{1}{N} \sum\limits_{i=1}^N \widehat{\nabla f}(\theta_0)_i^\top v_m$, -we only need to provide an upper bound on the variance of $\widehat{\nabla f}(\theta_0)_i^\top v_m$, -where $\widehat{\nabla f}(\theta_0)_i := D_\theta \eta(\theta_0)^\top (T(X^i)-\nabla_\eta A(\eta_0)) \indic{X^i \in A}$. -In that endeavor, -\begin{align*} - \var{\widehat{\nabla f}(\theta)_i^\top v_m} - &= - v_m^\top \var{\widehat{\nabla f}(\theta)_i} v_m - \leq - v_m^\top (D_\theta \eta)^\top \var{T_{\tau_{\max}}} (D_\theta \eta) v_m -\end{align*} -The rest of the calculations remain the same. - -Hence, -\begin{align*} - \hat{c}_m - := - \widehat{\nabla f}(\theta_0)^\top v_m - + - \sqrt{ - \frac{v_m^\top (D_\theta \eta(\theta_0))^\top \var{T_{\tau_{\max}}}_{\eta_0} (D_\theta \eta(\theta_0)) v_m}{N} - \paren{\frac{1}{\delta_2} - 1} - } - + - \frac{1}{2} U_R(v_m) -\end{align*} - -This gives us our new upper bound estimates: -\begin{align*} - \hat{\delta}_{0, \new} &:= \hat{\delta}_0 \\ - \hat{\delta}_{0, \new}^u &:= \hat{\delta}_0^u \\ - \hat{\delta}_{1, \new} &:= v_{m^*}^\top D_\theta \eta(\theta_0)^\top \hat{\delta}_1 \\ - \hat{\delta}_{1, \new}^u &:= \sqrt{% - \frac{v_{m^*}^\top D\eta(\theta_0)^\top \var{T_{\tau_{\max}}}_{\eta_0} D\eta(\theta_0) v_{m^*}}{N} - \paren{\frac{1}{\delta_2}-1} - } \\ - \hat{\delta}_{2, \new}^u &:= - \frac{1}{2} U_R(v_{m^*}) -\end{align*} -where $m^* = \argmax\limits_{m=1,\ldots, M} \hat{c}_m$. - - -\subsection{Hessian Quadratic Form Bound}\label{ssec:hess-quadform-bound} - -As mentioned in Section~\ref{sec:gen-ub}, -we will now discuss a way to find the upper bound $U_R(v)$ to -$\sup\limits_{\theta \in R} v^\top \nabla^2 f(\theta) v$. -In Section~\ref{ssec:higher-order-ub-terms}, -we made the additional assumption that $U_R$ is convex, -so it is crucial this assumption is met. - -We will first bound $\nabla^2 f(\theta)$. -\begin{align*} - \nabla^2 f(\theta) - &= - \int_A \nabla^2 P_\theta(x) dx -\end{align*} -Applying the multivariate chain-rule for the function -$\theta \mapsto P_{\eta(\theta)}(x)$, -we have that -\begin{align*} - \nabla^2 P_\theta(x) - &= - (D\eta)^\top \nabla^2 P_\eta(x) (D\eta) - + - \sum\limits_{k=1}^d - \frac{\partial P_\eta}{\partial \eta_k} - \nabla^2 \eta_k -\end{align*} -~\cite{skorski:2019:hess}. - -It is easy to see that -\begin{align*} - -\var{T_{\tau_{\max}}}_{\eta} - \preceq - \int_A \nabla^2 P_{\eta}(x) dx - \preceq - \var{T_{\tau_{\max}}}_{\eta} -\end{align*} - -Note that if $S \preceq T$ -for any square matrices $S, T$, -then we must have that for any matrix $A$, -$A^\top S A \preceq A^\top T A$. -This is because $S \preceq T$ -if and only if $T - S$ is positive semi-definite, -and $A^\top (T-S) A$ is clearly positive semi-definite as well. -Rearranging, we have our claim. -Hence, -\begin{align*} - -(D\eta)^\top - \var{T_{\tau_{\max}}}_{\eta} - (D\eta) - \preceq - (D\eta)^\top - \int_A \nabla^2 P_{\eta}(x) dx - (D\eta) - \preceq - (D\eta)^\top - \var{T_{\tau_{\max}}}_{\eta} - (D\eta) -\end{align*} - -This gives us the first bound: -\begin{align} - v^\top \nabla^2 f(\theta) v - \leq - v^\top (D\eta)^\top \var{T_{\tau_{\max}}}_{\eta} (D\eta) v - + - \sum\limits_{k=1}^d - v^\top \nabla^2 \eta_k v - \int_A (T(x) - \nabla A(\eta))_k P_\eta(x) dx - \label{eq:hess-second-term} -\end{align} - -We next bound the second term in Eq.~\ref{eq:hess-second-term}. -\begin{align*} - \int_A \abs{(T(x) - \nabla A(\eta))_k} P_\eta(x) dx - &\leq - \int \abs{(T(x) - \nabla A(\eta))_k} P_\eta(x) dx - \\&\leq - \paren{\int \abs{(T(x) - \nabla A(\eta))_k}^2 P_\eta(x) dx}^{1/2} - \\&= - \sqrt{\var{T_k}_\eta} -\end{align*} - -Combining with Eq.~\ref{eq:hess-second-term}, -\begin{align*} - \sup\limits_{\theta \in R} - v^\top \nabla^2 f(\theta) v - &\leq - \sup\limits_{\theta \in R} - \bracket{ - v^\top (D\eta(\theta))^\top \var{T_{\tau_{\max}}}_{\eta(\theta)} (D\eta(\theta)) v - } - + - \sum\limits_{k=1}^d - \sup\limits_{\theta \in R} - \bracket{% - \abs{v^\top \nabla^2 \eta_k(\theta) v} - \sqrt{\var{T_k}_{\eta(\theta)}} - } - \\&\leq - \sup\limits_{\theta \in R} - \bracket{ - v^\top (D\eta(\theta))^\top \var{T_{\tau_{\max}}}_{\eta(\theta)} (D\eta(\theta)) v - } - + - \norm{v}^2 - \sum\limits_{k=1}^d - \sup\limits_{\theta \in R} - \bracket{% - \norm{\nabla^2 \eta_k(\theta)}_{op} - \sqrt{\var{T_k}_{\eta(\theta)}} - } - \\&=: - U_1(v) + U_2(v) - =: - U_R(v) -\end{align*} -where $U_i$ are defined to be the respective terms. -Note that $U_R$ is convex. -Also note that $U_2(v) = 0$ for any linear transformation $\eta$. -In particular, for the identity transformation, it simplifies to -\begin{align*} - U_R(v) = U_1(v) = \sup\limits_{\theta \in R} v^\top \var{T_{\tau_{\max}}}_{\eta(\theta)} v -\end{align*} -which can be further bounded above by the usual formula -\begin{align*} - v^\top \sup\limits_{\theta \in R} \var{T_{\tau_{\max}}}_{\eta(\theta)} v -\end{align*} -where the sup is element-wise. -Note that in general, we can make $U_R(v)$ even more conservative -by taking further upper bounds to make the computations more tractable. -The only constraint is that the resulting bound must be convex. - - -\bibliography{references}{} -\bibliographystyle{plain} - -\end{document} diff --git a/docs/math/bound/references.bib b/docs/math/bound/references.bib deleted file mode 100644 index 0b1caa07..00000000 --- a/docs/math/bound/references.bib +++ /dev/null @@ -1,14 +0,0 @@ -@article{skorski:2019:hess, - author = {Maciej Skorski}, - title = {Chain Rules for Hessian and Higher Derivatives Made Easy by Tensor - Calculus}, - journal = {CoRR}, - volume = {abs/1911.13292}, - year = {2019}, - url = {http://arxiv.org/abs/1911.13292}, - eprinttype = {arXiv}, - eprint = {1911.13292}, - timestamp = {Wed, 08 Jan 2020 15:28:22 +0100}, - biburl = {https://dblp.org/rec/journals/corr/abs-1911-13292.bib}, - bibsource = {dblp computer science bibliography, https://dblp.org} -} diff --git a/docs/math/model/exp_control_k_treatment/doc.pdf b/docs/math/model/exp_control_k_treatment/doc.pdf deleted file mode 100644 index e9de5447..00000000 Binary files a/docs/math/model/exp_control_k_treatment/doc.pdf and /dev/null differ diff --git a/docs/math/model/exp_control_k_treatment/doc.tex b/docs/math/model/exp_control_k_treatment/doc.tex deleted file mode 100644 index a5feeb47..00000000 --- a/docs/math/model/exp_control_k_treatment/doc.tex +++ /dev/null @@ -1,267 +0,0 @@ -\documentclass[10pt, a4paper]{article} -\input{../../../latex/mathtools} -\usepackage{cite} -\usepackage{fullpage} - -\begin{document} -\title{Exponential Model} -\author{James Yang} -\maketitle - -\section{Introduction} - -The exponential model is one where each arm $i$ is assumed to follow -an exponential distribution with hazard $\lambda_i$. -Depending on the design procedure (the test statistic) -there are numerous choices of grid spaces and parametrizations -of the natural parameter space. -This document will focus on the log-rank statistic with two arms -(control and a treatment). - -\section{Model Assumptions}\label{sec:model} - -Assume that there are $n$ patients in each of the $d=2$ arms -with independent $X_{ci} \sim E(\lambda_c), X_{ti} \sim E(\lambda_t)$, -$i=1,\ldots, n$. -$X_{c\cdot}$ are the samples for the control arm and -$X_{t\cdot}$ are for the treatment arm. -Then, the distribution of $X \in \R^{n \times 2}$ forms an exponential family -with sufficient statistic $T(x) = \paren{\sum\limits_{i=1}^n x_{ci}, \sum\limits_{i=1}^n x_{ti}}$ -natural parameter $\eta = (-\lambda_c, -\lambda_t)$, -and log-partition function $A(\eta) := -n\log(\eta_c \eta_t)$. - -\section{Grid Space} - -Since the log-rank statistic only depends on the hazard rate -$h = \lambda_t / \lambda_c$, -it is convenient to parametrize the natural parameter space -as a function of $(\lambda_c, h)$. -Moreover, we will see in Section~\ref{ssec:max-cov-quad-form} -that we get major computation benefits of parametrizing in the log-space -$\theta = (\log(\lambda_c), \log(h))$. - -This parametrization defines a mapping $\eta(\theta) = \paren{-e^{\theta_1}, -e^{\theta_1+\theta_2}}$ -from the grid space to the natural parameter space. -We conclude this section with the Jacobian and hessian computations -needed in the later sections. -\begin{align} - D_\theta \eta(\theta) - &= - \begin{bmatrix} - -e^{\theta_1} & 0 \\ - -e^{\theta_1+\theta_2} & -e^{\theta_1+\theta_2} - \end{bmatrix} - \label{eq:eta-jac} - \\ - \nabla^2_\theta \eta_1(\theta) - &= - -e^{\theta_1} e_1e_1^\top - \label{eq:eta-1-hess} - \\ - \nabla^2_\theta \eta_2(\theta) - &= - -e^{\theta_1+\theta_2} \vec{1} \vec{1}^\top - \label{eq:eta-2-hess} -\end{align} -where $ e_i$ is the ith standard basis vector -and $ \vec{1}$ is a vector of ones. - -\section{Upper Bound} - -For any model, we must be able to compute -the upper bound estimate. -The generalized upper bound estimate requires model-specific quantities, -which are given by -\begin{align*} - \text{Gradient Term}&: T(x) - \nabla_\eta A(\eta) \\ - \text{$\eta$ transform}&: D_\theta\eta(\theta) v \\ - \text{Covariance quadratic form}&: u^\top \var{T}_{\eta} u \\ - \text{Max covariance quadratic form}&: - \sup\limits_{\theta \in R} \bracket{v^\top (D\eta(\theta))^\top \var{T}_{\eta(\theta)} (D\eta(\theta)) v} \\ - \text{Max covariance and $\eta$ hessian}&: - \norm{v}^2 - \sum\limits_{k=1}^d - \sup\limits_{\theta \in R} - \bracket{% - \norm{\nabla^2 \eta_k(\theta)}_{op} - \sqrt{\var{T_k}_{\eta(\theta)}} - } -\end{align*} -for any $v, u \in \R^d$ and a bounded subset $R \subseteq \R^d$. - -The next few subsections will derive the formulas -for each of the quantities above. - -\subsection{Gradient Term} - -As shown in Section~\ref{sec:model}, -we have the form for $T(x)$ and $A(\eta)$. -\begin{align*} - \nabla_\eta A(\eta) - &= - -n \paren{\eta_c^{-1}, \eta_t^{-1}} - = - n \paren{\lambda_c^{-1}, \lambda_t^{-1}} -\end{align*} -This gives us -\begin{align*} - T(x) - \nabla_\eta A(\eta) - &= - \paren{% - \sum\limits_{i=1}^n x_{ci} - n\lambda_c^{-1}, - \sum\limits_{i=1}^n x_{ti} - n\lambda_t^{-1} - } -\end{align*} - -\subsection{$\eta$ Transform} - -Using Eq.~\ref{eq:eta-jac}, -for any $v \in \R^d$, -\begin{align*} - D_\theta \eta(\theta) v - &= - - - \begin{bmatrix} - e^{\theta_1} & 0 \\ - e^{\theta_1+\theta_2} & e^{\theta_1+\theta_2} - \end{bmatrix} - v - = - - - \begin{bmatrix} - e^{\theta_1} v_1 \\ - e^{\theta_1+\theta_2} (v_1+v_2) - \end{bmatrix} - = - - - \begin{bmatrix} - \lambda_c v_1 \\ - \lambda_t (v_1+v_2) - \end{bmatrix} -\end{align*} - -\subsection{Covariance Quadratic Form} - -The covariance of $T$ is given by -\begin{align} - \var{T}_\eta &= - n - \begin{bmatrix} - \eta_c^{-2} & 0 \\ - 0 & \eta_t^{-2} - \end{bmatrix} - = - n - \begin{bmatrix} - \lambda_c^{-2} & 0 \\ - 0 & \lambda_t^{-2} - \end{bmatrix} - \label{eq:t-cov} -\end{align} -and so, -\begin{align*} - u^\top \var{T}_\eta u &= - n (u_1^2 \lambda_c^{-2} + u_2^2 \lambda_t^{-2}) -\end{align*} - -\subsection{Max Covariance Quadratic Form}\label{ssec:max-cov-quad-form} - -Using Eq.~\ref{eq:eta-jac},~\ref{eq:t-cov}, -\begin{align*} - D_\theta \eta(\theta)^\top - \var{T}_\eta - D_\theta \eta(\theta) - &= - n - D_\theta \eta(\theta)^\top - \begin{bmatrix} - \eta_c^{-2} & 0 \\ - 0 & \eta_t^{-2} - \end{bmatrix} - \begin{bmatrix} - e^{\theta_1} & 0 \\ - e^{\theta_1+\theta_2} & e^{\theta_1+\theta_2} - \end{bmatrix} - \\&= - n - D_\theta \eta(\theta)^\top - \begin{bmatrix} - e^{-2\theta_1} & 0 \\ - 0 & e^{-2(\theta_1+\theta_2)} - \end{bmatrix} - \begin{bmatrix} - e^{\theta_1} & 0 \\ - e^{\theta_1+\theta_2} & e^{\theta_1+\theta_2} - \end{bmatrix} - \\&= - n - \begin{bmatrix} - e^{\theta_1} & e^{\theta_1+\theta_2} \\ - 0 & e^{\theta_1+\theta_2} - \end{bmatrix} - \begin{bmatrix} - e^{-\theta_1} & 0 \\ - e^{-(\theta_1+\theta_2)} & e^{-(\theta_1+\theta_2)} - \end{bmatrix} - \\&= - n - \begin{bmatrix} - 2 & 1 \\ - 1 & 1 - \end{bmatrix} -\end{align*} -Note the incredible simplification due to our choice of the $\eta$ transformation. -This gives us -\begin{align*} - \sup\limits_{\theta \in R} \bracket{% - v^\top - D_\theta \eta(\theta)^\top - \var{T}_\eta - D_\theta \eta(\theta) - v - } - &= - n v^\top - \begin{bmatrix} - 2 & 1 \\ - 1 & 1 - \end{bmatrix} - v -\end{align*} - -\subsection{Max Covariance and $\eta$ Hessian} - -From Eq.~\ref{eq:eta-1-hess},~\ref{eq:eta-2-hess}, -\begin{align*} - \norm{\nabla^2 \eta_1(\theta)}_{op} - &= - e^{\theta_1} \norm{e_1 e_1^\top}_{op} - = - e^{\theta_1} - \\ - \norm{\nabla^2 \eta_2(\theta)}_{op} - &= - e^{\theta_1+\theta_2} \norm{\vec{1}\vec{1}^\top}_{op} - = - e^{\theta_1+\theta_2} d -\end{align*} - -This gives us -\begin{align*} - \norm{v}^2 - \sum\limits_{k=1}^d - \sup\limits_{\theta \in R} - \bracket{% - \norm{\nabla^2 \eta_k(\theta)}_{op} - \sqrt{\var{T_k}_{\eta(\theta)}} - } - &= - \norm{v}^2 - \sqrt{n} - \paren{% - 1 + d - } -\end{align*} - - -\end{document} diff --git a/environment.yml b/environment.yml index 6fd70176..60237bc1 100644 --- a/environment.yml +++ b/environment.yml @@ -2,43 +2,7 @@ name: imprint channels: - conda-forge dependencies: -# essentials - - python - - setuptools - - jupyterlab - - ipykernel - - numpy - - scipy - - matplotlib - - sympy - - pandas - -# C++ toolchain - - cxx-compiler - - clang-tools - - bazel - -# some more nice stuff for easy dev. - - pytest - - pre-commit - - black - - flake8 - - isort - - jupytext - - cython - - line_profiler + - python=3.10 - pip - - seaborn - -# numerical tools - - jax==0.3.7 - - jaxlib==0.3.7 - - numpyro - -# dependencies only available from pip. -# - cppimport is only used for a few things in the research folder so we don't -# need to worry about it much. That code could be removed safely. -# - pybind11[global] is only used by the same cppimport code. - pip: - - "pybind11[global]" - - cppimport \ No newline at end of file + - poetry==1.2.2 \ No newline at end of file diff --git a/frontend/.gitignore b/frontend/.gitignore index 95004389..d4bfd63c 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -44,3 +44,6 @@ yarn-error.log* npm-debug.log* yarn-debug.log* yarn-error.log* + +# local folders +my-app/ diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 33b406a3..c76d29ce 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,7 +1,7 @@ { "name": "frontend", "version": "0.1.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -34,12 +34,18 @@ "@types/plotly.js-dist": "npm:@types/plotly.js@^1.54.20" } }, + "node_modules/@adobe/css-tools": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", + "integrity": "sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==" + }, "node_modules/@ampproject/remapping": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", - "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -57,32 +63,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "dependencies": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", + "json5": "^2.2.1", "semver": "^6.3.0" }, "engines": { @@ -94,11 +100,11 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz", - "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz", + "integrity": "sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==", "dependencies": { - "eslint-scope": "^5.1.1", + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", "semver": "^6.3.0" }, @@ -110,18 +116,6 @@ "eslint": "^7.5.0 || ^8.0.0" } }, - "node_modules/@babel/eslint-parser/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==", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -130,20 +124,12 @@ "node": ">=10" } }, - "node_modules/@babel/eslint-parser/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, "node_modules/@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dependencies": { - "@babel/types": "^7.18.7", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -151,6 +137,19 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/generator/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==", + "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/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -163,25 +162,25 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dependencies": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -192,16 +191,16 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -212,12 +211,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.2.1" }, "engines": { "node": ">=6.9.0" @@ -227,14 +226,12 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "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", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -245,31 +242,31 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -287,11 +284,11 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -309,18 +306,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -338,58 +335,62 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.20.2" }, "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==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -406,10 +407,18 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "engines": { "node": ">=6.9.0" } @@ -423,27 +432,27 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" @@ -463,9 +472,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -474,11 +483,11 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "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.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.18.6", + "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.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -488,13 +497,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -504,12 +513,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -520,12 +530,12 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -535,12 +545,12 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -551,15 +561,15 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.6.tgz", - "integrity": "sha512-gAdhsjaYmiZVxx5vTMiRfj31nB7LhwBJFMSLzeDxc7X4tKLixup0+k9ughn0RcpBrv9E3PBaXJW7jF5TCihAOg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.5.tgz", + "integrity": "sha512-Lac7PpRJXcC3s9cKsBfl+uc+DYXU5FD06BrTFunQO6QIQT+DwyzDPURAowI3bcvD1dZF/ank1Z5rstUJn3Hn4Q==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.18.6" + "@babel/plugin-syntax-decorators": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -569,11 +579,11 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -584,11 +594,11 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -599,11 +609,11 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -614,11 +624,11 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -629,11 +639,11 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -644,11 +654,11 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -659,15 +669,15 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.20.1" }, "engines": { "node": ">=6.9.0" @@ -677,11 +687,11 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -692,12 +702,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -708,12 +718,12 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -723,13 +733,13 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -740,12 +750,12 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=4" @@ -802,11 +812,11 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.18.6.tgz", - "integrity": "sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", + "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -851,6 +861,20 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", @@ -874,11 +898,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -982,11 +1006,11 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -996,11 +1020,11 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1010,13 +1034,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1026,11 +1050,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1040,11 +1064,11 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1054,17 +1078,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, "engines": { @@ -1075,11 +1100,11 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1089,11 +1114,11 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1103,12 +1128,12 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1118,11 +1143,11 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1132,12 +1157,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1147,11 +1172,11 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.6.tgz", - "integrity": "sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz", + "integrity": "sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-flow": "^7.18.6" }, "engines": { @@ -1162,11 +1187,11 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1176,13 +1201,13 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1192,11 +1217,11 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1206,11 +1231,11 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1220,13 +1245,12 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1236,14 +1260,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1253,15 +1276,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1271,12 +1293,12 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1286,11 +1308,12 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1300,11 +1323,11 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1314,12 +1337,12 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1329,11 +1352,11 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1343,11 +1366,11 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1357,11 +1380,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", - "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.20.2.tgz", + "integrity": "sha512-KS/G8YI8uwMGKErLFOHS/ekhqdHhpEloxs43NecQHVgo2QuQSyJhGIY1fL8UGl9wy5ItVwwoUL4YxVqsplGq2g==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1371,11 +1394,11 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1385,15 +1408,15 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1403,11 +1426,11 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1417,12 +1440,12 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1432,11 +1455,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dependencies": { - "regenerator-transform": "^0.14.2" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1446,11 +1470,11 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1460,15 +1484,15 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz", - "integrity": "sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", "dependencies": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", "semver": "^6.3.0" }, "engines": { @@ -1479,11 +1503,11 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1493,12 +1517,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1508,11 +1532,11 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1522,11 +1546,11 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1536,11 +1560,11 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1550,13 +1574,13 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz", - "integrity": "sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", + "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-typescript": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.20.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1566,11 +1590,11 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1580,12 +1604,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1595,36 +1619,37 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dependencies": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@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-import-assertions": "^7.20.0", "@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", @@ -1634,44 +1659,44 @@ "@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.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.20.2", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.20.1", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", + "@babel/types": "^7.20.2", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "engines": { @@ -1697,16 +1722,16 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1732,54 +1757,54 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.6.tgz", - "integrity": "sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", "dependencies": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.20.5", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1788,11 +1813,12 @@ } }, "node_modules/@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1809,10 +1835,29 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, "node_modules/@csstools/postcss-color-function": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", - "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -1820,42 +1865,54 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -1863,56 +1920,91 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" } }, "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", - "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, - "node_modules/@csstools/postcss-normalize-display-values": { + "node_modules/@csstools/postcss-nested-calc": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" } }, - "node_modules/@csstools/postcss-oklab-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", - "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, - "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", "dependencies": { "postcss-value-parser": "^4.2.0" @@ -1924,105 +2016,155 @@ "postcss": "^8.3" } }, - "node_modules/@emotion/babel-plugin": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", - "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==", - "dependencies": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.0.13" + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "postcss": "^8.2" } }, - "node_modules/@emotion/babel-plugin/node_modules/babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", "dependencies": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "node_modules/@emotion/babel-plugin/node_modules/cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" + "postcss-value-parser": "^4.2.0" }, "engines": { - "node": ">=8" + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" } }, - "node_modules/@emotion/babel-plugin/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==", + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", "engines": { - "node": ">=10" + "node": "^12 || ^14 || >=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.5.tgz", + "integrity": "sha512-xE7/hyLHJac7D2Ve9dKroBBZqBT7WuPQmWcq7HSGb84sUuP4mlOWoB8dvVfD9yk5DHkU1m6RW7xSoDtnQHNQeA==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/serialize": "^1.1.1", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.1.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@emotion/cache": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", - "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.5.tgz", + "integrity": "sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==", "dependencies": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" + "@emotion/memoize": "^0.8.0", + "@emotion/sheet": "^1.2.1", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", + "stylis": "4.1.3" } }, "node_modules/@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.1.tgz", - "integrity": "sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.0.tgz", + "integrity": "sha512-3aDpDprjM0AwaxGE09bOPkNxHpBd+kA6jty3RnaEXdweX1DF1U3VQpPYb0g1IStAuK7SVQ1cy+bNBBKp4W3Fjg==", "dependencies": { - "@emotion/memoize": "^0.7.4" + "@emotion/memoize": "^0.8.0" } }, "node_modules/@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.0.tgz", + "integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==" }, "node_modules/@emotion/react": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz", - "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==", - "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.2", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.5.tgz", + "integrity": "sha512-TZs6235tCJ/7iF6/rvTaOH4oxQg2gMAcdHemjwLKIjKz4rRuYe1HJ2TQJKnAcRAfOUDdU8XoDadCe1rl72iv8A==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/cache": "^11.10.5", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0", + "@emotion/weak-memoize": "^0.3.0", "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { @@ -2039,32 +2181,33 @@ } }, "node_modules/@emotion/serialize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", - "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==", "dependencies": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", + "@emotion/hash": "^0.9.0", + "@emotion/memoize": "^0.8.0", + "@emotion/unitless": "^0.8.0", + "@emotion/utils": "^1.2.0", "csstype": "^3.0.2" } }, "node_modules/@emotion/sheet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.1.tgz", + "integrity": "sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==" }, "node_modules/@emotion/styled": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.6.0.tgz", - "integrity": "sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw==", + "version": "11.10.5", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.5.tgz", + "integrity": "sha512-8EP6dD7dMkdku2foLoruPCNkRevzdcBaY6q0l0OsbyJK+x8D9HWjX27ARiSIKNF634hY9Zdoedh8bJCiva8yZw==", "dependencies": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.3.0", - "@emotion/is-prop-valid": "^1.1.1", - "@emotion/serialize": "^1.0.2", - "@emotion/utils": "^1.0.0" + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.10.5", + "@emotion/is-prop-valid": "^1.2.0", + "@emotion/serialize": "^1.1.1", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0", + "@emotion/utils": "^1.2.0" }, "peerDependencies": { "@babel/core": "^7.0.0", @@ -2081,37 +2224,48 @@ } }, "node_modules/@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" }, - "node_modules/@emotion/utils": { + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", - "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz", + "integrity": "sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==" }, "node_modules/@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.0.tgz", + "integrity": "sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==" }, "node_modules/@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", + "espree": "^9.4.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/argparse": { @@ -2120,9 +2274,9 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dependencies": { "type-fest": "^0.20.2" }, @@ -2156,18 +2310,30 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -2244,6 +2410,14 @@ "node": ">=8" } }, + "node_modules/@istanbuljs/load-nyc-config/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==", + "engines": { + "node": ">=8" + } + }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", @@ -2600,6 +2774,17 @@ "node": ">=8" } }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, "node_modules/@jest/source-map": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", @@ -2826,22 +3011,21 @@ } }, "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==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "engines": { "node": ">=6.0.0" } @@ -2854,32 +3038,60 @@ "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==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/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==", + "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/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "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==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.68", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.68.tgz", - "integrity": "sha512-q+3gX6EHuM/AyOn8fkoANQxSzIHBeuNsrGgb7SPP0y7NuM+4ZHG/b9882+OfHcilaSqPDWUQoLbphcBpw/m/RA==", - "dependencies": { - "@babel/runtime": "^7.17.0", - "@emotion/is-prop-valid": "^1.1.1", - "@mui/utils": "^5.4.1", - "@popperjs/core": "^2.4.4", - "clsx": "^1.1.1", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "version": "5.0.0-alpha.109", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.109.tgz", + "integrity": "sha512-UQxoONPI3ntzxcD/cbFHl+Lp2xsVj6HpKmU9QhUZ2kZ2K2yej2QJyU1gnADoWl/Hu94VrvwSSRnjTjR3HvXO/g==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@emotion/is-prop-valid": "^1.2.0", + "@mui/types": "^7.2.2", + "@mui/utils": "^5.10.16", + "@popperjs/core": "^2.11.6", + "clsx": "^1.2.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" }, "engines": { "node": ">=12.0.0" @@ -2889,9 +3101,9 @@ "url": "https://opencollective.com/mui" }, "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0" + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2899,23 +3111,32 @@ } } }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.10.17", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.17.tgz", + "integrity": "sha512-iNwUuMA30nrN0tiEkeD3zaczv7Tk2jlZIDbXRnijAsYXkZtl/xEzQsVRIPYRDuyEz6D18vQJhV8h7gPUXEubTg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui" + } + }, "node_modules/@mui/material": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.4.1.tgz", - "integrity": "sha512-SxAT43UAjFTBBpJrN+oGrv40xP1uCa5Z49NfHt3m93xYeFzbxKOk0V9IKU7zlUjbsaVQ0i+o24yF5GULZmynlA==", - "dependencies": { - "@babel/runtime": "^7.17.0", - "@mui/base": "5.0.0-alpha.68", - "@mui/system": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "@types/react-transition-group": "^4.4.4", - "clsx": "^1.1.1", - "csstype": "^3.0.10", - "hoist-non-react-statics": "^3.3.2", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "react-transition-group": "^4.4.2" + "version": "5.10.17", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.17.tgz", + "integrity": "sha512-Kuqgv1qI5HXnc/Xu426xhCGYBSKzplb+xFNLitbnIb92Qx8jmcpfNpFlDJa2kD2H6qP66rr/m4c/zMUfGX/xBQ==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@mui/base": "5.0.0-alpha.109", + "@mui/core-downloads-tracker": "^5.10.17", + "@mui/system": "^5.10.17", + "@mui/types": "^7.2.2", + "@mui/utils": "^5.10.16", + "@types/react-transition-group": "^4.4.5", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" }, "engines": { "node": ">=12.0.0" @@ -2927,9 +3148,9 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.0", - "react-dom": "^17.0.0" + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -2944,13 +3165,13 @@ } }, "node_modules/@mui/private-theming": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.4.1.tgz", - "integrity": "sha512-Xbc4MXFZxv0A3hoc4TSDBhzjhstppKfc+gQcTMqqBZQP7KjnmxF+wO7rEPQuYRBihjCqQBdrHIGMLsKWrhkZkQ==", + "version": "5.10.16", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.16.tgz", + "integrity": "sha512-0MArkJaOHRCKqL/GWjngGZmyOeRz+uxffhx82bKcewr8swqV7xx7EFP02pk0L/gLdfcvYdqwH4YTVjG/+TaKrg==", "dependencies": { - "@babel/runtime": "^7.17.0", - "@mui/utils": "^5.4.1", - "prop-types": "^15.7.2" + "@babel/runtime": "^7.20.1", + "@mui/utils": "^5.10.16", + "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" @@ -2960,8 +3181,8 @@ "url": "https://opencollective.com/mui" }, "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.0" + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -2970,13 +3191,14 @@ } }, "node_modules/@mui/styled-engine": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.4.1.tgz", - "integrity": "sha512-CFLNJkopRoAuShkgUZOTBVxdTlKu4w6L4kOwPi4r3QB2XXS6O5kyLHSsg9huUbtOYk5Dv5UZyUSc5pw4J7ezdg==", + "version": "5.10.16", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.16.tgz", + "integrity": "sha512-ZMSjXvtiGwGDKqrSlXhpxK2voUaF2/lpC/pSTfFmZvKH9j9a9h1/iwo3ybgjFVYGgbfNeW4h0xEchiRohu9xsw==", "dependencies": { - "@babel/runtime": "^7.17.0", - "@emotion/cache": "^11.7.1", - "prop-types": "^15.7.2" + "@babel/runtime": "^7.20.1", + "@emotion/cache": "^11.10.5", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" @@ -2988,7 +3210,7 @@ "peerDependencies": { "@emotion/react": "^11.4.1", "@emotion/styled": "^11.3.0", - "react": "^17.0.0" + "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -3000,27 +3222,27 @@ } }, "node_modules/@mui/styles": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.4.1.tgz", - "integrity": "sha512-ekw2NBC06re0H9SvCA1XgtFcghB8AQdGPXD3mjIz5ik+X+LvR+f2TeoCpJpkKp7UQdcNn6uuYi6BO6irTiQhdw==", - "dependencies": { - "@babel/runtime": "^7.17.0", - "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "clsx": "^1.1.1", - "csstype": "^3.0.10", + "version": "5.10.16", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.10.16.tgz", + "integrity": "sha512-GYxY9pAx/mIAF3l9QJhTfWyUdT18UyjXHRmfPFgDupphTyHumrVE4rgYoTFordmzMWr+1kaS0mAUvDfziGncGA==", + "dependencies": { + "@babel/runtime": "^7.20.1", + "@emotion/hash": "^0.9.0", + "@mui/private-theming": "^5.10.16", + "@mui/types": "^7.2.2", + "@mui/utils": "^5.10.16", + "clsx": "^1.2.1", + "csstype": "^3.1.1", "hoist-non-react-statics": "^3.3.2", - "jss": "^10.8.2", - "jss-plugin-camel-case": "^10.8.2", - "jss-plugin-default-unit": "^10.8.2", - "jss-plugin-global": "^10.8.2", - "jss-plugin-nested": "^10.8.2", - "jss-plugin-props-sort": "^10.8.2", - "jss-plugin-rule-value-function": "^10.8.2", - "jss-plugin-vendor-prefixer": "^10.8.2", - "prop-types": "^15.7.2" + "jss": "^10.9.2", + "jss-plugin-camel-case": "^10.9.2", + "jss-plugin-default-unit": "^10.9.2", + "jss-plugin-global": "^10.9.2", + "jss-plugin-nested": "^10.9.2", + "jss-plugin-props-sort": "^10.9.2", + "jss-plugin-rule-value-function": "^10.9.2", + "jss-plugin-vendor-prefixer": "^10.9.2", + "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" @@ -3030,7 +3252,7 @@ "url": "https://opencollective.com/mui" }, "peerDependencies": { - "@types/react": "^16.8.6 || ^17.0.0", + "@types/react": "^17.0.0", "react": "^17.0.0" }, "peerDependenciesMeta": { @@ -3040,18 +3262,18 @@ } }, "node_modules/@mui/system": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.4.1.tgz", - "integrity": "sha512-07JBYf9iQdxIHZU8cFOLoxBnkQDUPLb7UBhNxo4998yEqpWFJ00WKgEVYBKvPl0X+MRU/20wqFz6yGIuCx4AeA==", + "version": "5.10.17", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.17.tgz", + "integrity": "sha512-UYzAOSK7uxkMsUssqrIUW3lnOuQpU8vqh4hLwfSw+GYAnQo3qjK4m4NhlDx+pFpsjjiGnr3K+vrSH+aIAMbcLg==", "dependencies": { - "@babel/runtime": "^7.17.0", - "@mui/private-theming": "^5.4.1", - "@mui/styled-engine": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "clsx": "^1.1.1", - "csstype": "^3.0.10", - "prop-types": "^15.7.2" + "@babel/runtime": "^7.20.1", + "@mui/private-theming": "^5.10.16", + "@mui/styled-engine": "^5.10.16", + "@mui/types": "^7.2.2", + "@mui/utils": "^5.10.16", + "clsx": "^1.2.1", + "csstype": "^3.1.1", + "prop-types": "^15.8.1" }, "engines": { "node": ">=12.0.0" @@ -3063,8 +3285,8 @@ "peerDependencies": { "@emotion/react": "^11.5.0", "@emotion/styled": "^11.3.0", - "@types/react": "^16.8.6 || ^17.0.0", - "react": "^17.0.0" + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" }, "peerDependenciesMeta": { "@emotion/react": { @@ -3079,9 +3301,9 @@ } }, "node_modules/@mui/types": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.1.tgz", - "integrity": "sha512-33hbHFLCwenTpS+T4m4Cz7cQ/ng5g+IgtINkw1uDBVvi1oM83VNt/IGzWIQNPK8H2pr0WIfkmboD501bVdYsPw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.2.tgz", + "integrity": "sha512-siex8cZDtWeC916cXOoUOnEQQejuMYmHtc4hM6VkKVYaBICz3VIiqyiAomRboTQHt2jchxQ5Q5ATlbcDekTxDA==", "peerDependencies": { "@types/react": "*" }, @@ -3092,15 +3314,15 @@ } }, "node_modules/@mui/utils": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.4.1.tgz", - "integrity": "sha512-5HzM+ZjlQqbSp7UTOvLlhAjkWB+o9Z4NzO0W+yhZ1KnxITr+zr/MBzYmmQ3kyvhui8pyhgRDoTcVgwb+02ZUZA==", + "version": "5.10.16", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.16.tgz", + "integrity": "sha512-3MB/SGsgiiu9Z55CFmAfiONUoR7AAue/H4F6w3mc2LnhFQCsoVvXhioDPcsiRpUMIQr34jDPzGXdCuqWooPCXQ==", "dependencies": { - "@babel/runtime": "^7.17.0", - "@types/prop-types": "^15.7.4", + "@babel/runtime": "^7.20.1", + "@types/prop-types": "^15.7.5", "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" + "prop-types": "^15.8.1", + "react-is": "^18.2.0" }, "engines": { "node": ">=12.0.0" @@ -3110,7 +3332,35 @@ "url": "https://opencollective.com/mui" }, "peerDependencies": { - "react": "^17.0.0" + "react": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" } }, "node_modules/@nodelib/fs.scandir": { @@ -3146,17 +3396,17 @@ } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.10.tgz", + "integrity": "sha512-j0Ya0hCFZPd4x40qLzbhGsh9TMtdb+CJQiso+WxLOPNasohq9cc5SNUcwsZaRH6++Xh91Xkm/xHCkuIiIu0LUA==", "dependencies": { "ansi-html-community": "^0.0.8", "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", + "core-js-pure": "^3.23.3", "error-stack-parser": "^2.0.6", "find-up": "^5.0.0", "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", + "loader-utils": "^2.0.4", "schema-utils": "^3.0.0", "source-map": "^0.7.3" }, @@ -3167,7 +3417,7 @@ "@types/webpack": "4.x || 5.x", "react-refresh": ">=0.10.0 <1.0.0", "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <3.0.0", + "type-fest": ">=0.17.0 <4.0.0", "webpack": ">=4.43.0 <6.0.0", "webpack-dev-server": "3.x || 4.x", "webpack-hot-middleware": "2.x", @@ -3195,17 +3445,17 @@ } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } }, "node_modules/@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==", + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -3286,14 +3536,19 @@ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" }, "node_modules/@rushstack/eslint-patch": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", - "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.2.0.tgz", + "integrity": "sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" }, "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", "dependencies": { "type-detect": "4.0.8" } @@ -3525,9 +3780,9 @@ } }, "node_modules/@testing-library/dom": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", - "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.19.0.tgz", + "integrity": "sha512-6YWYPPpxG3e/xOo6HIWwB/58HukkwIVTOaZ0VwdMVjhRUX/01E4FtQbck9GazOOj7MXHc5RBzMrU86iBJHbI+A==", "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -3556,14 +3811,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@testing-library/dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } - }, "node_modules/@testing-library/dom/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3615,15 +3862,15 @@ } }, "node_modules/@testing-library/jest-dom": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", - "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", + "version": "5.16.5", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz", + "integrity": "sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==", "dependencies": { + "@adobe/css-tools": "^4.0.1", "@babel/runtime": "^7.9.2", "@types/testing-library__jest-dom": "^5.9.1", "aria-query": "^5.0.0", "chalk": "^3.0.0", - "css": "^3.0.0", "css.escape": "^1.5.1", "dom-accessibility-api": "^0.5.6", "lodash": "^4.17.15", @@ -3649,14 +3896,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@testing-library/jest-dom/node_modules/aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==", - "engines": { - "node": ">=6.0" - } - }, "node_modules/@testing-library/jest-dom/node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", @@ -3705,19 +3944,20 @@ } }, "node_modules/@testing-library/react": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", - "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", + "version": "12.1.5", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.5.tgz", + "integrity": "sha512-OfTXCJUFgjd/digLUuPxa0+/3ZxsQmE7ub9kcbW/wi96Bh3o/p5vrETcBGfP17NWPGqeYYl5LTRpwyGoMC4ysg==", "dependencies": { "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0" + "@testing-library/dom": "^8.0.0", + "@types/react-dom": "<18.0.0" }, "engines": { "node": ">=12" }, "peerDependencies": { - "react": "*", - "react-dom": "*" + "react": "<18.0.0", + "react-dom": "<18.0.0" } }, "node_modules/@testing-library/user-event": { @@ -3757,9 +3997,9 @@ "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" }, "node_modules/@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", + "version": "7.1.20", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", + "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -3786,9 +4026,9 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", + "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", "dependencies": { "@babel/types": "^7.3.0" } @@ -3828,38 +4068,38 @@ } }, "node_modules/@types/d3": { - "version": "3.5.46", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.46.tgz", - "integrity": "sha512-jNHfiGd41+JUV43LTMzQNidyp4Hn0XfhoSmy8baE0d/N5pGYpD+yX03JacY/MH+smFxYOQGXlz4HxkRZOuRNOQ==", + "version": "3.5.47", + "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.47.tgz", + "integrity": "sha512-VkWIQoZXLFdcBGe5pdBKJmTU3fmpXvo/KV6ixvTzOMl1yJ2hbTXpfvsziag0kcaerPDwas2T0vxojwQG3YwivQ==", "dev": true }, "node_modules/@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==" }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.18", @@ -3868,9 +4108,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -3891,9 +4131,9 @@ "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" }, "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dependencies": { "@types/node": "*" } @@ -3920,18 +4160,18 @@ } }, "node_modules/@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", "dependencies": { - "jest-diff": "^27.0.0", + "jest-matcher-utils": "^27.0.0", "pretty-format": "^27.0.0" } }, "node_modules/@types/json-schema": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz", - "integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==" + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "node_modules/@types/json5": { "version": "0.0.29", @@ -3939,14 +4179,14 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" }, "node_modules/@types/node": { - "version": "16.11.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.24.tgz", - "integrity": "sha512-Ezv33Rl4mIi6YdSHfIRNBd4Q9kUe5okiaw/ikvJiJDmuQZNW5kfdg7+oQPF8NO6sTcr3woIpj3jANzTXdvEZXA==" + "version": "16.18.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.8.tgz", + "integrity": "sha512-TrpoNiaPvBH5h8rQQenMtVsJXtGsVBRJrcp2Ik6oEt99jHfGvDLh20VTTq3ixTbjYujukYz1IlY4N8a8yfY0jA==" }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -3954,9 +4194,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "node_modules/@types/plotly.js": { - "version": "1.54.20", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.20.tgz", - "integrity": "sha512-vqiqq5chr72QoApD+6Hu52iuBvT5/po/sdVF74IBnacQV6J1MjH9OeFZ3GFDwKLF24xT++FMkEGAWcgVMwg2YQ==", + "version": "1.54.22", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.22.tgz", + "integrity": "sha512-/xL9++eA7VnIIZqNQOw6sZ7DtEmfoHj5rAD2CjU2LCOqem/BxTA1KlpdUWEHOiou6za4HKnM+Nvho3jTBPYJ/w==", "dev": true, "dependencies": { "@types/d3": "^3" @@ -3964,23 +4204,23 @@ }, "node_modules/@types/plotly.js-dist": { "name": "@types/plotly.js", - "version": "1.54.20", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.20.tgz", - "integrity": "sha512-vqiqq5chr72QoApD+6Hu52iuBvT5/po/sdVF74IBnacQV6J1MjH9OeFZ3GFDwKLF24xT++FMkEGAWcgVMwg2YQ==", + "version": "1.54.22", + "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.22.tgz", + "integrity": "sha512-/xL9++eA7VnIIZqNQOw6sZ7DtEmfoHj5rAD2CjU2LCOqem/BxTA1KlpdUWEHOiou6za4HKnM+Nvho3jTBPYJ/w==", "dev": true, "dependencies": { "@types/d3": "^3" } }, "node_modules/@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==" }, "node_modules/@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/q": { "version": "1.5.5", @@ -3998,9 +4238,9 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", + "version": "17.0.52", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.52.tgz", + "integrity": "sha512-vwk8QqVODi0VaZZpDXQCmEmiOuyjEFPY7Ttaw5vjM112LOq37yz1CDJGrRJwA1fYEq4Iitd5rnjd1yWAc/bT+A==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -4008,11 +4248,11 @@ } }, "node_modules/@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", + "version": "17.0.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.18.tgz", + "integrity": "sha512-rLVtIfbwyur2iFKykP2w0pl/1unw26b5td16d5xMgp7/yjTHomkyxPYChFoCr/FtEX1lN9wY6lFj1qvKdS5kDw==", "dependencies": { - "@types/react": "*" + "@types/react": "^17" } }, "node_modules/@types/react-is": { @@ -4024,9 +4264,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==", "dependencies": { "@types/react": "*" } @@ -4040,15 +4280,20 @@ } }, "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==" + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -4058,11 +4303,11 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dependencies": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, @@ -4080,9 +4325,9 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, "node_modules/@types/testing-library__jest-dom": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", - "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", + "version": "5.14.5", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz", + "integrity": "sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==", "dependencies": { "@types/jest": "*" } @@ -4114,16 +4359,16 @@ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.6.tgz", - "integrity": "sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.0.tgz", + "integrity": "sha512-QrZqaIOzJAjv0sfjY4EjbXUi3ZOFpKfzntx22gPGr9pmFcTjcFw/1sS1LJhEubfAGwuLjNrPV0rH+D1/XZFy7Q==", "dependencies": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/type-utils": "5.30.6", - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/scope-manager": "5.46.0", + "@typescript-eslint/type-utils": "5.46.0", + "@typescript-eslint/utils": "5.46.0", "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", "regexpp": "^3.2.0", "semver": "^7.3.7", "tsutils": "^3.21.0" @@ -4145,26 +4390,10 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4176,11 +4405,11 @@ } }, "node_modules/@typescript-eslint/experimental-utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.30.6.tgz", - "integrity": "sha512-bqvT+0L8IjtW7MCrMgm9oVNxs4g7mESro1mm5c1/SNfTnHuFTf9OUX1WzVkTz75M9cp//UrTrSmGvK48NEKshQ==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.46.0.tgz", + "integrity": "sha512-iMnpijlNNLL+OPIzLadOYQzHsPQ2FW6Qcd5+4DpUv9lQN4Kl+AGxjv0dx+dXPgJfDpj9Q8ePlbROdKLjQydHqg==", "dependencies": { - "@typescript-eslint/utils": "5.30.6" + "@typescript-eslint/utils": "5.46.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4194,13 +4423,13 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.6.tgz", - "integrity": "sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.0.tgz", + "integrity": "sha512-joNO6zMGUZg+C73vwrKXCd8usnsmOYmgW/w5ZW0pG0RGvqeznjtGDk61EqqTpNrFLUYBW2RSBFrxdAZMqA4OZA==", "dependencies": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", + "@typescript-eslint/scope-manager": "5.46.0", + "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/typescript-estree": "5.46.0", "debug": "^4.3.4" }, "engines": { @@ -4219,32 +4448,16 @@ } } }, - "node_modules/@typescript-eslint/parser/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.0.tgz", + "integrity": "sha512-7wWBq9d/GbPiIM6SqPK9tfynNxVbfpihoY5cSFMer19OYUA3l4powA2uv0AV2eAZV6KoAh6lkzxv4PoxOLh1oA==", "dependencies": { - "ms": "2.1.2" + "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/visitor-keys": "5.46.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.6.tgz", - "integrity": "sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==", - "dependencies": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { "type": "opencollective", @@ -4252,11 +4465,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.6.tgz", - "integrity": "sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.0.tgz", + "integrity": "sha512-dwv4nimVIAsVS2dTA0MekkWaRnoYNXY26dKz8AN5W3cBFYwYGFQEqm/cG+TOoooKlncJS4RTbFKgcFY/pOiBCg==", "dependencies": { - "@typescript-eslint/utils": "5.30.6", + "@typescript-eslint/typescript-estree": "5.46.0", + "@typescript-eslint/utils": "5.46.0", "debug": "^4.3.4", "tsutils": "^3.21.0" }, @@ -4276,26 +4490,10 @@ } } }, - "node_modules/@typescript-eslint/type-utils/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/types": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.6.tgz", - "integrity": "sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.0.tgz", + "integrity": "sha512-wHWgQHFB+qh6bu0IAPAJCdeCdI0wwzZnnWThlmHNY01XJ9Z97oKqKOzWYpR2I83QmshhQJl6LDM9TqMiMwJBTw==", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4305,12 +4503,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.6.tgz", - "integrity": "sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.0.tgz", + "integrity": "sha512-kDLNn/tQP+Yp8Ro2dUpyyVV0Ksn2rmpPpB0/3MO874RNmXtypMwSeazjEN/Q6CTp8D7ExXAAekPEcCEB/vtJkw==", "dependencies": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6", + "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/visitor-keys": "5.46.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -4330,26 +4528,10 @@ } } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -4361,16 +4543,18 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.6.tgz", - "integrity": "sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.0.tgz", + "integrity": "sha512-4O+Ps1CRDw+D+R40JYh5GlKLQERXRKW5yIQoNDpmXPJ+C7kaPF9R7GWl+PxGgXjB3PQCqsaaZUpZ9dG4U6DO7g==", "dependencies": { "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.46.0", + "@typescript-eslint/types": "5.46.0", + "@typescript-eslint/typescript-estree": "5.46.0", "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -4403,12 +4587,26 @@ "node": ">=4.0" } }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.6.tgz", - "integrity": "sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==", + "version": "5.46.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.0.tgz", + "integrity": "sha512-E13gBoIXmaNhwjipuvQg1ByqSAu/GbEpP/qzFihugJ+MomtoJtFAJG/+2DRPByf57B863m0/q7Zt16V9ohhANw==", "dependencies": { - "@typescript-eslint/types": "5.30.6", + "@typescript-eslint/types": "5.46.0", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -4561,9 +4759,9 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" }, "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==" }, "node_modules/accepts": { "version": "1.3.8", @@ -4578,9 +4776,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "bin": { "acorn": "bin/acorn" }, @@ -4654,9 +4852,9 @@ } }, "node_modules/address": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", - "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==", "engines": { "node": ">= 10.0.0" } @@ -4684,18 +4882,6 @@ "node": ">= 6.0.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -4728,9 +4914,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -4800,9 +4986,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4812,9 +4998,9 @@ } }, "node_modules/arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" }, "node_modules/argparse": { "version": "1.0.10", @@ -4825,15 +5011,11 @@ } }, "node_modules/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", "dependencies": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - }, - "engines": { - "node": ">=6.0" + "deep-equal": "^2.0.5" } }, "node_modules/array-flatten": { @@ -4842,14 +5024,14 @@ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" }, "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -4868,13 +5050,13 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -4885,13 +5067,13 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -4901,10 +5083,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz", + "integrity": "sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/assert": { "version": "2.0.0", @@ -4923,17 +5135,14 @@ "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" }, "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dependencies": { - "lodash": "^4.17.14" - } + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -4943,21 +5152,10 @@ "node": ">= 4.0.0" } }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, "node_modules/autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", "funding": [ { "type": "opencollective", @@ -4969,8 +5167,8 @@ } ], "dependencies": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", "fraction.js": "^4.2.0", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4998,9 +5196,9 @@ } }, "node_modules/axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz", + "integrity": "sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==", "engines": { "node": ">=4" } @@ -5096,12 +5294,12 @@ } }, "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==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dependencies": { "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", + "loader-utils": "^2.0.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" }, @@ -5113,30 +5311,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/babel-loader/node_modules/loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/babel-loader/node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", @@ -5154,14 +5328,6 @@ "url": "https://opencollective.com/webpack" } }, - "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==", - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", @@ -5214,12 +5380,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -5227,23 +5393,23 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -5322,7 +5488,7 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" }, "node_modules/bfj": { "version": "7.0.2", @@ -5360,23 +5526,26 @@ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { @@ -5409,25 +5578,23 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "node_modules/bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", + "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, "node_modules/brace-expansion": { "version": "1.1.11", @@ -5455,9 +5622,9 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, "node_modules/browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "funding": [ { "type": "opencollective", @@ -5469,11 +5636,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -5495,15 +5661,10 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, "node_modules/builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", "engines": { "node": ">=6" }, @@ -5514,7 +5675,7 @@ "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "engines": { "node": ">= 0.8" } @@ -5579,13 +5740,19 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] }, "node_modules/case-sensitive-paths-webpack-plugin": { "version": "2.4.0", @@ -5608,6 +5775,14 @@ "node": ">=4" } }, + "node_modules/chalk/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", @@ -5617,9 +5792,9 @@ } }, "node_modules/check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.2.tgz", + "integrity": "sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA==" }, "node_modules/chokidar": { "version": "3.5.3", @@ -5667,9 +5842,12 @@ } }, "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", + "engines": { + "node": ">=8" + } }, "node_modules/cjs-module-lexer": { "version": "1.2.2", @@ -5677,9 +5855,9 @@ "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" }, "node_modules/clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", "dependencies": { "source-map": "~0.6.0" }, @@ -5695,14 +5873,6 @@ "node": ">=0.10.0" } }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -5714,9 +5884,9 @@ } }, "node_modules/clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", "engines": { "node": ">=6" } @@ -5724,7 +5894,7 @@ "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -5759,17 +5929,17 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" }, "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" }, "node_modules/combined-stream": { "version": "1.0.8", @@ -5806,7 +5976,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, "node_modules/compressible": { "version": "2.0.18", @@ -5847,12 +6017,17 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -5860,9 +6035,9 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" }, "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "engines": { "node": ">=0.8" } @@ -5878,25 +6053,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -5906,17 +6062,14 @@ } }, "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==", - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -5924,12 +6077,12 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", + "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5937,30 +6090,21 @@ } }, "node_modules/core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "dependencies": { - "browserslist": "^4.19.1", - "semver": "7.0.0" + "browserslist": "^4.21.4" }, "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==", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", "hasInstallScript": true, "funding": { "type": "opencollective", @@ -5973,9 +6117,9 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", @@ -6008,16 +6152,6 @@ "node": ">=8" } }, - "node_modules/css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "dependencies": { - "inherits": "^2.0.4", - "source-map": "^0.6.1", - "source-map-resolve": "^0.6.0" - } - }, "node_modules/css-blank-pseudo": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", @@ -6036,14 +6170,11 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "dependencies": { - "timsort": "^0.3.0" - }, + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", "engines": { - "node": ">= 10" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { "postcss": "^8.0.9" @@ -6067,18 +6198,18 @@ } }, "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.18", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" @@ -6092,9 +6223,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -6143,9 +6274,9 @@ } }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -6214,13 +6345,13 @@ } }, "node_modules/css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" }, @@ -6263,9 +6394,9 @@ } }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { "node": ">= 6" }, @@ -6276,20 +6407,16 @@ "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "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==", - "engines": { - "node": ">=0.10.0" - } + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" }, "node_modules/cssdb": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", - "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.2.0.tgz", + "integrity": "sha512-JYlIsE7eKHSi0UNuCyo96YuIDFqvhGgHw4Ck6lsN+DP0Tp8M64UTDT2trGbkMDqnCoEjks7CkS0XcjU0rkvBdg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } }, "node_modules/cssesc": { "version": "3.0.0", @@ -6305,14 +6432,14 @@ "node_modules/cssfontparser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", - "integrity": "sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=" + "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==" }, "node_modules/cssnano": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.4.tgz", - "integrity": "sha512-hbfhVZreEPyzl+NbvRsjNo54JOX80b+j6nqG2biLVLaZHJEiqGyMh4xDGHtwhUKd5p59mj2GlDqlUBwJUuIu5A==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "dependencies": { - "cssnano-preset-default": "^*", + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -6328,39 +6455,39 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.4.tgz", - "integrity": "sha512-w1Gg8xsebln6/axZ6qDFQHuglrGfbIHOIx0g4y9+etRlRab8CGpSpe6UMsrgJe4zhCaJ0LwLmc+PhdLRTwnhIA==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^*", + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^*", - "postcss-convert-values": "^*", - "postcss-discard-comments": "^*", - "postcss-discard-duplicates": "^*", - "postcss-discard-empty": "^*", - "postcss-discard-overridden": "^*", - "postcss-merge-longhand": "^*", - "postcss-merge-rules": "^*", - "postcss-minify-font-values": "^*", - "postcss-minify-gradients": "^*", - "postcss-minify-params": "^*", - "postcss-minify-selectors": "^*", - "postcss-normalize-charset": "^*", - "postcss-normalize-display-values": "^*", - "postcss-normalize-positions": "^*", - "postcss-normalize-repeat-style": "^*", - "postcss-normalize-string": "^*", - "postcss-normalize-timing-functions": "^*", - "postcss-normalize-unicode": "^*", - "postcss-normalize-url": "^*", - "postcss-normalize-whitespace": "^*", - "postcss-ordered-values": "^*", - "postcss-reduce-initial": "^*", - "postcss-reduce-transforms": "^*", - "postcss-svgo": "^*", - "postcss-unique-selectors": "^*" + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -6438,9 +6565,9 @@ "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" }, "node_modules/csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "node_modules/d": { "version": "1.0.1", @@ -6470,9 +6597,9 @@ } }, "node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -6486,34 +6613,35 @@ } }, "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "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=", - "engines": { - "node": ">=0.10" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" }, "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" }, "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.1.0.tgz", + "integrity": "sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA==", "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "isarray": "^2.0.5", + "object-is": "^1.1.5", "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.8" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6567,51 +6695,37 @@ } }, "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-newline": { "version": "3.1.0", @@ -6656,13 +6770,13 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dependencies": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" }, "bin": { "detective": "bin/detective.js" @@ -6703,23 +6817,17 @@ "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" }, "node_modules/dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dependencies": { - "buffer-indexof": "^1.0.0" + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, "node_modules/doctrine": { @@ -6734,9 +6842,9 @@ } }, "node_modules/dom-accessibility-api": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", - "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==" + "version": "0.5.14", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz", + "integrity": "sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==" }, "node_modules/dom-converter": { "version": "0.2.0", @@ -6756,9 +6864,9 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", @@ -6769,9 +6877,9 @@ } }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -6799,9 +6907,9 @@ } }, "node_modules/domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dependencies": { "domelementtype": "^2.2.0" }, @@ -6855,14 +6963,14 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", "dependencies": { - "jake": "^10.6.1" + "jake": "^10.8.5" }, "bin": { "ejs": "bin/cli.js" @@ -6872,9 +6980,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.85", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.85.tgz", - "integrity": "sha512-K9AsQ41WS2bjZUFpRWfvaS4RjEcRCamEkBJN1Z1TQILBfP1H8QnJ9ti0wiLiMv0sRjX3EHKzgs9jDnmGFx2jXg==" + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emittery": { "version": "0.8.1", @@ -6903,15 +7011,15 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } }, "node_modules/enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -6937,40 +7045,42 @@ } }, "node_modules/error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", "dependencies": { - "stackframe": "^1.1.1" + "stackframe": "^1.3.4" } }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", + "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", + "safe-regex-test": "^1.0.0", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", "unbox-primitive": "^1.0.2" }, "engines": { @@ -6980,6 +7090,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-get-iterator": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", + "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.0", + "has-symbols": "^1.0.1", + "is-arguments": "^1.1.0", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.5", + "isarray": "^2.0.5" + }, + "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", @@ -7010,24 +7143,23 @@ } }, "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==", + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz", + "integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==", + "hasInstallScript": true, "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" } }, - "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=" - }, "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=", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", "dependencies": { "d": "1", "es5-ext": "^0.10.35", @@ -7037,7 +7169,7 @@ "node_modules/es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==" }, "node_modules/es6-symbol": { "version": "3.1.3", @@ -7070,14 +7202,17 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "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=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">=0.8.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/escodegen": { @@ -7104,7 +7239,7 @@ "node_modules/escodegen/node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -7132,7 +7267,7 @@ "node_modules/escodegen/node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", "engines": { "node": ">= 0.8.0" } @@ -7149,7 +7284,7 @@ "node_modules/escodegen/node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", "dependencies": { "prelude-ls": "~1.1.2" }, @@ -7158,12 +7293,14 @@ } }, "node_modules/eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", - "dependencies": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -7173,30 +7310,32 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.4.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", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", "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", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", "strip-ansi": "^6.0.1", "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" @@ -7253,15 +7392,19 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -7272,67 +7415,6 @@ "ms": "^2.1.1" } }, - "node_modules/eslint-module-utils/node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/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==", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-module-utils/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-plugin-flowtype": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", @@ -7424,20 +7506,20 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", - "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", "dependencies": { - "@babel/runtime": "^7.18.3", + "@babel/runtime": "^7.18.9", "aria-query": "^4.2.2", "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.2", + "axe-core": "^4.4.3", "axobject-query": "^2.2.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.3.1", + "jsx-ast-utils": "^3.3.2", "language-tags": "^1.0.5", "minimatch": "^3.1.2", "semver": "^6.3.0" @@ -7449,25 +7531,38 @@ "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" } }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, "node_modules/eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", + "version": "7.31.11", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", + "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", "dependencies": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" @@ -7515,9 +7610,9 @@ } }, "node_modules/eslint-plugin-testing-library": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz", - "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==", + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.9.1.tgz", + "integrity": "sha512-6BQp3tmb79jLLasPHJmy8DnxREe+2Pgf7L+7o09TSWPfdqqtQfRZmZNetr5mOs3yqZk/MRNxpN3RUpJe0wB4LQ==", "dependencies": { "@typescript-eslint/utils": "^5.13.0" }, @@ -7575,15 +7670,15 @@ } }, "node_modules/eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", "dependencies": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" + "schema-utils": "^4.0.0" }, "engines": { "node": ">= 12.13.0" @@ -7597,6 +7692,90 @@ "webpack": "^5.0.0" } }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/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==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -7647,21 +7826,10 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dependencies": { "type-fest": "^0.20.2" }, @@ -7714,16 +7882,19 @@ } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -7784,7 +7955,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } @@ -7792,7 +7963,7 @@ "node_modules/event-emitter": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", "dependencies": { "d": "1", "es5-ext": "~0.10.14" @@ -7836,7 +8007,7 @@ "node_modules/exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "engines": { "node": ">= 0.8.0" } @@ -7856,37 +8027,38 @@ } }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -7898,7 +8070,7 @@ "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/express/node_modules/debug": { "version": "2.6.9", @@ -7911,39 +8083,20 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", "dependencies": { - "type": "^2.5.0" + "type": "^2.7.2" } }, "node_modules/ext/node_modules/type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -7951,9 +8104,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -7984,12 +8137,12 @@ "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=" + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dependencies": { "reusify": "^1.0.4" } @@ -8006,9 +8159,9 @@ } }, "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dependencies": { "bser": "2.1.1" } @@ -8044,11 +8197,30 @@ } }, "node_modules/filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dependencies": { - "minimatch": "^3.0.4" + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.1.tgz", + "integrity": "sha512-362NP+zlprccbEt/SkxKfRMHnNY85V74mVnpUpNyr3F35covl09Kec7/sEFLt3RA4oXmewtoaanoIf67SE5Y5g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/filesize": { @@ -8071,16 +8243,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -8098,7 +8270,7 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-cache-dir": { "version": "3.3.2", @@ -8149,14 +8321,14 @@ } }, "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==" }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "funding": [ { "type": "individual", @@ -8172,10 +8344,13 @@ } } }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.2", @@ -8315,9 +8490,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8383,15 +8558,15 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } }, "node_modules/fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -8409,7 +8584,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -8446,11 +8621,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -8476,13 +8646,13 @@ } }, "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==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8528,14 +8698,14 @@ } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -8624,10 +8794,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==" }, "node_modules/gzip-size": { "version": "6.0.0", @@ -8675,7 +8861,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "engines": { "node": ">=4" } @@ -8748,7 +8934,7 @@ "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -8756,6 +8942,11 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.7", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", @@ -8770,6 +8961,11 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8790,9 +8986,9 @@ } }, "node_modules/html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" }, "node_modules/html-escaper": { "version": "2.0.2", @@ -8862,27 +9058,27 @@ "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" }, "node_modules/http-proxy": { "version": "1.18.1", @@ -8911,9 +9107,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -8934,9 +9130,9 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dependencies": { "agent-base": "6", "debug": "4" @@ -8981,14 +9177,14 @@ } }, "node_modules/idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" }, "node_modules/identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", "dependencies": { "harmony-reflect": "^1.4.6" }, @@ -8997,17 +9193,17 @@ } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", "engines": { "node": ">= 4" } }, "node_modules/immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==", + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/immer" @@ -9028,14 +9224,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-fresh/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==", - "engines": { - "node": ">=4" - } - }, "node_modules/import-local": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", @@ -9057,7 +9245,7 @@ "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { "node": ">=0.8.19" } @@ -9073,7 +9261,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -9102,11 +9290,6 @@ "node": ">= 0.4" } }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, "node_modules/ipaddr.js": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", @@ -9133,7 +9316,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, "node_modules/is-bigint": { "version": "1.0.4", @@ -9173,9 +9356,9 @@ } }, "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==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { "node": ">= 0.4" }, @@ -9184,9 +9367,9 @@ } }, "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dependencies": { "has": "^1.0.3" }, @@ -9225,7 +9408,7 @@ "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=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { "node": ">=0.10.0" } @@ -9274,12 +9457,20 @@ "node_modules/is-in-browser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==" + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" }, "node_modules/is-nan": { "version": "1.3.2", @@ -9332,19 +9523,11 @@ "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -9392,7 +9575,7 @@ "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "engines": { "node": ">=0.10.0" } @@ -9405,6 +9588,14 @@ "node": ">=6" } }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-shared-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", @@ -9456,14 +9647,14 @@ } }, "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==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" }, "engines": { @@ -9476,7 +9667,15 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/is-weakref": { "version": "1.0.2", @@ -9489,6 +9688,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -9501,14 +9712,14 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", @@ -9519,9 +9730,9 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -9587,9 +9798,9 @@ } }, "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -9599,12 +9810,12 @@ } }, "node_modules/jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", "dependencies": { - "async": "0.9.x", - "chalk": "^2.4.2", + "async": "^3.2.3", + "chalk": "^4.0.2", "filelist": "^1.0.1", "minimatch": "^3.0.4" }, @@ -9612,13 +9823,72 @@ "jake": "bin/cli.js" }, "engines": { - "node": "*" + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" } }, - "node_modules/jake/node_modules/async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, "node_modules/jest": { "version": "27.5.1", @@ -9645,9 +9915,9 @@ } }, "node_modules/jest-canvas-mock": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz", - "integrity": "sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.4.0.tgz", + "integrity": "sha512-mmMpZzpmLzn5vepIaHk5HoH3Ka4WykbSoLuG/EKoJd0x0ID/t+INo1l8ByfcUJuDM+RIsL4QDg/gDnBbrj2/IQ==", "dependencies": { "cssfontparser": "^1.2.1", "moo-color": "^1.0.2" @@ -10473,9 +10743,9 @@ } }, "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "engines": { "node": ">=6" }, @@ -10882,9 +11152,9 @@ } }, "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -11067,14 +11337,14 @@ } }, "node_modules/jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", "dependencies": { "ansi-escapes": "^4.3.1", "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", "slash": "^4.0.0", "string-length": "^5.0.1", "strip-ansi": "^7.0.1" @@ -11083,18 +11353,69 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "peerDependencies": { - "jest": "^27.0.0" + "jest": "^27.0.0 || ^28.0.0" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, "engines": { - "node": ">=12" + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", + "dependencies": { + "@types/yargs-parser": "*" } }, "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { @@ -11126,14 +11447,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-watch-typeahead/node_modules/char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", - "engines": { - "node": ">=12.20" - } - }, "node_modules/jest-watch-typeahead/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -11150,6 +11463,17 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, "node_modules/jest-watch-typeahead/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -11158,24 +11482,141 @@ "node": ">=8" } }, - "node_modules/jest-watch-typeahead/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watch-typeahead/node_modules/string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", "dependencies": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12.20" @@ -11184,6 +11625,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", @@ -11198,6 +11647,17 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/jest-watch-typeahead/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11325,6 +11785,15 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-sdsl": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11398,11 +11867,6 @@ "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==" - }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", @@ -11421,15 +11885,12 @@ "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=" + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" }, "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==", - "dependencies": { - "minimist": "^1.2.5" - }, + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", "bin": { "json5": "lib/cli.js" }, @@ -11449,17 +11910,17 @@ } }, "node_modules/jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", "engines": { "node": ">=0.10.0" } }, "node_modules/jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.2.tgz", + "integrity": "sha512-b8G6rWpYLR4teTUbGd4I4EsnWjg7MN0Q5bSsjKhVkJVjhQDy2KzkbD2AW3TuT0RYZVmZZHKIrXDn6kjU14qkUg==", "dependencies": { "@babel/runtime": "^7.3.1", "csstype": "^3.0.2", @@ -11472,79 +11933,79 @@ } }, "node_modules/jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.2.tgz", + "integrity": "sha512-wgBPlL3WS0WDJ1lPJcgjux/SHnDuu7opmgQKSraKs4z8dCCyYMx9IDPFKBXQ8Q5dVYij1FFV0WdxyhuOOAXuTg==", "dependencies": { "@babel/runtime": "^7.3.1", "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" + "jss": "10.9.2" } }, "node_modules/jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.2.tgz", + "integrity": "sha512-pYg0QX3bBEFtTnmeSI3l7ad1vtHU42YEEpgW7pmIh+9pkWNWb5dwS/4onSfAaI0kq+dOZHzz4dWe+8vWnanoSg==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.9.2" } }, "node_modules/jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.2.tgz", + "integrity": "sha512-GcX0aE8Ef6AtlasVrafg1DItlL/tWHoC4cGir4r3gegbWwF5ZOBYhx04gurPvWHC8F873aEGqge7C17xpwmp2g==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.9.2" } }, "node_modules/jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.2.tgz", + "integrity": "sha512-VgiOWIC6bvgDaAL97XCxGD0BxOKM0K0zeB/ECyNaVF6FqvdGB9KBBWRdy2STYAss4VVA7i5TbxFZN+WSX1kfQA==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.9.2", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.2.tgz", + "integrity": "sha512-AP1AyUTbi2szylgr+O0OB7gkIxEGzySLITZ2GpsaoX72YMCGI2jYAc+WUhPfvUnZYiauF4zTnN4V4TGuvFjJlw==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0" + "jss": "10.9.2" } }, "node_modules/jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.2.tgz", + "integrity": "sha512-vf5ms8zvLFMub6swbNxvzsurHfUZ5Shy5aJB2gIpY6WNA3uLinEcxYyraQXItRHi5ivXGqYciFDRM2ZoVoRZ4Q==", "dependencies": { "@babel/runtime": "^7.3.1", - "jss": "10.9.0", + "jss": "10.9.2", "tiny-warning": "^1.0.2" } }, "node_modules/jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.2.tgz", + "integrity": "sha512-SxcEoH+Rttf9fEv6KkiPzLdXRmI6waOTcMkbbEFgdZLDYNIP9UKNHFy6thhbRKqv0XMQZdrEsbDyV464zE/dUA==", "dependencies": { "@babel/runtime": "^7.3.1", "css-vendor": "^2.0.8", - "jss": "10.9.0" + "jss": "10.9.2" } }, "node_modules/jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dependencies": { "array-includes": "^3.1.5", - "object.assign": "^4.1.2" + "object.assign": "^4.1.3" }, "engines": { "node": ">=4.0" @@ -11580,11 +12041,11 @@ "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" }, "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.6.tgz", + "integrity": "sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg==", "dependencies": { - "language-subtag-registry": "~0.3.2" + "language-subtag-registry": "^0.3.20" } }, "node_modules/leven": { @@ -11608,9 +12069,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "engines": { "node": ">=10" } @@ -11621,17 +12082,17 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "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==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "engines": { "node": ">=6.11.5" } }, "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -11663,12 +12124,12 @@ "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=" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, "node_modules/lodash.merge": { "version": "4.6.2", @@ -11678,12 +12139,12 @@ "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, "node_modules/loose-envify": { "version": "1.4.0", @@ -11718,7 +12179,7 @@ "node_modules/lru-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", "dependencies": { "es5-ext": "~0.10.2" } @@ -11726,7 +12187,7 @@ "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", "bin": { "lz-string": "bin/bin.js" } @@ -11769,17 +12230,17 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" }, "engines": { "node": ">= 4.0.0" @@ -11803,7 +12264,7 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/merge-stream": { "version": "2.0.0", @@ -11821,18 +12282,18 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -11885,9 +12346,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dependencies": { "schema-utils": "^4.0.0" }, @@ -11903,9 +12364,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -11968,25 +12429,28 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", "dependencies": { - "minimist": "^1.2.5" + "minimist": "^1.2.6" }, "bin": { "mkdirp": "bin/cmd.js" } }, "node_modules/moo-color": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.2.tgz", - "integrity": "sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", + "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", "dependencies": { "color-name": "^1.1.4" } @@ -12002,26 +12466,21 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dependencies": { - "dns-packet": "^1.3.1", + "dns-packet": "^5.2.2", "thunky": "^1.0.2" }, "bin": { "multicast-dns": "cli.js" } }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -12032,7 +12491,12 @@ "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=" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" }, "node_modules/negotiator": { "version": "0.6.3", @@ -12062,9 +12526,9 @@ } }, "node_modules/node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "engines": { "node": ">= 6.13.0" } @@ -12072,12 +12536,12 @@ "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" }, "node_modules/node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -12090,7 +12554,7 @@ "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "engines": { "node": ">=0.10.0" } @@ -12118,9 +12582,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dependencies": { "boolbase": "^1.0.0" }, @@ -12129,30 +12593,30 @@ } }, "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", + "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==" }, "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=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", "engines": { "node": ">= 6" } }, "node_modules/object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12181,13 +12645,13 @@ } }, "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==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -12198,26 +12662,26 @@ } }, "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==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "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==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -12227,13 +12691,14 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz", + "integrity": "sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw==", "dependencies": { + "array.prototype.reduce": "^1.0.5", "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.8" @@ -12243,25 +12708,25 @@ } }, "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dependencies": { "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "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==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -12276,9 +12741,9 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -12297,7 +12762,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dependencies": { "wrappy": "1" } @@ -12376,26 +12841,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dependencies": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { @@ -12480,7 +12931,7 @@ "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=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } @@ -12501,7 +12952,7 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/path-type": { "version": "4.0.0", @@ -12514,7 +12965,7 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -12532,6 +12983,14 @@ "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": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", @@ -12667,35 +13126,14 @@ } }, "node_modules/plotly.js-dist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-2.9.0.tgz", - "integrity": "sha512-CvzxfnKwXV4kiuBK12IOAPeG0EtTeL+K/Dax+1EwjdIxFJkvMKjnIlilonjydhS+Pcu9shuGiuAezhpmmYrDQA==" - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dependencies": { - "ms": "^2.1.1" - } + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-2.16.4.tgz", + "integrity": "sha512-Bw8WFCdkee0H0F82hJ9CQ+Aah2N+/ChQiThN7y7E/mG+yQWhfmcErbPuhbfvOXk1psiEQNCDTUOOxn683CLAwg==" }, "node_modules/postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "funding": [ { "type": "opencollective", @@ -12707,7 +13145,7 @@ } ], "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -12716,14 +13154,21 @@ } }, "node_modules/postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", "dependencies": { - "postcss-selector-parser": "^6.0.2" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.0.2" + "postcss": "^8.2" } }, "node_modules/postcss-browser-comments": { @@ -12750,46 +13195,72 @@ "postcss": "^8.2.2" } }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, "node_modules/postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { "postcss": "^8.4" } }, "node_modules/postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.3" + "postcss": "^8.2" } }, "node_modules/postcss-colormin": { @@ -12810,10 +13281,11 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", - "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dependencies": { + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -12824,62 +13296,81 @@ } }, "node_modules/postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { - "node": ">=10.0.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.3" } }, "node_modules/postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "dependencies": { "postcss-selector-parser": "^6.0.4" }, "engines": { - "node": ">=10.0.0" + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.2" + "postcss": "^8.3" } }, "node_modules/postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "engines": { "node": "^10 || ^12 || >=14.0" }, @@ -12921,9 +13412,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", - "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -12931,14 +13422,18 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -12994,28 +13489,52 @@ } }, "node_modules/postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" } }, "node_modules/postcss-initial": { @@ -13045,9 +13564,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", - "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", "dependencies": { "@csstools/postcss-progressive-custom-properties": "^1.1.0", "postcss-value-parser": "^4.2.0" @@ -13055,16 +13574,20 @@ "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", "dependencies": { - "lilconfig": "^2.0.4", + "lilconfig": "^2.0.5", "yaml": "^1.10.2" }, "engines": { @@ -13075,9 +13598,13 @@ "url": "https://opencollective.com/postcss/" }, "peerDependencies": { + "postcss": ">=8.0.9", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { + "postcss": { + "optional": true + }, "ts-node": { "optional": true } @@ -13105,9 +13632,9 @@ } }, "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -13141,12 +13668,12 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.2.tgz", - "integrity": "sha512-18/bp9DZnY1ai9RlahOfLBbmIUKfKFPASxRCiZ1vlpZqWPCn8qWPFlEozqmWL+kBtcEQmG8W9YqGCstDImvp/Q==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^*" + "stylehacks": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -13156,11 +13683,11 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -13187,9 +13714,9 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", @@ -13203,11 +13730,11 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.1.tgz", - "integrity": "sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, @@ -13219,9 +13746,9 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dependencies": { "postcss-selector-parser": "^6.0.5" }, @@ -13288,11 +13815,11 @@ } }, "node_modules/postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz", + "integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==", "dependencies": { - "postcss-selector-parser": "^6.0.6" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": ">=12.0" @@ -13306,17 +13833,22 @@ } }, "node_modules/postcss-nesting": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", - "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-normalize": { @@ -13362,9 +13894,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -13376,9 +13908,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dependencies": { "postcss-value-parser": "^4.2.0" }, @@ -13418,11 +13950,11 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -13480,9 +14012,9 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" @@ -13495,14 +14027,21 @@ } }, "node_modules/postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-page-break": { @@ -13514,94 +14053,113 @@ } }, "node_modules/postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-preset-env": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz", - "integrity": "sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA==", - "dependencies": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", "css-blank-pseudo": "^3.0.3", "css-has-pseudo": "^3.0.4", "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", "postcss-focus-visible": "^6.0.4", "postcss-focus-within": "^5.0.4", "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", + "postcss-lab-function": "^4.2.1", "postcss-logical": "^5.0.4", "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", + "postcss-nesting": "^10.2.0", "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", + "postcss-overflow-shorthand": "^3.0.4", "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", + "postcss-selector-not": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", "dependencies": { - "postcss-selector-parser": "^6.0.9" + "postcss-selector-parser": "^6.0.10" }, "engines": { "node": "^12 || ^14 || >=16" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, "peerDependencies": { - "postcss": "^8.4" + "postcss": "^8.2" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { @@ -13634,20 +14192,27 @@ } }, "node_modules/postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", "dependencies": { - "balanced-match": "^1.0.0" + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" }, "peerDependencies": { - "postcss": "^8.1.0" + "postcss": "^8.2" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -13795,15 +14360,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "node_modules/promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", "dependencies": { "asap": "~2.0.6" } @@ -13856,9 +14426,9 @@ } }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "node_modules/punycode": { "version": "2.1.1", @@ -13871,16 +14441,19 @@ "node_modules/q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, "node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -13888,6 +14461,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -13943,12 +14521,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -14082,17 +14660,6 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/react-dev-utils/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/react-dev-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14102,9 +14669,9 @@ } }, "node_modules/react-dev-utils/node_modules/loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", "engines": { "node": ">= 12.13.0" } @@ -14139,9 +14706,9 @@ "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" }, "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/react-refresh": { "version": "0.11.0", @@ -14224,9 +14791,9 @@ } }, "node_modules/react-scripts/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dependencies": { "lru-cache": "^6.0.0" }, @@ -14238,9 +14805,9 @@ } }, "node_modules/react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", "dependencies": { "@babel/runtime": "^7.5.5", "dom-helpers": "^5.0.1", @@ -14252,6 +14819,14 @@ "react-dom": ">=16.6.0" } }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -14277,25 +14852,14 @@ } }, "node_modules/recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "dependencies": { - "minimatch": "3.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/recursive-readdir/node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", "dependencies": { - "brace-expansion": "^1.1.7" + "minimatch": "^3.0.5" }, "engines": { - "node": "*" + "node": ">=6.0.0" } }, "node_modules/redent": { @@ -14316,9 +14880,9 @@ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dependencies": { "regenerate": "^1.4.2" }, @@ -14327,14 +14891,14 @@ } }, "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==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "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==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dependencies": { "@babel/runtime": "^7.8.4" } @@ -14372,30 +14936,30 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dependencies": { "jsesc": "~0.5.0" }, @@ -14406,7 +14970,7 @@ "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=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "bin": { "jsesc": "bin/jsesc" } @@ -14414,7 +14978,7 @@ "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "engines": { "node": ">= 0.10" } @@ -14434,7 +14998,7 @@ "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=", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "engines": { "node": ">=0.10.0" } @@ -14450,14 +15014,14 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -14479,7 +15043,7 @@ "node": ">=8" } }, - "node_modules/resolve-from": { + "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==", @@ -14487,6 +15051,14 @@ "node": ">=8" } }, + "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==", + "engines": { + "node": ">=4" + } + }, "node_modules/resolve-url-loader": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", @@ -14583,9 +15155,9 @@ } }, "node_modules/rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", "bin": { "rollup": "dist/bin/rollup" }, @@ -14600,6 +15172,7 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", "dependencies": { "@babel/code-frame": "^7.10.4", "jest-worker": "^26.2.1", @@ -14673,9 +15246,36 @@ } }, "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==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/safer-buffer": { "version": "2.1.2", @@ -14769,14 +15369,14 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" }, "node_modules/selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dependencies": { - "node-forge": "^1.2.0" + "node-forge": "^1" }, "engines": { "node": ">=10" @@ -14791,23 +15391,23 @@ } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -14824,7 +15424,7 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", @@ -14842,7 +15442,7 @@ "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -14864,10 +15464,18 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -14881,27 +15489,35 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -14932,9 +15548,12 @@ } }, "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==" + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/side-channel": { "version": "1.0.4", @@ -14985,7 +15604,7 @@ "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "engines": { "node": ">=0.10.0" } @@ -14999,9 +15618,9 @@ } }, "node_modules/source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", "dependencies": { "abab": "^2.0.5", "iconv-lite": "^0.6.3", @@ -15018,16 +15637,6 @@ "webpack": "^5.0.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==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", - "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", @@ -15048,7 +15657,8 @@ "node_modules/sourcemap-codec": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" }, "node_modules/spdy": { "version": "4.0.2", @@ -15081,17 +15691,18 @@ "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" }, "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -15108,16 +15719,16 @@ } }, "node_modules/stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/string_decoder": { @@ -15128,25 +15739,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -15183,17 +15775,17 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" }, "funding": { @@ -15201,26 +15793,26 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -15312,11 +15904,11 @@ } }, "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -15327,9 +15919,9 @@ } }, "node_modules/stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.1.3.tgz", + "integrity": "sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==" }, "node_modules/supports-color": { "version": "5.5.0", @@ -15343,9 +15935,9 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -15475,31 +16067,33 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, "node_modules/tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz", + "integrity": "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==", "dependencies": { - "arg": "^5.0.1", - "chalk": "^4.1.2", + "arg": "^5.0.2", "chokidar": "^3.5.3", "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", + "detective": "^5.2.1", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.12", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.18", + "postcss-import": "^14.1.0", "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", + "postcss-load-config": "^3.1.4", + "postcss-nested": "6.0.0", + "postcss-selector-parser": "^6.0.10", "postcss-value-parser": "^4.2.0", "quick-lru": "^5.1.1", - "resolve": "^1.22.0" + "resolve": "^1.22.1" }, "bin": { "tailwind": "lib/cli.js", @@ -15509,74 +16103,14 @@ "node": ">=12.13.0" }, "peerDependencies": { - "autoprefixer": "^10.0.2", "postcss": "^8.0.9" } }, - "node_modules/tailwindcss/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/tailwindcss/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "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/tailwindcss/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, "node_modules/tailwindcss/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "node_modules/tailwindcss/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/tailwindcss/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -15637,13 +16171,13 @@ } }, "node_modules/terser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", - "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dependencies": { + "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { @@ -15654,15 +16188,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -15686,27 +16220,11 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -15723,7 +16241,7 @@ "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=" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, "node_modules/throat": { "version": "6.0.1", @@ -15744,11 +16262,6 @@ "next-tick": "1" } }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -15762,7 +16275,7 @@ "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=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "engines": { "node": ">=4" } @@ -15787,22 +16300,23 @@ } }, "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", + "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", - "universalify": "^0.1.2" + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, "engines": { "node": ">=6" } }, "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "engines": { "node": ">= 4.0.0" } @@ -15854,9 +16368,9 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" }, "node_modules/tsutils": { "version": "3.21.0", @@ -15933,9 +16447,9 @@ } }, "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -15979,17 +16493,17 @@ } }, "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "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==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "engines": { "node": ">=4" } @@ -16016,7 +16530,7 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -16024,7 +16538,7 @@ "node_modules/unquote": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" }, "node_modules/upath": { "version": "1.2.0", @@ -16035,6 +16549,31 @@ "yarn": "*" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -16043,23 +16582,31 @@ "punycode": "^2.1.0" } }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "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=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/util.promisify": { "version": "1.0.1", @@ -16078,12 +16625,12 @@ "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } @@ -16096,11 +16643,6 @@ "uuid": "dist/bin/uuid" } }, - "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==" - }, "node_modules/v8-to-istanbul": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", @@ -16115,9 +16657,9 @@ } }, "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", "engines": { "node": ">= 8" } @@ -16125,7 +16667,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -16134,6 +16676,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -16158,9 +16701,9 @@ } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -16191,33 +16734,33 @@ } }, "node_modules/webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^0.0.51", "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.10.0", "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.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "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.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -16237,12 +16780,12 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.1", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -16259,9 +16802,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16308,38 +16851,37 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", + "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" }, @@ -16349,6 +16891,10 @@ "engines": { "node": ">= 12.13.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, @@ -16359,9 +16905,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16384,17 +16930,6 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack-dev-server/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -16418,24 +16953,10 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/webpack-dev-server/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -16495,6 +17016,11 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -16607,17 +17133,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -16635,26 +17175,26 @@ } }, "node_modules/workbox-background-sync": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.1.tgz", - "integrity": "sha512-T5a35fagLXQvV8Dr4+bDU+XYsP90jJ3eBLjZMKuCNELMQZNj+VekCODz1QK44jgoBeQk+vp94pkZV6G+e41pgg==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz", + "integrity": "sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==", "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.5.1" + "idb": "^7.0.1", + "workbox-core": "6.5.4" } }, "node_modules/workbox-broadcast-update": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.1.tgz", - "integrity": "sha512-mb/oyblyEpDbw167cCTyHnC3RqCnCQHtFYuYZd+QTpuExxM60qZuBH1AuQCgvLtDcztBKdEYK2VFD9SZYgRbaQ==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz", + "integrity": "sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-build": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.1.tgz", - "integrity": "sha512-coDUDzHvFZ1ADOl3wKCsCSyOBvkPKlPgcQDb6LMMShN1zgF31Mev/1HzN3+9T2cjjWAgFwZKkuRyExqc1v21Zw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.4.tgz", + "integrity": "sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==", "dependencies": { "@apideck/better-ajv-errors": "^0.3.1", "@babel/core": "^7.11.1", @@ -16678,30 +17218,30 @@ "strip-comments": "^2.0.1", "tempy": "^0.6.0", "upath": "^1.2.0", - "workbox-background-sync": "6.5.1", - "workbox-broadcast-update": "6.5.1", - "workbox-cacheable-response": "6.5.1", - "workbox-core": "6.5.1", - "workbox-expiration": "6.5.1", - "workbox-google-analytics": "6.5.1", - "workbox-navigation-preload": "6.5.1", - "workbox-precaching": "6.5.1", - "workbox-range-requests": "6.5.1", - "workbox-recipes": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1", - "workbox-streams": "6.5.1", - "workbox-sw": "6.5.1", - "workbox-window": "6.5.1" + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", "dependencies": { "json-schema": "^0.4.0", "jsonpointer": "^5.0.0", @@ -16715,9 +17255,9 @@ } }, "node_modules/workbox-build/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16762,7 +17302,7 @@ "node_modules/workbox-build/node_modules/tr46": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dependencies": { "punycode": "^2.1.0" } @@ -16783,117 +17323,117 @@ } }, "node_modules/workbox-cacheable-response": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.1.tgz", - "integrity": "sha512-3TdtH/luDiytmM+Cn72HCBLZXmbeRNJqZx2yaVOfUZhj0IVwZqQXhNarlGE9/k6U5Jelb+TtpH2mLVhnzfiSMg==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz", + "integrity": "sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.1.tgz", - "integrity": "sha512-qObXZ39aFJ2N8X7IUbGrJHKWguliCuU1jOXM/I4MTT84u9BiKD2rHMkIzgeRP1Ixu9+cXU4/XHJq3Cy0Qqc5hw==" + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.4.tgz", + "integrity": "sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==" }, "node_modules/workbox-expiration": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.1.tgz", - "integrity": "sha512-iY/cTADAQATMmPkUBRmQdacqq0TJd2wMHimBQz+tRnPGHSMH+/BoLPABPnu7O7rT/g/s59CUYYRGxe3mEgoJCA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.4.tgz", + "integrity": "sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==", "dependencies": { - "idb": "^6.1.4", - "workbox-core": "6.5.1" + "idb": "^7.0.1", + "workbox-core": "6.5.4" } }, "node_modules/workbox-google-analytics": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.1.tgz", - "integrity": "sha512-qZU46/h4dbionYT6Yk6iBkUwpiEzAfnO1W7KkI+AMmY7G9/gA03dQQ7rpTw8F4vWrG7ahTUGWDFv6fERtaw1BQ==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz", + "integrity": "sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==", "dependencies": { - "workbox-background-sync": "6.5.1", - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" } }, "node_modules/workbox-navigation-preload": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.1.tgz", - "integrity": "sha512-aKrgAbn2IMgzTowTi/ZyKdQUcES2m++9aGtpxqsX7Gn9ovCY8zcssaMEAMMwrIeveij5HiWNBrmj6MWDHi+0rg==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz", + "integrity": "sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-precaching": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.1.tgz", - "integrity": "sha512-EzlPBxvmjGfE56YZzsT/vpVkpLG1XJhoplgXa5RPyVWLUL1LbwEAxhkrENElSS/R9tgiTw80IFwysidfUqLihg==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.4.tgz", + "integrity": "sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==", "dependencies": { - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" } }, "node_modules/workbox-range-requests": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.1.tgz", - "integrity": "sha512-57Da/qRbd9v33YlHX0rlSUVFmE4THCjKqwkmfhY3tNLnSKN2L5YBS3qhWeDO0IrMNgUj+rGve2moKYXeUqQt4A==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz", + "integrity": "sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-recipes": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.1.tgz", - "integrity": "sha512-DGsyKygHggcGPQpWafC/Nmbm1Ny3sB2vE9r//3UbeidXiQ+pLF14KEG1/0NNGRaY+lfOXOagq6d1H7SC8KA+rA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.4.tgz", + "integrity": "sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==", "dependencies": { - "workbox-cacheable-response": "6.5.1", - "workbox-core": "6.5.1", - "workbox-expiration": "6.5.1", - "workbox-precaching": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" } }, "node_modules/workbox-routing": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.1.tgz", - "integrity": "sha512-yAAncdTwanvlR8KPjubyvFKeAok8ZcIws6UKxvIAg0I+wsf7UYi93DXNuZr6RBSQrByrN6HkCyjuhmk8P63+PA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.4.tgz", + "integrity": "sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-strategies": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.1.tgz", - "integrity": "sha512-JNaTXPy8wXzKkr+6za7/eJX9opoZk7UgY261I2kPxl80XQD8lMjz0vo9EOcBwvD72v3ZhGJbW84ZaDwFEhFvWA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.4.tgz", + "integrity": "sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==", "dependencies": { - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/workbox-streams": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.1.tgz", - "integrity": "sha512-7jaTWm6HRGJ/ewECnhb+UgjTT50R42E0/uNCC4eTKQwnLO/NzNGjoXTdQgFjo4zteR+L/K6AtFAiYKH3ZJbAYw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.4.tgz", + "integrity": "sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==", "dependencies": { - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1" + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" } }, "node_modules/workbox-sw": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.1.tgz", - "integrity": "sha512-hVrQa19yo9wzN1fQQ/h2JlkzFpkuH2qzYT2/rk7CLaWt6tLnTJVFCNHlGRRPhytZSf++LoIy7zThT714sowT/Q==" + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.4.tgz", + "integrity": "sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==" }, "node_modules/workbox-webpack-plugin": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.1.tgz", - "integrity": "sha512-SHtlQBpKruI16CAYhICDMkgjXE2fH5Yp+D+1UmBfRVhByZYzusVOykvnPm8ObJb9d/tXgn9yoppoxafFS7D4vQ==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz", + "integrity": "sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==", "dependencies": { "fast-json-stable-stringify": "^2.1.0", "pretty-bytes": "^5.4.1", "upath": "^1.2.0", "webpack-sources": "^1.4.3", - "workbox-build": "6.5.1" + "workbox-build": "6.5.4" }, "engines": { "node": ">=10.0.0" @@ -16920,12 +17460,12 @@ } }, "node_modules/workbox-window": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.1.tgz", - "integrity": "sha512-oRlun9u7b7YEjo2fIDBqJkU2hXtrEljXcOytRhfeQRbqXxjUOpFgXSGRSAkmDx1MlKUNOSbr+zfi8h5n7In3yA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.4.tgz", + "integrity": "sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==", "dependencies": { "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.1" + "workbox-core": "6.5.4" } }, "node_modules/wrap-ansi": { @@ -16977,7 +17517,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/write-file-atomic": { "version": "3.0.3", @@ -16991,9 +17531,9 @@ } }, "node_modules/ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", "engines": { "node": ">=8.3.0" }, @@ -17085,12247 +17625,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.1.tgz", - "integrity": "sha512-Aolwjd7HSC2PyY0fDj/wA/EimQT4HfEnFYNp5s9CQlrdhyvWTtvZ5YzrUPu6R6/1jKiUlxu8bUhkdSnKHNAHMA==", - "requires": { - "@jridgewell/trace-mapping": "^0.3.0" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz", - "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==" - }, - "@babel/core": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.2.tgz", - "integrity": "sha512-R3VH5G42VSDolRHyUO4V2cfag8WHcZyxdq5Z/m8Xyb92lW/Erm/6kM+XtRFGf3Mulre3mveni2NHfEUws8wSvw==", - "requires": { - "@ampproject/remapping": "^2.0.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helpers": "^7.17.2", - "@babel/parser": "^7.17.0", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.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" - } - }, - "@babel/eslint-parser": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz", - "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==", - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "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==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "@babel/generator": { - "version": "7.18.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", - "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", - "requires": { - "@babel/types": "^7.18.7", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", - "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz", - "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==", - "requires": { - "@babel/compat-data": "^7.16.4", - "@babel/helper-validator-option": "^7.16.7", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==" - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", - "requires": { - "@babel/types": "^7.16.7" - } - }, - "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==" - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", - "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", - "requires": { - "@babel/types": "^7.17.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==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" - }, - "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", - "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" - } - }, - "@babel/helpers": { - "version": "7.17.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.2.tgz", - "integrity": "sha512-0Qu7RLR1dILozr/6M0xgj+DFPmi6Bnulgm9M8BVa9ZCWxDqlSnqt3cf8IDPB5m45sVXUZ0kuQAgUrdSFFH79fQ==", - "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.0", - "@babel/types": "^7.17.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", - "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==" - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "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.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-decorators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.6.tgz", - "integrity": "sha512-gAdhsjaYmiZVxx5vTMiRfj31nB7LhwBJFMSLzeDxc7X4tKLixup0+k9ughn0RcpBrv9E3PBaXJW7jF5TCihAOg==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/plugin-syntax-decorators": "^7.18.6" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", - "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@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.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "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==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.18.6.tgz", - "integrity": "sha512-fqyLgjcxf/1yhyZ6A+yo1u9gJ7eleFQod2lkaUsF9DQ7sbbY3Ligym3L0+I2c0WmqNKDpoD9UTb1AKP3qRMOAQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@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==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-flow": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz", - "integrity": "sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-remap-async-to-generator": "^7.16.8" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-flow-strip-types": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.18.6.tgz", - "integrity": "sha512-wE0xtA7csz+hw4fKPwxmu5jnzAsXPIO57XnRwzXP3T19jWh1BODnPGoG9xKYwvAwusP7iUktHayRFbMPGtODaQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-flow": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", - "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.7.tgz", - "integrity": "sha512-ITPmR2V7MqioMJyrxUo2onHNC3e+MvfFiFIR0RP21d3PtlVb6sfzoxNKiphSZUOM9hEIdzCcZe83ieX3yoqjUA==", - "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.16.7.tgz", - "integrity": "sha512-DuK5E3k+QQmnOqBR9UkusByy5WZWGRxfzV529s9nPra1GE7olmxfqO2FHobEOYSPIjPBTr4p66YDcjQnt8cBmw==", - "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", - "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.16.8.tgz", - "integrity": "sha512-j3Jw+n5PvpmhRR+mrgIh04puSANCk/T/UA3m3P1MjJkhlK906+ApHhDIqBQDdOgL/r1UYpz4GNclTXxyZrYGSw==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-constant-elements": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.17.6.tgz", - "integrity": "sha512-OBv9VkyyKtsHZiHLoSfCn+h6yU7YKX8nrs32xUmOa1SRSk+t03FosB6fBZ0Yz4BpD1WV7l73Nsad+2Tz7APpqw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.3.tgz", - "integrity": "sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.17.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", - "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz", - "integrity": "sha512-mF7jOgGYCkSJagJ6XCujSQg+6xC1M77/03K2oBmVJWoFGNUtnVJO4WHKJk3dnPC8HCcj4xBQP1Egm8DWh3Pb3Q==", - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.6.tgz", - "integrity": "sha512-8uRHk9ZmRSnWqUgyae249EJZ94b0yAGLBIqzZzl+0iEdbno55Pmlt/32JZsHwXD9k/uZj18Aqqk35wBX4CBTXA==", - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", - "semver": "^6.3.0" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz", - "integrity": "sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==", - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-typescript": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" - } - }, - "@babel/preset-env": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", - "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", - "requires": { - "@babel/compat-data": "^7.16.8", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.16.7", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.16.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", - "@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.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.16.7", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.16.8", - "@babel/plugin-transform-modules-systemjs": "^7.16.7", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", - "@babel/plugin-transform-new-target": "^7.16.7", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.16.7", - "@babel/plugin-transform-reserved-words": "^7.16.7", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.16.8", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", - "core-js-compat": "^3.20.2", - "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==", - "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.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" - } - }, - "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - } - }, - "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/runtime-corejs3": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.6.tgz", - "integrity": "sha512-cOu5wH2JFBgMjje+a+fz2JNIWU4GzYpl05oSob3UDvBEh6EuIn+TXFHMmBbhSb+k/4HMzgKCQfEEDArAWNF9Cw==", - "requires": { - "core-js-pure": "^3.20.2", - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/traverse": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", - "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.7", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.8", - "@babel/types": "^7.18.8", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", - "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@csstools/normalize.css": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.0.0.tgz", - "integrity": "sha512-M0qqxAcwCsIVfpFQSlGN5XjXWu8l5JDZN+fPt1LeW5SZexQTgnaEvgXAY+CeygRw0EeppWHi12JxESWiWrB0Sg==" - }, - "@csstools/postcss-color-function": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.0.3.tgz", - "integrity": "sha512-J26I69pT2B3MYiLY/uzCGKVJyMYVg9TCpXkWsRlt+Yfq+nELUEm72QXIMYXs4xA9cJA4Oqs2EylrfokKl3mJEQ==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-font-format-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.0.tgz", - "integrity": "sha512-oO0cZt8do8FdVBX8INftvIA4lUrKUSCcWUf9IwH9IPWOgKT22oAZFXeHLoDK7nhB2SmkNycp5brxfNMRLIhd6Q==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-hwb-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.0.tgz", - "integrity": "sha512-VSTd7hGjmde4rTj1rR30sokY3ONJph1reCBTUXqeW1fKwETPy1x4t/XIeaaqbMbC5Xg4SM/lyXZ2S8NELT2TaA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-ic-unit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.0.tgz", - "integrity": "sha512-i4yps1mBp2ijrx7E96RXrQXQQHm6F4ym1TOD0D69/sjDjZvQ22tqiEvaNw7pFZTUO5b9vWRHzbHzP9+UKuw+bA==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-is-pseudo-class": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.1.tgz", - "integrity": "sha512-Og5RrTzwFhrKoA79c3MLkfrIBYmwuf/X83s+JQtz/Dkk/MpsaKtqHV1OOzYkogQ+tj3oYp5Mq39XotBXNqVc3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "@csstools/postcss-normalize-display-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.0.tgz", - "integrity": "sha512-bX+nx5V8XTJEmGtpWTO6kywdS725t71YSLlxWt78XoHUbELWgoCXeOFymRJmL3SU1TLlKSIi7v52EWqe60vJTQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-oklab-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.0.2.tgz", - "integrity": "sha512-QwhWesEkMlp4narAwUi6pgc6kcooh8cC7zfxa9LSQNYXqzcdNUtNBzbGc5nuyAVreb7uf5Ox4qH1vYT3GA1wOg==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "@csstools/postcss-progressive-custom-properties": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", - "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "@emotion/babel-plugin": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.7.2.tgz", - "integrity": "sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==", - "requires": { - "@babel/helper-module-imports": "^7.12.13", - "@babel/plugin-syntax-jsx": "^7.12.13", - "@babel/runtime": "^7.13.10", - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.5", - "@emotion/serialize": "^1.0.2", - "babel-plugin-macros": "^2.6.1", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.0.13" - }, - "dependencies": { - "babel-plugin-macros": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", - "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", - "requires": { - "@babel/runtime": "^7.7.2", - "cosmiconfig": "^6.0.0", - "resolve": "^1.12.0" - } - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "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==" - } - } - }, - "@emotion/cache": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.7.1.tgz", - "integrity": "sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==", - "requires": { - "@emotion/memoize": "^0.7.4", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "stylis": "4.0.13" - } - }, - "@emotion/hash": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.8.0.tgz", - "integrity": "sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==" - }, - "@emotion/is-prop-valid": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.1.tgz", - "integrity": "sha512-bW1Tos67CZkOURLc0OalnfxtSXQJMrAMV0jZTVGJUPSOd4qgjF3+tTD5CwJM13PHA8cltGW1WGbbvV9NpvUZPw==", - "requires": { - "@emotion/memoize": "^0.7.4" - } - }, - "@emotion/memoize": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.5.tgz", - "integrity": "sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==" - }, - "@emotion/react": { - "version": "11.7.1", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.7.1.tgz", - "integrity": "sha512-DV2Xe3yhkF1yT4uAUoJcYL1AmrnO5SVsdfvu+fBuS7IbByDeTVx9+wFmvx9Idzv7/78+9Mgx2Hcmr7Fex3tIyw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/cache": "^11.7.1", - "@emotion/serialize": "^1.0.2", - "@emotion/sheet": "^1.1.0", - "@emotion/utils": "^1.0.0", - "@emotion/weak-memoize": "^0.2.5", - "hoist-non-react-statics": "^3.3.1" - } - }, - "@emotion/serialize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.0.2.tgz", - "integrity": "sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==", - "requires": { - "@emotion/hash": "^0.8.0", - "@emotion/memoize": "^0.7.4", - "@emotion/unitless": "^0.7.5", - "@emotion/utils": "^1.0.0", - "csstype": "^3.0.2" - } - }, - "@emotion/sheet": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.1.0.tgz", - "integrity": "sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==" - }, - "@emotion/styled": { - "version": "11.6.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.6.0.tgz", - "integrity": "sha512-mxVtVyIOTmCAkFbwIp+nCjTXJNgcz4VWkOYQro87jE2QBTydnkiYusMrRGFtzuruiGK4dDaNORk4gH049iiQuw==", - "requires": { - "@babel/runtime": "^7.13.10", - "@emotion/babel-plugin": "^11.3.0", - "@emotion/is-prop-valid": "^1.1.1", - "@emotion/serialize": "^1.0.2", - "@emotion/utils": "^1.0.0" - } - }, - "@emotion/unitless": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz", - "integrity": "sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==" - }, - "@emotion/utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.0.0.tgz", - "integrity": "sha512-mQC2b3XLDs6QCW+pDQDiyO/EdGZYOygE8s5N5rrzjSI4M3IejPE/JPndCBwRT9z982aqQNi6beWs1UeayrQxxA==" - }, - "@emotion/weak-memoize": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz", - "integrity": "sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==" - }, - "@eslint/eslintrc": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz", - "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==", - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.1", - "globals": "^13.9.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "requires": { - "type-fest": "^0.20.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.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==" - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "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==" - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "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==" - } - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@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==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==" - }, - "@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==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==" - }, - "@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==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@mui/base": { - "version": "5.0.0-alpha.68", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.68.tgz", - "integrity": "sha512-q+3gX6EHuM/AyOn8fkoANQxSzIHBeuNsrGgb7SPP0y7NuM+4ZHG/b9882+OfHcilaSqPDWUQoLbphcBpw/m/RA==", - "requires": { - "@babel/runtime": "^7.17.0", - "@emotion/is-prop-valid": "^1.1.1", - "@mui/utils": "^5.4.1", - "@popperjs/core": "^2.4.4", - "clsx": "^1.1.1", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "@mui/material": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.4.1.tgz", - "integrity": "sha512-SxAT43UAjFTBBpJrN+oGrv40xP1uCa5Z49NfHt3m93xYeFzbxKOk0V9IKU7zlUjbsaVQ0i+o24yF5GULZmynlA==", - "requires": { - "@babel/runtime": "^7.17.0", - "@mui/base": "5.0.0-alpha.68", - "@mui/system": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "@types/react-transition-group": "^4.4.4", - "clsx": "^1.1.1", - "csstype": "^3.0.10", - "hoist-non-react-statics": "^3.3.2", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "react-transition-group": "^4.4.2" - } - }, - "@mui/private-theming": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.4.1.tgz", - "integrity": "sha512-Xbc4MXFZxv0A3hoc4TSDBhzjhstppKfc+gQcTMqqBZQP7KjnmxF+wO7rEPQuYRBihjCqQBdrHIGMLsKWrhkZkQ==", - "requires": { - "@babel/runtime": "^7.17.0", - "@mui/utils": "^5.4.1", - "prop-types": "^15.7.2" - } - }, - "@mui/styled-engine": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.4.1.tgz", - "integrity": "sha512-CFLNJkopRoAuShkgUZOTBVxdTlKu4w6L4kOwPi4r3QB2XXS6O5kyLHSsg9huUbtOYk5Dv5UZyUSc5pw4J7ezdg==", - "requires": { - "@babel/runtime": "^7.17.0", - "@emotion/cache": "^11.7.1", - "prop-types": "^15.7.2" - } - }, - "@mui/styles": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.4.1.tgz", - "integrity": "sha512-ekw2NBC06re0H9SvCA1XgtFcghB8AQdGPXD3mjIz5ik+X+LvR+f2TeoCpJpkKp7UQdcNn6uuYi6BO6irTiQhdw==", - "requires": { - "@babel/runtime": "^7.17.0", - "@emotion/hash": "^0.8.0", - "@mui/private-theming": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "clsx": "^1.1.1", - "csstype": "^3.0.10", - "hoist-non-react-statics": "^3.3.2", - "jss": "^10.8.2", - "jss-plugin-camel-case": "^10.8.2", - "jss-plugin-default-unit": "^10.8.2", - "jss-plugin-global": "^10.8.2", - "jss-plugin-nested": "^10.8.2", - "jss-plugin-props-sort": "^10.8.2", - "jss-plugin-rule-value-function": "^10.8.2", - "jss-plugin-vendor-prefixer": "^10.8.2", - "prop-types": "^15.7.2" - } - }, - "@mui/system": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.4.1.tgz", - "integrity": "sha512-07JBYf9iQdxIHZU8cFOLoxBnkQDUPLb7UBhNxo4998yEqpWFJ00WKgEVYBKvPl0X+MRU/20wqFz6yGIuCx4AeA==", - "requires": { - "@babel/runtime": "^7.17.0", - "@mui/private-theming": "^5.4.1", - "@mui/styled-engine": "^5.4.1", - "@mui/types": "^7.1.1", - "@mui/utils": "^5.4.1", - "clsx": "^1.1.1", - "csstype": "^3.0.10", - "prop-types": "^15.7.2" - } - }, - "@mui/types": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.1.1.tgz", - "integrity": "sha512-33hbHFLCwenTpS+T4m4Cz7cQ/ng5g+IgtINkw1uDBVvi1oM83VNt/IGzWIQNPK8H2pr0WIfkmboD501bVdYsPw==", - "requires": {} - }, - "@mui/utils": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.4.1.tgz", - "integrity": "sha512-5HzM+ZjlQqbSp7UTOvLlhAjkWB+o9Z4NzO0W+yhZ1KnxITr+zr/MBzYmmQ3kyvhui8pyhgRDoTcVgwb+02ZUZA==", - "requires": { - "@babel/runtime": "^7.17.0", - "@types/prop-types": "^15.7.4", - "@types/react-is": "^16.7.1 || ^17.0.0", - "prop-types": "^15.7.2", - "react-is": "^17.0.2" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.4.tgz", - "integrity": "sha512-zZbZeHQDnoTlt2AF+diQT0wsSXpvWiaIOZwBRdltNFhG1+I3ozyaw7U/nBiUwyJ0D+zwdXp0E3bWOl38Ag2BMw==", - "requires": { - "ansi-html-community": "^0.0.8", - "common-path-prefix": "^3.0.0", - "core-js-pure": "^3.8.1", - "error-stack-parser": "^2.0.6", - "find-up": "^5.0.0", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "@popperjs/core": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", - "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" - }, - "@rollup/plugin-babel": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", - "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", - "requires": { - "@babel/helper-module-imports": "^7.10.4", - "@rollup/pluginutils": "^3.1.0" - } - }, - "@rollup/plugin-node-resolve": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", - "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "@types/resolve": "1.17.1", - "builtin-modules": "^3.1.0", - "deepmerge": "^4.2.2", - "is-module": "^1.0.0", - "resolve": "^1.19.0" - } - }, - "@rollup/plugin-replace": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", - "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", - "requires": { - "@rollup/pluginutils": "^3.1.0", - "magic-string": "^0.25.7" - } - }, - "@rollup/pluginutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", - "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", - "requires": { - "@types/estree": "0.0.39", - "estree-walker": "^1.0.1", - "picomatch": "^2.2.2" - }, - "dependencies": { - "@types/estree": { - "version": "0.0.39", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", - "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" - } - } - }, - "@rushstack/eslint-patch": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz", - "integrity": "sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==" - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@surma/rollup-plugin-off-main-thread": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", - "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", - "requires": { - "ejs": "^3.1.6", - "json5": "^2.2.0", - "magic-string": "^0.25.0", - "string.prototype.matchall": "^4.0.6" - } - }, - "@svgr/babel-plugin-add-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==" - }, - "@svgr/babel-plugin-remove-jsx-attribute": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", - "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==" - }, - "@svgr/babel-plugin-remove-jsx-empty-expression": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", - "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==" - }, - "@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", - "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==" - }, - "@svgr/babel-plugin-svg-dynamic-title": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", - "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==" - }, - "@svgr/babel-plugin-svg-em-dimensions": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", - "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==" - }, - "@svgr/babel-plugin-transform-react-native-svg": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", - "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==" - }, - "@svgr/babel-plugin-transform-svg-component": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", - "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==" - }, - "@svgr/babel-preset": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", - "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", - "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", - "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", - "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", - "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", - "@svgr/babel-plugin-transform-svg-component": "^5.5.0" - } - }, - "@svgr/core": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", - "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", - "requires": { - "@svgr/plugin-jsx": "^5.5.0", - "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.0" - } - }, - "@svgr/hast-util-to-babel-ast": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", - "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", - "requires": { - "@babel/types": "^7.12.6" - } - }, - "@svgr/plugin-jsx": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", - "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", - "requires": { - "@babel/core": "^7.12.3", - "@svgr/babel-preset": "^5.5.0", - "@svgr/hast-util-to-babel-ast": "^5.5.0", - "svg-parser": "^2.0.2" - } - }, - "@svgr/plugin-svgo": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", - "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", - "requires": { - "cosmiconfig": "^7.0.0", - "deepmerge": "^4.2.2", - "svgo": "^1.2.2" - } - }, - "@svgr/webpack": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", - "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/plugin-transform-react-constant-elements": "^7.12.1", - "@babel/preset-env": "^7.12.1", - "@babel/preset-react": "^7.12.5", - "@svgr/core": "^5.5.0", - "@svgr/plugin-jsx": "^5.5.0", - "@svgr/plugin-svgo": "^5.5.0", - "loader-utils": "^2.0.0" - } - }, - "@testing-library/dom": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.11.3.tgz", - "integrity": "sha512-9LId28I+lx70wUiZjLvi1DB/WT2zGOxUh46glrSNMaWVx849kKAluezVzZrXJfTKKoQTmEOutLes/bHg4Bj3aA==", - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/runtime": "^7.12.5", - "@types/aria-query": "^4.2.0", - "aria-query": "^5.0.0", - "chalk": "^4.1.0", - "dom-accessibility-api": "^0.5.9", - "lz-string": "^1.4.4", - "pretty-format": "^27.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/jest-dom": { - "version": "5.16.2", - "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.16.2.tgz", - "integrity": "sha512-6ewxs1MXWwsBFZXIk4nKKskWANelkdUehchEOokHsN8X7c2eKXGw+77aRV63UU8f/DTSVUPLaGxdrj4lN7D/ug==", - "requires": { - "@babel/runtime": "^7.9.2", - "@types/testing-library__jest-dom": "^5.9.1", - "aria-query": "^5.0.0", - "chalk": "^3.0.0", - "css": "^3.0.0", - "css.escape": "^1.5.1", - "dom-accessibility-api": "^0.5.6", - "lodash": "^4.17.15", - "redent": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "aria-query": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.0.0.tgz", - "integrity": "sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@testing-library/react": { - "version": "12.1.2", - "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-12.1.2.tgz", - "integrity": "sha512-ihQiEOklNyHIpo2Y8FREkyD1QAea054U0MVbwH1m8N9TxeFz+KoJ9LkqoKqJlzx2JDm56DVwaJ1r36JYxZM05g==", - "requires": { - "@babel/runtime": "^7.12.5", - "@testing-library/dom": "^8.0.0" - } - }, - "@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", - "requires": { - "@babel/runtime": "^7.12.5" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" - }, - "@types/aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==" - }, - "@types/babel__core": { - "version": "7.1.18", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", - "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/d3": { - "version": "3.5.46", - "resolved": "https://registry.npmjs.org/@types/d3/-/d3-3.5.46.tgz", - "integrity": "sha512-jNHfiGd41+JUV43LTMzQNidyp4Hn0XfhoSmy8baE0d/N5pGYpD+yX03JacY/MH+smFxYOQGXlz4HxkRZOuRNOQ==", - "dev": true - }, - "@types/eslint": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.29.0.tgz", - "integrity": "sha512-VNcvioYDH8/FxaeTKkM4/TiTwt6pBV9E3OfGmvaw8tPl0rrHCJ4Ll15HRT+pMiFAf/MLQvAzC+6RzUMEL9Ceng==", - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" - }, - "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", - "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/json-schema": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.10.tgz", - "integrity": "sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==" - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" - }, - "@types/node": { - "version": "16.11.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.24.tgz", - "integrity": "sha512-Ezv33Rl4mIi6YdSHfIRNBd4Q9kUe5okiaw/ikvJiJDmuQZNW5kfdg7+oQPF8NO6sTcr3woIpj3jANzTXdvEZXA==" - }, - "@types/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" - }, - "@types/plotly.js": { - "version": "1.54.20", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.20.tgz", - "integrity": "sha512-vqiqq5chr72QoApD+6Hu52iuBvT5/po/sdVF74IBnacQV6J1MjH9OeFZ3GFDwKLF24xT++FMkEGAWcgVMwg2YQ==", - "dev": true, - "requires": { - "@types/d3": "^3" - } - }, - "@types/plotly.js-dist": { - "version": "npm:@types/plotly.js@1.54.20", - "resolved": "https://registry.npmjs.org/@types/plotly.js/-/plotly.js-1.54.20.tgz", - "integrity": "sha512-vqiqq5chr72QoApD+6Hu52iuBvT5/po/sdVF74IBnacQV6J1MjH9OeFZ3GFDwKLF24xT++FMkEGAWcgVMwg2YQ==", - "dev": true, - "requires": { - "@types/d3": "^3" - } - }, - "@types/prettier": { - "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz", - "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==" - }, - "@types/prop-types": { - "version": "15.7.4", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.4.tgz", - "integrity": "sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==" - }, - "@types/q": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", - "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" - }, - "@types/react": { - "version": "17.0.39", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.39.tgz", - "integrity": "sha512-UVavlfAxDd/AgAacMa60Azl7ygyQNRwC/DsHZmKgNvPmRR5p70AJ5Q9EAmL2NWOJmeV+vVUI4IAP7GZrN8h8Ug==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/react-dom": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.11.tgz", - "integrity": "sha512-f96K3k+24RaLGVu/Y2Ng3e1EbZ8/cVJvypZWd7cy0ofCBaf2lcM46xNhycMZ2xGwbBjRql7hOlZ+e2WlJ5MH3Q==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-is": { - "version": "17.0.3", - "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz", - "integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==", - "requires": { - "@types/react": "*" - } - }, - "@types/react-transition-group": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.4.tgz", - "integrity": "sha512-7gAPz7anVK5xzbeQW9wFBDg7G++aPLAFY0QaSMOou9rJZpbuI58WAuJrgu+qR92l61grlnCUe7AFX8KGahAgug==", - "requires": { - "@types/react": "*" - } - }, - "@types/resolve": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", - "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", - "requires": { - "@types/node": "*" - } - }, - "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "requires": { - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/testing-library__jest-dom": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.2.tgz", - "integrity": "sha512-vehbtyHUShPxIa9SioxDwCvgxukDMH//icJG90sXQBUm5lJOHLT5kNeU9tnivhnA/TkOFMzGIXN2cTc4hY8/kg==", - "requires": { - "@types/jest": "*" - } - }, - "@types/trusted-types": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.2.tgz", - "integrity": "sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==" - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "@typescript-eslint/eslint-plugin": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.6.tgz", - "integrity": "sha512-J4zYMIhgrx4MgnZrSDD7sEnQp7FmhKNOaqaOpaoQ/SfdMfRB/0yvK74hTnvH+VQxndZynqs5/Hn4t+2/j9bADg==", - "requires": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/type-utils": "5.30.6", - "@typescript-eslint/utils": "5.30.6", - "debug": "^4.3.4", - "functional-red-black-tree": "^1.0.1", - "ignore": "^5.2.0", - "regexpp": "^3.2.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/experimental-utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.30.6.tgz", - "integrity": "sha512-bqvT+0L8IjtW7MCrMgm9oVNxs4g7mESro1mm5c1/SNfTnHuFTf9OUX1WzVkTz75M9cp//UrTrSmGvK48NEKshQ==", - "requires": { - "@typescript-eslint/utils": "5.30.6" - } - }, - "@typescript-eslint/parser": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.30.6.tgz", - "integrity": "sha512-gfF9lZjT0p2ZSdxO70Xbw8w9sPPJGfAdjK7WikEjB3fcUI/yr9maUVEdqigBjKincUYNKOmf7QBMiTf719kbrA==", - "requires": { - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", - "debug": "^4.3.4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "@typescript-eslint/scope-manager": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.30.6.tgz", - "integrity": "sha512-Hkq5PhLgtVoW1obkqYH0i4iELctEKixkhWLPTYs55doGUKCASvkjOXOd/pisVeLdO24ZX9D6yymJ/twqpJiG3g==", - "requires": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6" - } - }, - "@typescript-eslint/type-utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.30.6.tgz", - "integrity": "sha512-GFVVzs2j0QPpM+NTDMXtNmJKlF842lkZKDSanIxf+ArJsGeZUIaeT4jGg+gAgHt7AcQSFwW7htzF/rbAh2jaVA==", - "requires": { - "@typescript-eslint/utils": "5.30.6", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - } - } - }, - "@typescript-eslint/types": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.30.6.tgz", - "integrity": "sha512-HdnP8HioL1F7CwVmT4RaaMX57RrfqsOMclZc08wGMiDYJBsLGBM7JwXM4cZJmbWLzIR/pXg1kkrBBVpxTOwfUg==" - }, - "@typescript-eslint/typescript-estree": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.6.tgz", - "integrity": "sha512-Z7TgPoeYUm06smfEfYF0RBkpF8csMyVnqQbLYiGgmUSTaSXTP57bt8f0UFXstbGxKIreTwQCujtaH0LY9w9B+A==", - "requires": { - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/visitor-keys": "5.30.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.30.6.tgz", - "integrity": "sha512-xFBLc/esUbLOJLk9jKv0E9gD/OH966M40aY9jJ8GiqpSkP2xOV908cokJqqhVd85WoIvHVHYXxSFE4cCSDzVvA==", - "requires": { - "@types/json-schema": "^7.0.9", - "@typescript-eslint/scope-manager": "5.30.6", - "@typescript-eslint/types": "5.30.6", - "@typescript-eslint/typescript-estree": "5.30.6", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0" - }, - "dependencies": { - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.30.6", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.6.tgz", - "integrity": "sha512-41OiCjdL2mCaSDi2SvYbzFLlqqlm5v1ZW9Ym55wXKL/Rx6OOB1IbuFGo71Fj6Xy90gJDFTlgOS+vbmtGHPTQQA==", - "requires": { - "@typescript-eslint/types": "5.30.6", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "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==" - }, - "@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==" - }, - "@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==" - }, - "@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==", - "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==" - }, - "@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==", - "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==", - "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==", - "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==" - }, - "@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==", - "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==", - "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==", - "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==", - "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==", - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "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==", - "requires": {} - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "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==", - "requires": { - "acorn": "^7.0.0", - "acorn-walk": "^7.0.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "address": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.0.tgz", - "integrity": "sha512-tNEZYz5G/zYunxFm7sfhAxkXEuLj3K6BKwv6ZURlsF6yiUQ65z0Q2wZW9L5cPUl9ocofGvXOdFYbFHp0+6MOig==" - }, - "adjust-sourcemap-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", - "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", - "requires": { - "loader-utils": "^2.0.0", - "regex-parser": "^2.2.11" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - } - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "requires": {} - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.1.tgz", - "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==" - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" - }, - "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" - }, - "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", - "es-shim-unscopables": "^1.0.0" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==" - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" - }, - "autoprefixer": { - "version": "10.4.4", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.4.tgz", - "integrity": "sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA==", - "requires": { - "browserslist": "^4.20.2", - "caniuse-lite": "^1.0.30001317", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "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==" - }, - "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==" - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-loader": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.3.tgz", - "integrity": "sha512-n4Zeta8NC3QAsuyiizu0GkmRcQ6clkV9WFUnUf1iXP//IeSKbWjofW3UHyZVwlOB4y039YQKefawyTn64Zwbuw==", - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^1.4.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", - "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "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==", - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" - } - }, - "babel-plugin-named-asset-import": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", - "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", - "requires": {} - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" - } - }, - "babel-plugin-transform-react-remove-prop-types": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", - "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-preset-react-app": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", - "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/plugin-proposal-class-properties": "^7.16.0", - "@babel/plugin-proposal-decorators": "^7.16.4", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", - "@babel/plugin-proposal-numeric-separator": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.0", - "@babel/plugin-proposal-private-methods": "^7.16.0", - "@babel/plugin-transform-flow-strip-types": "^7.16.0", - "@babel/plugin-transform-react-display-name": "^7.16.0", - "@babel/plugin-transform-runtime": "^7.16.4", - "@babel/preset-env": "^7.16.4", - "@babel/preset-react": "^7.16.0", - "@babel/preset-typescript": "^7.16.0", - "@babel/runtime": "^7.16.3", - "babel-plugin-macros": "^3.1.0", - "babel-plugin-transform-react-remove-prop-types": "^0.4.24" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" - }, - "bfj": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.0.2.tgz", - "integrity": "sha512-+e/UqUzwmzJamNF50tBV6tZPTORow7gQ96iFow+8b562OdMpEK0BcJEq2OSPEDmAbSMBQ7PKZ87ubFkgxpYWgw==", - "requires": { - "bluebird": "^3.5.5", - "check-types": "^11.1.1", - "hoopy": "^0.1.4", - "tryer": "^1.0.1" - } - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "browserslist": { - "version": "4.20.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz", - "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==", - "requires": { - "caniuse-lite": "^1.0.30001317", - "electron-to-chromium": "^1.4.84", - "escalade": "^3.1.1", - "node-releases": "^2.0.2", - "picocolors": "^1.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" - }, - "builtin-modules": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", - "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==" - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001317", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz", - "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==" - }, - "case-sensitive-paths-webpack-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", - "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==" - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "check-types": { - "version": "11.1.2", - "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.1.2.tgz", - "integrity": "sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "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==" - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", - "requires": { - "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "clsx": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz", - "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==" - }, - "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - }, - "common-path-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" - }, - "common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==" - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" - }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - } - }, - "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-js": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.21.1.tgz", - "integrity": "sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==" - }, - "core-js-compat": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz", - "integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==", - "requires": { - "browserslist": "^4.19.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==" - } - } - }, - "core-js-pure": { - "version": "3.21.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz", - "integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "css": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", - "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", - "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==" - } - } - }, - "css-blank-pseudo": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", - "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", - "requires": { - "timsort": "^0.3.0" - } - }, - "css-has-pseudo": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", - "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.7", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-prefers-color-scheme": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", - "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "requires": {} - }, - "css-select": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", - "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.1.0", - "domhandler": "^4.3.0", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "css-vendor": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", - "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", - "requires": { - "@babel/runtime": "^7.8.3", - "is-in-browser": "^1.0.2" - } - }, - "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==" - }, - "css.escape": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", - "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=" - }, - "cssdb": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.5.0.tgz", - "integrity": "sha512-Rh7AAopF2ckPXe/VBcoUS9JrCZNSyc60+KpgE6X25vpVxA32TmiqvExjkfhwP4wGSb6Xe8Z/JIyGqwgx/zZYFA==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "cssfontparser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", - "integrity": "sha1-9AIvyPlwDGgCnVQghK+69CWj8+M=" - }, - "cssnano": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.4.tgz", - "integrity": "sha512-hbfhVZreEPyzl+NbvRsjNo54JOX80b+j6nqG2biLVLaZHJEiqGyMh4xDGHtwhUKd5p59mj2GlDqlUBwJUuIu5A==", - "requires": { - "cssnano-preset-default": "^*", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.4.tgz", - "integrity": "sha512-w1Gg8xsebln6/axZ6qDFQHuglrGfbIHOIx0g4y9+etRlRab8CGpSpe6UMsrgJe4zhCaJ0LwLmc+PhdLRTwnhIA==", - "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^*", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^*", - "postcss-convert-values": "^*", - "postcss-discard-comments": "^*", - "postcss-discard-duplicates": "^*", - "postcss-discard-empty": "^*", - "postcss-discard-overridden": "^*", - "postcss-merge-longhand": "^*", - "postcss-merge-rules": "^*", - "postcss-minify-font-values": "^*", - "postcss-minify-gradients": "^*", - "postcss-minify-params": "^*", - "postcss-minify-selectors": "^*", - "postcss-normalize-charset": "^*", - "postcss-normalize-display-values": "^*", - "postcss-normalize-positions": "^*", - "postcss-normalize-repeat-style": "^*", - "postcss-normalize-string": "^*", - "postcss-normalize-timing-functions": "^*", - "postcss-normalize-unicode": "^*", - "postcss-normalize-url": "^*", - "postcss-normalize-whitespace": "^*", - "postcss-ordered-values": "^*", - "postcss-reduce-initial": "^*", - "postcss-reduce-transforms": "^*", - "postcss-svgo": "^*", - "postcss-unique-selectors": "^*" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "requires": { - "css-tree": "^1.1.2" - }, - "dependencies": { - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } - } - }, - "csstype": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.10.tgz", - "integrity": "sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==" - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "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=" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "deep-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==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "requires": { - "execa": "^5.0.0" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" - }, - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", - "requires": { - "acorn-node": "^1.6.1", - "defined": "^1.0.0", - "minimist": "^1.1.1" - } - }, - "didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "requires": { - "buffer-indexof": "^1.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-accessibility-api": { - "version": "0.5.11", - "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.11.tgz", - "integrity": "sha512-7X6GvzjYf4yTdRKuCVScV+aA9Fvh5r8WzWrXBH9w82ZWB/eYDMGCnazoC/YAqAzUJWHzLOnZqr46K3iEyUhUvw==" - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "requires": { - "utila": "~0.4" - } - }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" - } - }, - "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, - "domhandler": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.0.tgz", - "integrity": "sha512-fC0aXNQXqKSFTr2wDNZDhsEYjCiYsDWl3D01kwt25hm1YIPyDGHvvi3rw+PLqHAl/m71MaiF7d5zvBr0p5UB2g==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "dotenv-expand": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" - }, - "duplexer": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", - "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "ejs": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.6.tgz", - "integrity": "sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==", - "requires": { - "jake": "^10.6.1" - } - }, - "electron-to-chromium": { - "version": "1.4.85", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.85.tgz", - "integrity": "sha512-K9AsQ41WS2bjZUFpRWfvaS4RjEcRCamEkBJN1Z1TQILBfP1H8QnJ9ti0wiLiMv0sRjX3EHKzgs9jDnmGFx2jXg==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "error-stack-parser": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.7.tgz", - "integrity": "sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==", - "requires": { - "stackframe": "^1.1.1" - } - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "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==" - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - }, - "dependencies": { - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" - } - } - }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=" - }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "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==", - "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==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz", - "integrity": "sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==", - "requires": { - "@eslint/eslintrc": "^1.2.1", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "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": "^5.2.0", - "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", - "regexpp": "^3.2.0", - "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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "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==" - }, - "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", - "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==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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==" - } - } - }, - "eslint-config-react-app": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", - "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", - "requires": { - "@babel/core": "^7.16.0", - "@babel/eslint-parser": "^7.16.3", - "@rushstack/eslint-patch": "^1.1.0", - "@typescript-eslint/eslint-plugin": "^5.5.0", - "@typescript-eslint/parser": "^5.5.0", - "babel-preset-react-app": "^10.0.1", - "confusing-browser-globals": "^1.0.11", - "eslint-plugin-flowtype": "^8.0.3", - "eslint-plugin-import": "^2.25.3", - "eslint-plugin-jest": "^25.3.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.27.1", - "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-testing-library": "^5.0.1" - } - }, - "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==", - "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==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", - "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "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": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", - "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": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } - } - }, - "eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "requires": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "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.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "eslint-plugin-jest": { - "version": "25.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", - "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", - "requires": { - "@typescript-eslint/experimental-utils": "^5.0.0" - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", - "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", - "requires": { - "@babel/runtime": "^7.18.3", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.2", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.1", - "language-tags": "^1.0.5", - "minimatch": "^3.1.2", - "semver": "^6.3.0" - } - }, - "eslint-plugin-react": { - "version": "7.30.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", - "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", - "requires": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "requires": {} - }, - "eslint-plugin-testing-library": { - "version": "5.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.5.1.tgz", - "integrity": "sha512-plLEkkbAKBjPxsLj7x4jNapcHAg2ernkQlKKrN2I8NrQwPISZHyCUNvg5Hv3EDqOQReToQb5bnqXYbkijJPE/g==", - "requires": { - "@typescript-eslint/utils": "^5.13.0" - } - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "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==" - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" - }, - "eslint-webpack-plugin": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.1.1.tgz", - "integrity": "sha512-xSucskTN9tOkfW7so4EaiFIkulWLXwCB/15H917lR6pTv0Zot6/fetFucmENRb7J5whVSFKIvwnrnsa78SG2yg==", - "requires": { - "@types/eslint": "^7.28.2", - "jest-worker": "^27.3.1", - "micromatch": "^4.0.4", - "normalize-path": "^3.0.0", - "schema-utils": "^3.1.1" - } - }, - "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", - "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "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==", - "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==" - }, - "estree-walker": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", - "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "requires": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.19.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.2", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.7", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==" - } - } - }, - "ext": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", - "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", - "requires": { - "type": "^2.5.0" - }, - "dependencies": { - "type": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", - "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==" - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "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==", - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-loader": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", - "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0" - } - }, - "filelist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.2.tgz", - "integrity": "sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==", - "requires": { - "minimatch": "^3.0.4" - } - }, - "filesize": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", - "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" - }, - "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==" - }, - "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" - }, - "fork-ts-checker-webpack-plugin": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", - "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", - "requires": { - "@babel/code-frame": "^7.8.3", - "@types/json-schema": "^7.0.5", - "chalk": "^4.1.0", - "chokidar": "^3.4.2", - "cosmiconfig": "^6.0.0", - "deepmerge": "^4.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "memfs": "^3.1.2", - "minimatch": "^3.0.4", - "schema-utils": "2.7.0", - "semver": "^7.3.2", - "tapable": "^1.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "cosmiconfig": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", - "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.1.0", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.7.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" - } - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", - "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "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=" - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==" - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "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==" - }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "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==", - "requires": { - "is-glob": "^4.0.3" - } - }, - "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==" - }, - "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", - "requires": { - "global-prefix": "^3.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "dependencies": { - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, - "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" - }, - "gzip-size": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", - "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", - "requires": { - "duplexer": "^0.1.2" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" - }, - "harmony-reflect": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", - "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - }, - "dependencies": { - "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==" - } - } - }, - "hoopy": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", - "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "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==" - }, - "hyphenate-style-name": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", - "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==" - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "requires": {} - }, - "idb": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/idb/-/idb-6.1.5.tgz", - "integrity": "sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==" - }, - "identity-obj-proxy": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", - "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", - "requires": { - "harmony-reflect": "^1.4.6" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" - }, - "immer": { - "version": "9.0.15", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", - "integrity": "sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==" - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - } - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" - }, - "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==", - "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=" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "requires": { - "has-bigints": "^1.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==", - "requires": { - "binary-extensions": "^2.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==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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==" - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "requires": { - "has": "^1.0.3" - } - }, - "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==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "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==", - "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==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-in-browser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", - "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=" - }, - "is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-obj": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "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==" - }, - "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==", - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" - }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "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==", - "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==", - "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-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - }, - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jake": { - "version": "10.8.2", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", - "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", - "requires": { - "async": "0.9.x", - "chalk": "^2.4.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - }, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" - } - } - }, - "jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", - "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", - "requires": { - "@jest/core": "^27.5.1", - "import-local": "^3.0.2", - "jest-cli": "^27.5.1" - } - }, - "jest-canvas-mock": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.3.1.tgz", - "integrity": "sha512-5FnSZPrX3Q2ZfsbYNE3wqKR3+XorN8qFzDzB5o0golWgt6EOX1+emBnpOc9IAQ+NXFj8Nzm3h7ZdE/9H0ylBcg==", - "requires": { - "cssfontparser": "^1.2.1", - "moo-color": "^1.0.2" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==" - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==" - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "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==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watch-typeahead": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.0.0.tgz", - "integrity": "sha512-jxoszalAb394WElmiJTFBMzie/RDCF+W7Q29n5LzOPtcoQoHWfdUtHFkbhgf5NwWe8uMOxvKb/g7ea7CshfkTw==", - "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "jest-regex-util": "^27.0.0", - "jest-watcher": "^27.0.0", - "slash": "^4.0.0", - "string-length": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", - "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" - }, - "string-length": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", - "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", - "requires": { - "char-regex": "^2.0.0", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "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==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "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": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stable-stringify-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=" - }, - "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==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonpointer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", - "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" - }, - "jss": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss/-/jss-10.9.0.tgz", - "integrity": "sha512-YpzpreB6kUunQBbrlArlsMpXYyndt9JATbt95tajx0t4MTJJcCJdd4hdNpHmOIDiUJrF/oX5wtVFrS3uofWfGw==", - "requires": { - "@babel/runtime": "^7.3.1", - "csstype": "^3.0.2", - "is-in-browser": "^1.1.3", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-camel-case": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.9.0.tgz", - "integrity": "sha512-UH6uPpnDk413/r/2Olmw4+y54yEF2lRIV8XIZyuYpgPYTITLlPOsq6XB9qeqv+75SQSg3KLocq5jUBXW8qWWww==", - "requires": { - "@babel/runtime": "^7.3.1", - "hyphenate-style-name": "^1.0.3", - "jss": "10.9.0" - } - }, - "jss-plugin-default-unit": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.9.0.tgz", - "integrity": "sha512-7Ju4Q9wJ/MZPsxfu4T84mzdn7pLHWeqoGd/D8O3eDNNJ93Xc8PxnLmV8s8ZPNRYkLdxZqKtm1nPQ0BM4JRlq2w==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-global": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.9.0.tgz", - "integrity": "sha512-4G8PHNJ0x6nwAFsEzcuVDiBlyMsj2y3VjmFAx/uHk/R/gzJV+yRHICjT4MKGGu1cJq2hfowFWCyrr/Gg37FbgQ==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-nested": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.9.0.tgz", - "integrity": "sha512-2UJnDrfCZpMYcpPYR16oZB7VAC6b/1QLsRiAutOt7wJaaqwCBvNsosLEu/fUyKNQNGdvg2PPJFDO5AX7dwxtoA==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-props-sort": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.9.0.tgz", - "integrity": "sha512-7A76HI8bzwqrsMOJTWKx/uD5v+U8piLnp5bvru7g/3ZEQOu1+PjHvv7bFdNO3DwNPC9oM0a//KwIJsIcDCjDzw==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0" - } - }, - "jss-plugin-rule-value-function": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.9.0.tgz", - "integrity": "sha512-IHJv6YrEf8pRzkY207cPmdbBstBaE+z8pazhPShfz0tZSDtRdQua5jjg6NMz3IbTasVx9FdnmptxPqSWL5tyJg==", - "requires": { - "@babel/runtime": "^7.3.1", - "jss": "10.9.0", - "tiny-warning": "^1.0.2" - } - }, - "jss-plugin-vendor-prefixer": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.9.0.tgz", - "integrity": "sha512-MbvsaXP7iiVdYVSEoi+blrW+AYnTDvHTW6I6zqi7JcwXdc6I9Kbm234nEblayhF38EftoenbM+5218pidmC5gA==", - "requires": { - "@babel/runtime": "^7.3.1", - "css-vendor": "^2.0.8", - "jss": "10.9.0" - } - }, - "jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.2" - } - }, - "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==" - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "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==" - }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" - }, - "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==" - }, - "lodash.sortby": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", - "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "requires": { - "es5-ext": "~0.10.2" - } - }, - "lz-string": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=" - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", - "requires": { - "fs-monkey": "1.0.3" - } - }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "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-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "min-indent": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==" - }, - "mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", - "requires": { - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "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==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "moo-color": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.2.tgz", - "integrity": "sha512-5iXz5n9LWQzx/C2WesGFfpE6RLamzdHwsn3KpfzShwbfIqs7stnoEpaNErf/7+3mbxwZ4s8Foq7I0tPxw7BWHg==", - "requires": { - "color-name": "^1.1.4" - }, - "dependencies": { - "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==" - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - } - }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" - }, - "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "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==" - }, - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-forge": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.2.1.tgz", - "integrity": "sha512-Fcvtbb+zBcZXbTTVwqGA5W+MKBj56UjVRevvchv5XrcyXbmNdesfZL37nlcWOfpgHhgmxApw3tQbTr4CqNmX4w==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-releases": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz", - "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" - }, - "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==", - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "object-hash": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", - "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==" - }, - "object-inspect": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.0.tgz", - "integrity": "sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", - "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==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.getownpropertydescriptors": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.3.tgz", - "integrity": "sha512-VdDoCwvJI4QdC6ndjpqFmoL3/+HxffFBbcJzKi5hwLLqqx3mdbedRpfZDdK0SrOSauj8X4GzBvnDZl4vTN7dOw==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "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" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", - "requires": { - "@types/retry": "^0.12.0", - "retry": "^0.13.1" - } - }, - "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==" - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "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==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" - } - } - }, - "plotly.js-dist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/plotly.js-dist/-/plotly.js-dist-2.9.0.tgz", - "integrity": "sha512-CvzxfnKwXV4kiuBK12IOAPeG0EtTeL+K/Dax+1EwjdIxFJkvMKjnIlilonjydhS+Pcu9shuGiuAezhpmmYrDQA==" - }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "postcss": { - "version": "8.4.12", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz", - "integrity": "sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==", - "requires": { - "nanoid": "^3.3.1", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-attribute-case-insensitive": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.0.tgz", - "integrity": "sha512-b4g9eagFGq9T5SWX4+USfVyjIb3liPnjhHHRMP7FMB2kFVpYyfEscV0wP3eaXhKlcHKUut8lt5BGoeylWA/dBQ==", - "requires": { - "postcss-selector-parser": "^6.0.2" - } - }, - "postcss-browser-comments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", - "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", - "requires": {} - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-functional-notation": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.2.tgz", - "integrity": "sha512-DXVtwUhIk4f49KK5EGuEdgx4Gnyj6+t2jBSEmxvpIK9QI40tWrpS2Pua8Q7iIZWBrki2QOaeUdEaLPPa91K0RQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-hex-alpha": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.3.tgz", - "integrity": "sha512-fESawWJCrBV035DcbKRPAVmy21LpoyiXdPTuHUfWJ14ZRjY7Y7PA6P4g8z6LQGYhU1WAxkTxjIjurXzoe68Glw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-color-rebeccapurple": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.0.2.tgz", - "integrity": "sha512-SFc3MaocHaQ6k3oZaFwH8io6MdypkUtEy/eXzXEB1vEQlO3S3oDc/FSZA8AsS04Z25RirQhlDlHLh3dn7XewWw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.0.tgz", - "integrity": "sha512-GkyPbZEYJiWtQB0KZ0X6qusqFHUepguBCNFi9t5JJc7I2OTXG7C0twbTLvCfaKOLl3rSXmpAwV7W5txd91V84g==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-media": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.0.tgz", - "integrity": "sha512-FvO2GzMUaTN0t1fBULDeIvxr5IvbDXcIatt6pnJghc736nqNgsGao5NT+5+WVLAQiTt6Cb3YUms0jiPaXhL//g==", - "requires": {} - }, - "postcss-custom-properties": { - "version": "12.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.4.tgz", - "integrity": "sha512-i6AytuTCoDLJkWN/MtAIGriJz3j7UX6bV7Z5t+KgFz+dwZS15/mlTJY1S0kRizlk6ba0V8u8hN50Fz5Nm7tdZw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-custom-selectors": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.0.tgz", - "integrity": "sha512-/1iyBhz/W8jUepjGyu7V1OPcGbc636snN1yXEQCinb6Bwt7KxsiU7/bLQlp8GwAXzCh7cobBU5odNn/2zQWR8Q==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-dir-pseudo-class": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", - "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "requires": {} - }, - "postcss-double-position-gradients": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", - "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-env-function": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.5.tgz", - "integrity": "sha512-gPUJc71ji9XKyl0WSzAalBeEA/89kU+XpffpPxSaaaZ1c48OL36r1Ep5R6+9XAPkIiDlSvVAwP4io12q/vTcvA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-flexbugs-fixes": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", - "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", - "requires": {} - }, - "postcss-focus-visible": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", - "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-focus-within": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", - "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-font-variant": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", - "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "requires": {} - }, - "postcss-gap-properties": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", - "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "requires": {} - }, - "postcss-image-set-function": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", - "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-initial": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", - "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "requires": {} - }, - "postcss-js": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.0.tgz", - "integrity": "sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==", - "requires": { - "camelcase-css": "^2.0.1" - } - }, - "postcss-lab-function": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.1.2.tgz", - "integrity": "sha512-isudf5ldhg4fk16M8viAwAbg6Gv14lVO35N3Z/49NhbwPQ2xbiEoHgrRgpgQojosF4vF7jY653ktB6dDrUOR8Q==", - "requires": { - "@csstools/postcss-progressive-custom-properties": "^1.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-load-config": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.3.tgz", - "integrity": "sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==", - "requires": { - "lilconfig": "^2.0.4", - "yaml": "^1.10.2" - } - }, - "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", - "requires": { - "cosmiconfig": "^7.0.0", - "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "postcss-logical": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", - "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "requires": {} - }, - "postcss-media-minmax": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", - "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "requires": {} - }, - "postcss-merge-longhand": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.2.tgz", - "integrity": "sha512-18/bp9DZnY1ai9RlahOfLBbmIUKfKFPASxRCiZ1vlpZqWPCn8qWPFlEozqmWL+kBtcEQmG8W9YqGCstDImvp/Q==", - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^*" - } - }, - "postcss-merge-rules": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.0.tgz", - "integrity": "sha512-NecukEJovQ0mG7h7xV8wbYAkXGTO3MPKnXvuiXzOKcxoOodfTTKYjeo8TMhAswlSkjcPIBlnKbSFcTuVSDaPyQ==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.0.tgz", - "integrity": "sha512-J/TMLklkONn3LuL8wCwfwU8zKC1hpS6VcxFkNUNjmVt53uKqrrykR3ov11mdUYyqVMEx67slMce0tE14cE4DTg==", - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.1.tgz", - "integrity": "sha512-WCpr+J9Uz8XzMpAfg3UL8z5rde6MifBbh5L8bn8S2F5hq/YDJJzASYCnCHvAB4Fqb94ys8v95ULQkW2EhCFvNg==", - "requires": { - "browserslist": "^4.16.6", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "requires": {} - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-nested": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz", - "integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==", - "requires": { - "postcss-selector-parser": "^6.0.6" - } - }, - "postcss-nesting": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.3.tgz", - "integrity": "sha512-wUC+/YCik4wH3StsbC5fBG1s2Z3ZV74vjGqBFYtmYKlVxoio5TYGM06AiaKkQPPlkXWn72HKfS7Cw5PYxnoXSw==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-normalize": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", - "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", - "requires": { - "@csstools/normalize.css": "*", - "postcss-browser-comments": "^4", - "sanitize.css": "*" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", - "requires": { - "browserslist": "^4.16.6", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-opacity-percentage": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", - "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==" - }, - "postcss-ordered-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.0.tgz", - "integrity": "sha512-wU4Z4D4uOIH+BUKkYid36gGDJNQtkVJT7Twv8qH6UyfttbbJWyw4/xIPuVEkkCtQLAJ0EdsNSh8dlvqkXb49TA==", - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-overflow-shorthand": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", - "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "requires": {} - }, - "postcss-page-break": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", - "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "requires": {} - }, - "postcss-place": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", - "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-preset-env": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.4.2.tgz", - "integrity": "sha512-AmOkb8AeNNQwE/z2fHl1iwOIt8J50V8WR0rmLagcgIDoqlJZWjV3NdtOPnLGco1oN8DZe+Ss5B9ULbBeS6HfeA==", - "requires": { - "@csstools/postcss-color-function": "^1.0.2", - "@csstools/postcss-font-format-keywords": "^1.0.0", - "@csstools/postcss-hwb-function": "^1.0.0", - "@csstools/postcss-ic-unit": "^1.0.0", - "@csstools/postcss-is-pseudo-class": "^2.0.0", - "@csstools/postcss-normalize-display-values": "^1.0.0", - "@csstools/postcss-oklab-function": "^1.0.1", - "@csstools/postcss-progressive-custom-properties": "^1.2.0", - "autoprefixer": "^10.4.2", - "browserslist": "^4.19.3", - "css-blank-pseudo": "^3.0.3", - "css-has-pseudo": "^3.0.4", - "css-prefers-color-scheme": "^6.0.3", - "cssdb": "^6.4.0", - "postcss-attribute-case-insensitive": "^5.0.0", - "postcss-color-functional-notation": "^4.2.2", - "postcss-color-hex-alpha": "^8.0.3", - "postcss-color-rebeccapurple": "^7.0.2", - "postcss-custom-media": "^8.0.0", - "postcss-custom-properties": "^12.1.4", - "postcss-custom-selectors": "^6.0.0", - "postcss-dir-pseudo-class": "^6.0.4", - "postcss-double-position-gradients": "^3.1.0", - "postcss-env-function": "^4.0.5", - "postcss-focus-visible": "^6.0.4", - "postcss-focus-within": "^5.0.4", - "postcss-font-variant": "^5.0.0", - "postcss-gap-properties": "^3.0.3", - "postcss-image-set-function": "^4.0.6", - "postcss-initial": "^4.0.1", - "postcss-lab-function": "^4.1.1", - "postcss-logical": "^5.0.4", - "postcss-media-minmax": "^5.0.0", - "postcss-nesting": "^10.1.2", - "postcss-opacity-percentage": "^1.1.2", - "postcss-overflow-shorthand": "^3.0.3", - "postcss-page-break": "^3.0.4", - "postcss-place": "^7.0.4", - "postcss-pseudo-class-any-link": "^7.1.1", - "postcss-replace-overflow-wrap": "^4.0.0", - "postcss-selector-not": "^5.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-pseudo-class-any-link": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.1.tgz", - "integrity": "sha512-JRoLFvPEX/1YTPxRxp1JO4WxBVXJYrSY7NHeak5LImwJ+VobFMwYDQHvfTXEpcn+7fYIeGkC29zYFhFWIZD8fg==", - "requires": { - "postcss-selector-parser": "^6.0.9" - } - }, - "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-replace-overflow-wrap": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", - "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "requires": {} - }, - "postcss-selector-not": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", - "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "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==" - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - } - } - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" - }, - "pretty-bytes": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", - "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==" - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "requires": { - "asap": "~2.0.6" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - }, - "dependencies": { - "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==" - } - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - } - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==" - }, - "raf": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "requires": { - "performance-now": "^2.1.0" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", - "requires": { - "bytes": "3.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-app-polyfill": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", - "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", - "requires": { - "core-js": "^3.19.2", - "object-assign": "^4.1.1", - "promise": "^8.1.0", - "raf": "^3.4.1", - "regenerator-runtime": "^0.13.9", - "whatwg-fetch": "^3.6.2" - } - }, - "react-dev-utils": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", - "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "address": "^1.1.2", - "browserslist": "^4.18.1", - "chalk": "^4.1.2", - "cross-spawn": "^7.0.3", - "detect-port-alt": "^1.1.6", - "escape-string-regexp": "^4.0.0", - "filesize": "^8.0.6", - "find-up": "^5.0.0", - "fork-ts-checker-webpack-plugin": "^6.5.0", - "global-modules": "^2.0.0", - "globby": "^11.0.4", - "gzip-size": "^6.0.0", - "immer": "^9.0.7", - "is-root": "^2.1.0", - "loader-utils": "^3.2.0", - "open": "^8.4.0", - "pkg-up": "^3.1.0", - "prompts": "^2.4.2", - "react-error-overlay": "^6.0.11", - "recursive-readdir": "^2.2.2", - "shell-quote": "^1.7.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "loader-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", - "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-error-overlay": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", - "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "react-refresh": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", - "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==" - }, - "react-scripts": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", - "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", - "requires": { - "@babel/core": "^7.16.0", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@svgr/webpack": "^5.5.0", - "babel-jest": "^27.4.2", - "babel-loader": "^8.2.3", - "babel-plugin-named-asset-import": "^0.3.8", - "babel-preset-react-app": "^10.0.1", - "bfj": "^7.0.2", - "browserslist": "^4.18.1", - "camelcase": "^6.2.1", - "case-sensitive-paths-webpack-plugin": "^2.4.0", - "css-loader": "^6.5.1", - "css-minimizer-webpack-plugin": "^3.2.0", - "dotenv": "^10.0.0", - "dotenv-expand": "^5.1.0", - "eslint": "^8.3.0", - "eslint-config-react-app": "^7.0.1", - "eslint-webpack-plugin": "^3.1.1", - "file-loader": "^6.2.0", - "fs-extra": "^10.0.0", - "fsevents": "^2.3.2", - "html-webpack-plugin": "^5.5.0", - "identity-obj-proxy": "^3.0.0", - "jest": "^27.4.3", - "jest-resolve": "^27.4.2", - "jest-watch-typeahead": "^1.0.0", - "mini-css-extract-plugin": "^2.4.5", - "postcss": "^8.4.4", - "postcss-flexbugs-fixes": "^5.0.2", - "postcss-loader": "^6.2.1", - "postcss-normalize": "^10.0.1", - "postcss-preset-env": "^7.0.1", - "prompts": "^2.4.2", - "react-app-polyfill": "^3.0.0", - "react-dev-utils": "^12.0.1", - "react-refresh": "^0.11.0", - "resolve": "^1.20.0", - "resolve-url-loader": "^4.0.0", - "sass-loader": "^12.3.0", - "semver": "^7.3.5", - "source-map-loader": "^3.0.0", - "style-loader": "^3.3.1", - "tailwindcss": "^3.0.2", - "terser-webpack-plugin": "^5.2.5", - "webpack": "^5.64.4", - "webpack-dev-server": "^4.6.0", - "webpack-manifest-plugin": "^4.0.2", - "workbox-webpack-plugin": "^6.4.1" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "react-transition-group": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.2.tgz", - "integrity": "sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - } - }, - "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==", - "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==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - }, - "dependencies": { - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "redent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", - "requires": { - "indent-string": "^4.0.0", - "strip-indent": "^3.0.0" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "requires": { - "regenerate": "^1.4.2" - } - }, - "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==" - }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regex-parser": { - "version": "2.2.11", - "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", - "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==" - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" - }, - "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "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=" - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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==", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve-url-loader": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", - "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", - "requires": { - "adjust-sourcemap-loader": "^4.0.0", - "convert-source-map": "^1.7.0", - "loader-utils": "^2.0.0", - "postcss": "^7.0.35", - "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==" - }, - "postcss": { - "version": "7.0.39", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", - "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", - "requires": { - "picocolors": "^0.2.1", - "source-map": "^0.6.1" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "2.70.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.70.1.tgz", - "integrity": "sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-terser": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", - "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", - "requires": { - "@babel/code-frame": "^7.10.4", - "jest-worker": "^26.2.1", - "serialize-javascript": "^4.0.0", - "terser": "^5.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==" - }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sanitize.css": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", - "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" - }, - "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" - }, - "selfsigned": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.0.tgz", - "integrity": "sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ==", - "requires": { - "node-forge": "^1.2.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "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==", - "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==" - }, - "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==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-loader": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", - "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", - "requires": { - "abab": "^2.0.5", - "iconv-lite": "^0.6.3", - "source-map-js": "^1.0.1" - } - }, - "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==", - "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==", - "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==" - } - } - }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - } - } - }, - "stackframe": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.1.tgz", - "integrity": "sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==" - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-natural-compare": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", - "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "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==" - } - } - }, - "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", - "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.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "stringify-object": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "requires": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "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==" - }, - "strip-indent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", - "requires": { - "min-indent": "^1.0.0" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "requires": {} - }, - "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", - "requires": { - "browserslist": "^4.16.6", - "postcss-selector-parser": "^6.0.4" - } - }, - "stylis": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.0.13.tgz", - "integrity": "sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "svg-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", - "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "dependencies": { - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" - }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - }, - "dependencies": { - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" - } - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "requires": { - "boolbase": "~1.0.0" - } - } - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "tailwindcss": { - "version": "3.0.23", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.23.tgz", - "integrity": "sha512-+OZOV9ubyQ6oI2BXEhzw4HrqvgcARY38xv3zKcjnWtMIZstEsXdI9xftd1iB7+RbOnj2HOEzkA0OyB5BaSxPQA==", - "requires": { - "arg": "^5.0.1", - "chalk": "^4.1.2", - "chokidar": "^3.5.3", - "color-name": "^1.1.4", - "cosmiconfig": "^7.0.1", - "detective": "^5.2.0", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "normalize-path": "^3.0.0", - "object-hash": "^2.2.0", - "postcss": "^8.4.6", - "postcss-js": "^4.0.0", - "postcss-load-config": "^3.1.0", - "postcss-nested": "5.0.6", - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0", - "quick-lru": "^5.1.1", - "resolve": "^1.22.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==", - "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==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" - }, - "temp-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", - "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==" - }, - "tempy": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", - "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", - "requires": { - "is-stream": "^2.0.0", - "temp-dir": "^2.0.0", - "type-fest": "^0.16.0", - "unique-string": "^2.0.0" - }, - "dependencies": { - "type-fest": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", - "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", - "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==", - "requires": { - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", - "requires": { - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - } - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" - }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "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=" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, - "tryer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", - "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "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==", - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "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==" - }, - "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==", - "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==" - }, - "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==" - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", - "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=" - }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "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==" - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "web-vitals": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", - "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "webpack": { - "version": "5.70.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", - "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@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.9.2", - "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.9", - "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.1", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "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==", - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.1", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } - } - }, - "webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", - "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "portfinder": "^1.0.28", - "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", - "serve-index": "^1.9.1", - "sockjs": "^0.3.21", - "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - } - } - }, - "webpack-manifest-plugin": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", - "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", - "requires": { - "tapable": "^2.0.0", - "webpack-sources": "^2.2.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "webpack-sources": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", - "requires": { - "source-list-map": "^2.0.1", - "source-map": "^0.6.1" - } - } - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "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-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-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==", - "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" - } - }, - "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==" - }, - "workbox-background-sync": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.5.1.tgz", - "integrity": "sha512-T5a35fagLXQvV8Dr4+bDU+XYsP90jJ3eBLjZMKuCNELMQZNj+VekCODz1QK44jgoBeQk+vp94pkZV6G+e41pgg==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.5.1" - } - }, - "workbox-broadcast-update": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.5.1.tgz", - "integrity": "sha512-mb/oyblyEpDbw167cCTyHnC3RqCnCQHtFYuYZd+QTpuExxM60qZuBH1AuQCgvLtDcztBKdEYK2VFD9SZYgRbaQ==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-build": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.5.1.tgz", - "integrity": "sha512-coDUDzHvFZ1ADOl3wKCsCSyOBvkPKlPgcQDb6LMMShN1zgF31Mev/1HzN3+9T2cjjWAgFwZKkuRyExqc1v21Zw==", - "requires": { - "@apideck/better-ajv-errors": "^0.3.1", - "@babel/core": "^7.11.1", - "@babel/preset-env": "^7.11.0", - "@babel/runtime": "^7.11.2", - "@rollup/plugin-babel": "^5.2.0", - "@rollup/plugin-node-resolve": "^11.2.1", - "@rollup/plugin-replace": "^2.4.1", - "@surma/rollup-plugin-off-main-thread": "^2.2.3", - "ajv": "^8.6.0", - "common-tags": "^1.8.0", - "fast-json-stable-stringify": "^2.1.0", - "fs-extra": "^9.0.1", - "glob": "^7.1.6", - "lodash": "^4.17.20", - "pretty-bytes": "^5.3.0", - "rollup": "^2.43.1", - "rollup-plugin-terser": "^7.0.0", - "source-map": "^0.8.0-beta.0", - "stringify-object": "^3.3.0", - "strip-comments": "^2.0.1", - "tempy": "^0.6.0", - "upath": "^1.2.0", - "workbox-background-sync": "6.5.1", - "workbox-broadcast-update": "6.5.1", - "workbox-cacheable-response": "6.5.1", - "workbox-core": "6.5.1", - "workbox-expiration": "6.5.1", - "workbox-google-analytics": "6.5.1", - "workbox-navigation-preload": "6.5.1", - "workbox-precaching": "6.5.1", - "workbox-range-requests": "6.5.1", - "workbox-recipes": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1", - "workbox-streams": "6.5.1", - "workbox-sw": "6.5.1", - "workbox-window": "6.5.1" - }, - "dependencies": { - "@apideck/better-ajv-errors": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz", - "integrity": "sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==", - "requires": { - "json-schema": "^0.4.0", - "jsonpointer": "^5.0.0", - "leven": "^3.1.0" - } - }, - "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "source-map": { - "version": "0.8.0-beta.0", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", - "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", - "requires": { - "whatwg-url": "^7.0.0" - } - }, - "tr46": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", - "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", - "requires": { - "punycode": "^2.1.0" - } - }, - "webidl-conversions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", - "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" - }, - "whatwg-url": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", - "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", - "requires": { - "lodash.sortby": "^4.7.0", - "tr46": "^1.0.1", - "webidl-conversions": "^4.0.2" - } - } - } - }, - "workbox-cacheable-response": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.1.tgz", - "integrity": "sha512-3TdtH/luDiytmM+Cn72HCBLZXmbeRNJqZx2yaVOfUZhj0IVwZqQXhNarlGE9/k6U5Jelb+TtpH2mLVhnzfiSMg==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.1.tgz", - "integrity": "sha512-qObXZ39aFJ2N8X7IUbGrJHKWguliCuU1jOXM/I4MTT84u9BiKD2rHMkIzgeRP1Ixu9+cXU4/XHJq3Cy0Qqc5hw==" - }, - "workbox-expiration": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.5.1.tgz", - "integrity": "sha512-iY/cTADAQATMmPkUBRmQdacqq0TJd2wMHimBQz+tRnPGHSMH+/BoLPABPnu7O7rT/g/s59CUYYRGxe3mEgoJCA==", - "requires": { - "idb": "^6.1.4", - "workbox-core": "6.5.1" - } - }, - "workbox-google-analytics": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.5.1.tgz", - "integrity": "sha512-qZU46/h4dbionYT6Yk6iBkUwpiEzAfnO1W7KkI+AMmY7G9/gA03dQQ7rpTw8F4vWrG7ahTUGWDFv6fERtaw1BQ==", - "requires": { - "workbox-background-sync": "6.5.1", - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" - } - }, - "workbox-navigation-preload": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.5.1.tgz", - "integrity": "sha512-aKrgAbn2IMgzTowTi/ZyKdQUcES2m++9aGtpxqsX7Gn9ovCY8zcssaMEAMMwrIeveij5HiWNBrmj6MWDHi+0rg==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-precaching": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.5.1.tgz", - "integrity": "sha512-EzlPBxvmjGfE56YZzsT/vpVkpLG1XJhoplgXa5RPyVWLUL1LbwEAxhkrENElSS/R9tgiTw80IFwysidfUqLihg==", - "requires": { - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" - } - }, - "workbox-range-requests": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.5.1.tgz", - "integrity": "sha512-57Da/qRbd9v33YlHX0rlSUVFmE4THCjKqwkmfhY3tNLnSKN2L5YBS3qhWeDO0IrMNgUj+rGve2moKYXeUqQt4A==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-recipes": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.5.1.tgz", - "integrity": "sha512-DGsyKygHggcGPQpWafC/Nmbm1Ny3sB2vE9r//3UbeidXiQ+pLF14KEG1/0NNGRaY+lfOXOagq6d1H7SC8KA+rA==", - "requires": { - "workbox-cacheable-response": "6.5.1", - "workbox-core": "6.5.1", - "workbox-expiration": "6.5.1", - "workbox-precaching": "6.5.1", - "workbox-routing": "6.5.1", - "workbox-strategies": "6.5.1" - } - }, - "workbox-routing": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.1.tgz", - "integrity": "sha512-yAAncdTwanvlR8KPjubyvFKeAok8ZcIws6UKxvIAg0I+wsf7UYi93DXNuZr6RBSQrByrN6HkCyjuhmk8P63+PA==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-strategies": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.1.tgz", - "integrity": "sha512-JNaTXPy8wXzKkr+6za7/eJX9opoZk7UgY261I2kPxl80XQD8lMjz0vo9EOcBwvD72v3ZhGJbW84ZaDwFEhFvWA==", - "requires": { - "workbox-core": "6.5.1" - } - }, - "workbox-streams": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.5.1.tgz", - "integrity": "sha512-7jaTWm6HRGJ/ewECnhb+UgjTT50R42E0/uNCC4eTKQwnLO/NzNGjoXTdQgFjo4zteR+L/K6AtFAiYKH3ZJbAYw==", - "requires": { - "workbox-core": "6.5.1", - "workbox-routing": "6.5.1" - } - }, - "workbox-sw": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.5.1.tgz", - "integrity": "sha512-hVrQa19yo9wzN1fQQ/h2JlkzFpkuH2qzYT2/rk7CLaWt6tLnTJVFCNHlGRRPhytZSf++LoIy7zThT714sowT/Q==" - }, - "workbox-webpack-plugin": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.1.tgz", - "integrity": "sha512-SHtlQBpKruI16CAYhICDMkgjXE2fH5Yp+D+1UmBfRVhByZYzusVOykvnPm8ObJb9d/tXgn9yoppoxafFS7D4vQ==", - "requires": { - "fast-json-stable-stringify": "^2.1.0", - "pretty-bytes": "^5.4.1", - "upath": "^1.2.0", - "webpack-sources": "^1.4.3", - "workbox-build": "6.5.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==" - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } - } - }, - "workbox-window": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.5.1.tgz", - "integrity": "sha512-oRlun9u7b7YEjo2fIDBqJkU2hXtrEljXcOytRhfeQRbqXxjUOpFgXSGRSAkmDx1MlKUNOSbr+zfi8h5n7In3yA==", - "requires": { - "@types/trusted-types": "^2.0.2", - "workbox-core": "6.5.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "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==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz", - "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" - } } } diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4fdc5d79..18ad427f 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -4,8 +4,8 @@ import React from 'react'; import './App.css'; import { FormControl, FormLabel, FormControlLabel, Radio, RadioGroup, Checkbox, Button, InputLabel, MenuItem, Select } from '@mui/material'; -const numLayers = 6; -const layerNames = ["Monte Carlo Type I error estimates", "0th order upper bound", "Max gradient estimates", "1st order upper bound", "2nd order upper bound", "Total upper bound"] +const numLayers = 4; +const layerNames = ["Monte Carlo Type I error estimates", "Clopper-Pearson", "Tilt-Bound", "Total bound"] function App() { const [plotType, setPlotType] = React.useState("surface"); diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json index a273b0cf..f199ca8f 100644 --- a/frontend/tsconfig.json +++ b/frontend/tsconfig.json @@ -18,7 +18,7 @@ "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, - "jsx": "react-jsx" + "jsx": "preserve" }, "include": [ "src" diff --git a/generate_bazelrc b/generate_bazelrc deleted file mode 100755 index 3ca67dc0..00000000 --- a/generate_bazelrc +++ /dev/null @@ -1,80 +0,0 @@ -#!/usr/bin/env python3 -import os -import subprocess -from sys import platform - -ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) -OUT_PATH = os.path.join(ROOT_DIR, ".bazelrc") - - -def run_cmd(cmd): - try: - output = subprocess.check_output( - cmd.split(" "), stderr=subprocess.STDOUT - ).decode() - except subprocess.CalledProcessError as e: - output = e.output.decode() - raise RuntimeError(output) - return output.rstrip() - - -def main(): - with open(OUT_PATH, "w") as f: - # TODO: add ubsan + msan builds also - f.write( - """ -build --cxxopt="-std=c++17" -build --cxxopt="-Wall" -build --cxxopt="-fopenmp" -build --linkopt -fopenmp - -# ASAN build -# TODO: add ubsan + msan builds also -build:asan --strip=never -build:asan --copt -fsanitize=address -build:asan --copt -DADDRESS_SANITIZER -build:asan --copt -O1 -build:asan --copt -g -build:asan --copt -fno-omit-frame-pointer -build:asan --linkopt -fsanitize=address -""" - ) - - # MacOS - if platform == "darwin": - # get canonical brew path - conda_prefix = os.environ["CONDA_PREFIX"] - conda_bin = os.path.join(conda_prefix, "bin") - conda_inc = os.path.join(conda_prefix, "include") - conda_lib = os.path.join(conda_prefix, "lib") - - # get canonical omp path - sdk_path = run_cmd("xcrun --sdk macosx --show-sdk-path") - f.write( - f""" -# Use clang from conda-forge -build --action_env=CC={conda_bin}/clang -build --action_env=CXX={conda_bin}/clang++ -build --action_env=BAZEL_CXXOPTS=-isystem{conda_inc} -build --action_env=BAZEL_LINKOPTS=-L{conda_lib}:-Wl,-rpath,{conda_lib} -build --action_env=SDKROOT={sdk_path} -# Tell Bazel not to use the full Xcode toolchain on Mac OS -build --repo_env=BAZEL_USE_CPP_ONLY_TOOLCHAIN=1""" - ) - else: - # Linux - f.write( - """ -# Linux GCC -build:gcc --action_env=CC=gcc -build:gcc --action_env=CXX=g++ - -# Linux Clang (default) -build --action_env=CC=clang -build --action_env=CXX=clang++ -""" - ) - - -if __name__ == "__main__": - main() diff --git a/imprint/.gitignore b/imprint/.gitignore deleted file mode 100644 index 6709bcd8..00000000 --- a/imprint/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -build/ -third_party/ diff --git a/imprint/BUILD.bazel b/imprint/BUILD.bazel deleted file mode 100644 index 8f782d86..00000000 --- a/imprint/BUILD.bazel +++ /dev/null @@ -1,16 +0,0 @@ -cc_library( - name = "imprint", - hdrs = glob(["include/**"]), - defines = [ - # force Eigen to not use openmp to parallelize - # we will use openmp to divide up simulation jobs - # so there is no room for Eigen to further parallelize - "EIGEN_DONT_PARALLELIZE", - ], - includes = ["include"], - visibility = ["//visibility:public"], - deps = [ - "@com_github_scipy_boost//:boost", - "@eigen", - ], -) diff --git a/imprint/CMakeLists.txt b/imprint/CMakeLists.txt deleted file mode 100644 index 521dd736..00000000 --- a/imprint/CMakeLists.txt +++ /dev/null @@ -1,117 +0,0 @@ -cmake_minimum_required(VERSION 3.7) - -project("imprint" VERSION 1.0.0 - DESCRIPTION "A bed of simulation tools.") - -option(IMPRINT_ENABLE_TEST "Enable unit tests to be built." ON) -option(IMPRINT_ENABLE_EXAMPLE "Enable examples to be built." OFF) -option(IMPRINT_ENABLE_BENCHMARK "Enable benchmarks to be built." OFF) -option(IMPRINT_ENABLE_COVERAGE "Build glmnetpp with coverage" OFF) - -# Stoopid hack on windows -if (WIN32) - SET(CMAKE_FIND_LIBRARY_PREFIXES "") - SET(CMAKE_FIND_LIBRARY_SUFFIXES ".lib" ".dll") -endif() - -# Dependency on Eigen -find_package(Eigen3 3.4 CONFIG REQUIRED - HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen-3.4.0/build/share/eigen3) -message(STATUS "Eigen3 found at ${EIGEN3_INCLUDE_DIR}") - -# Set include dirs -set(IMPRINT_INCLUDEDIR "${${PROJECT_NAME}_SOURCE_DIR}/include") -set(IMPRINT_SOURCEDIR "${${PROJECT_NAME}_SOURCE_DIR}/src") - -# Add this library as interface (header-only) -add_library(${PROJECT_NAME} INTERFACE) - -target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE - $ - $) - -# Set C++17 standard for project target -target_compile_features(${PROJECT_NAME} INTERFACE cxx_std_17) - -# Set install destinations -install(TARGETS ${PROJECT_NAME} - EXPORT ${PROJECT_NAME}_Targets - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) - -# Create GlmnetppConfigVersion.cmake which contains current project version -# This is supposed to help with (major) version compatibility. -include(CMakePackageConfigHelpers) -write_basic_package_version_file("${PROJECT_NAME}ConfigVersion.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY SameMajorVersion) -configure_package_config_file( - "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in" - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - INSTALL_DESTINATION - ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake) - -install(EXPORT ${PROJECT_NAME}_Targets - FILE ${PROJECT_NAME}Targets.cmake - NAMESPACE ${PROJECT_NAME}:: - DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake) - -install(FILES - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" - "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}/cmake) - -install(DIRECTORY ${PROJECT_SOURCE_DIR}/include DESTINATION ${CMAKE_INSTALL_PREFIX}) - -# Automate the choosing of config -# if CMAKE_BUILD_TYPE not defined -if (NOT CMAKE_BUILD_TYPE) - # if binary directory ends with "release", use release mode - if (${PROJECT_BINARY_DIR} MATCHES "release$") - set(CMAKE_BUILD_TYPE RELEASE) - # otherwise, use debug mode - else() - set(CMAKE_BUILD_TYPE DEBUG) - endif() -endif() -message(STATUS "Compiling in ${CMAKE_BUILD_TYPE} mode") - -# Find pthread -if (NOT DEFINED IMPRINT_HAS_PTHREAD) - find_package(Threads REQUIRED) - if (CMAKE_USE_PTHREADS_INIT) - set(IMPRINT_HAS_PTHREAD ON) - endif() - if (DEFINED IMPRINT_HAS_PTHREAD) - set(IMPRINT_HAS_PTHREAD_MACRO "-DIMPRINT_HAS_PTHREAD") - endif() -endif() - -# Test subdirectory -if (IMPRINT_ENABLE_TEST) - # This will perform memcheck - include(CTest) - enable_testing() - - # Find googletest - find_package(GTest 1.11 CONFIG REQUIRED) - - # add test subdirectory - add_subdirectory(${PROJECT_SOURCE_DIR}/test ${PROJECT_BINARY_DIR}/test) -endif() - -# Example subdirectory -if (IMPRINT_ENABLE_EXAMPLE) - # add example subdirectory - add_subdirectory(${PROJECT_SOURCE_DIR}/example ${PROJECT_BINARY_DIR}/example) -endif() - -# Benchmark subdirectory -if (IMPRINT_ENABLE_BENCHMARK) - find_package(benchmark REQUIRED - HINTS ${CMAKE_CURRENT_SOURCE_DIR}/../../benchmark/build) - - # add benchmark subdirectory - add_subdirectory(${PROJECT_SOURCE_DIR}/benchmark ${PROJECT_BINARY_DIR}/benchmark) -endif() diff --git a/imprint/README.md b/imprint/README.md deleted file mode 100644 index 29d61837..00000000 --- a/imprint/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Imprint C++ Core Engine - -## Overview - -The Imprint C++ core engine, `imprint`, implements the core components of the -system. - -## Dependencies - -If you have set up a conda environment following the instructions in the main repo README, you should already have a C++ toolchain installed along with Bazel. If not, we require a C++ toolchain that supports C++-17 and [OpenMP](https://www.openmp.org/) and an installation of [Bazel](https://bazel.build/) - -Suggested compilers: -- [GCC >= 9.3.0](https://gcc.gnu.org/) -- [Clang >= 11.0.0](https://clang.llvm.org/) - -## Build - -__Note: `CMake` build has been deprecated and is not maintained.__ - -__Note: On Linux, it's best to specify whether you want to use `clang` or `gcc`. -Add the appropriate flag to each `bazel` call below: -``` -# For gcc -# For clang -bazel ... --config=gcc -bazel ... --config=clang -``` - -__To build `imprint`__: -``` -bazel build //imprint:imprint -``` -Note that `imprint` is a header-only library, -so this will simply collect all the headers and register its dependencies. -For release mode, add the flag `-c opt` after `build`. -For debug mode, add the flag `-c dbg` after `build`. - -__To run all tests__: -``` -bazel test -c dbg //imprint/test/... -``` - -__To run a particular test__: -``` -bazel test -c dbg //imprint/test:name-of-test -``` -where `name-of-test` is the same name as the subdirectory in `test/` -besides `testutil`. - -__To run the benchmarks__: -``` -bazel run -c opt //imprint/benchmark:name-of-benchmark -``` -where `name-of-benchmark` is the same name of -the benchmark `.cpp` file in the `benchmark/` folder. - -## Supported Models - -| Model | Description | -| ----- | ----------- | -| Binomial Control + k Treatment | Phase II/III trial with `k+1` total number of arms (1 control, k treatments) and each patient modeled as a `Bernoulli(p_i)` where `p_i` is the null probability of response for arm `i`. Phase II makes a selection of the treatment arm with most number of responses and Phase III constructs the [unpaired z-test](https://en.wikipedia.org/wiki/Paired_difference_test#Power_of_the_paired_Z-test) between the selected and control arms. | -| Exponential Control + k Treatment | Phase III trial with `k+1` total number of arms (1 control, k treatments) and each patient modeled as an `Exponential(lambda_i)` where `lambda_i` is the hazard for arm `i`. Currently, it only supports 1 treatment arm. Phase III makes a selection of the treatment arm with most number of responses and constructs the [logrank test](https://en.wikipedia.org/wiki/Logrank_test) between the treatment and control arms. | diff --git a/imprint/__init__.py b/imprint/__init__.py new file mode 100644 index 00000000..9b3684b0 --- /dev/null +++ b/imprint/__init__.py @@ -0,0 +1,9 @@ +from imprint.batching import batch +from imprint.batching import batch_all +from imprint.driver import calibrate +from imprint.driver import validate +from imprint.grid import cartesian_grid +from imprint.grid import Grid +from imprint.grid import hypo +from imprint.grid import init_grid +from imprint.nb_util import setup_nb diff --git a/imprint/batching.py b/imprint/batching.py new file mode 100644 index 00000000..be635beb --- /dev/null +++ b/imprint/batching.py @@ -0,0 +1,218 @@ +import jax.numpy as jnp +import numpy as np + + +def _pad_arg(a, axis, n_pad: int, module): + """ + Pads an array: + - along the specified axis. + - with the values at index 0 + - by n_pad elements. + - using the library "module" (either jnp or np). + + Padding with the values at index 0 avoids problems with using a placeholder + value like 0 in situations where the placeholder value would be invalid. + """ + pad_element = module.take(a, indices=0, axis=axis) + pad_element = module.expand_dims(pad_element, axis=axis) + new_shape = tuple(a.shape[i] if i != axis else n_pad for i in range(a.ndim)) + return module.concatenate((a, module.full(new_shape, pad_element)), axis=axis) + + +def _create_batched_args(args, in_axes, start, end, n_pad=None): + """ + Subsets and pads the arguments as specified in in_axes. + """ + + def arg_take_transform(arg, start, end, axis): + # It's very important to check if arg is a jax array or numpy because + # we don't want to copy arrays back and forth from GPU to CPU! + is_jax = isinstance(arg, jnp.DeviceArray) + module = jnp if is_jax else np + slc = [slice(None)] * len(arg.shape) + slc[axis] = slice(start, end) + arg_take = arg[tuple(slc)] + return ( + _pad_arg(arg_take, axis, n_pad, module) if n_pad is not None else arg_take + ) + + return [ + arg_take_transform(arg, start, end, axis) if axis is not None else arg + for arg, axis in zip(args, in_axes) + ] + + +def batch_yield(f, batch_size: int, in_axes): + """ + A generator that yields batches of output from the function f. + + Args: + f: The function to be batched. + batch_size: The batch size. + in_axes: For each argument, the axis along which to batch. If None, the + argument is not batched. + """ + + def internal(*args): + dims = np.array( + [arg.shape[axis] for arg, axis in zip(args, in_axes) if axis is not None] + ) + if len(dims) <= 0: + raise ValueError( + "f must take at least one argument " + "whose corresponding in_axes is not None." + ) + + if len(args) != len(in_axes): + raise ValueError( + "The number of arguments must match the number of in_axes." + ) + + dims_all_equal = np.sum(dims != dims[0]) == 0 + if not dims_all_equal: + raise ValueError( + "All batched arguments must have the same dimension " + "along their corresopnding in_axes." + ) + + dim = dims[0] + + # NOTE: i don't think we should shrink the batch size because that'll + # incur extra JIT overhead when a user calls with lots of different + # small sizes. but we could make this a configurable behavior. + # batch_size_new = min(batch_size, dim) + n_full_batches = dim // batch_size + remainder = dim % batch_size + n_pad = batch_size - remainder + pad_last = remainder > 0 + start = 0 + end = batch_size + + for _ in range(n_full_batches): + batched_args = _create_batched_args( + args=args, + in_axes=in_axes, + start=start, + end=end, + ) + yield (f(*batched_args), 0) + start += batch_size + end += batch_size + + if pad_last: + batched_args = _create_batched_args( + args=args, + in_axes=in_axes, + start=start, + end=dim, + n_pad=n_pad, + ) + yield (f(*batched_args), n_pad) + + return internal + + +def batch_all(f, batch_size: int, in_axes): + """ + A function wrapper that batches calls to f. + + Args: + f: Function to be batched. + batch_size: The batch size. + in_axes: For each argument, the axis along which to batch. If None, the + argument is not batched. + + Returns: + The batched results. + """ + f_batch = batch_yield(f, batch_size, in_axes) + + def internal(*args): + outs = tuple(out for out in f_batch(*args)) + return tuple(out[0] for out in outs), outs[-1][-1] + + return internal + + +def batch(f, batch_size: int, in_axes, out_axes=None): + """ + Batch a function call and concatenate the output. + + The API is intended to be similar to jax.vmap. + https://jax.readthedocs.io/en/latest/_modules/jax/_src/api.html#vmap + + If the function has a single output, the output is concatenated along the + specified axis. If the function has multiple outputs, each output is + concatenated along the corresponding axis. + + NOTE: In performance critical situations, it might be better to use batch_all + and decide for yourself how to concatenate or process the output. + + Args: + f: Function to be batched. + batch_size: The batch size. + in_axes: For each argument, the axis along which to batch. If None, the + argument is not batched. + out_axes: The axis along which to concatenate function outputs. + Defaults to None which will concatenate along the first axis. + + Returns: + A concatenated array or a tuple of concatenated arrays. + """ + f_batch_all = batch_all(f, batch_size, in_axes) + + def internal(*args): + outs, n_pad = f_batch_all(*args) + + return_first = False + if isinstance(outs[0], np.ndarray) or isinstance(outs[0], jnp.DeviceArray): + return_first = True + outs = [[o] for o in outs] + internal_out_axes = (0,) if out_axes is None else out_axes + else: + internal_out_axes = ( + out_axes + if out_axes is not None + else tuple(0 for _ in range(len(outs[0]))) + ) + + # We should concatenate using the same library as the function output + # to avoid accidental GPU to CPU copies. + is_jax = isinstance(outs[0][0], jnp.DeviceArray) + module = jnp if is_jax else np + + def entry(i, j): + arr = outs[j][i] + + # if we're concatenating on an axis that doesn't exist, we need to + # create that axis. + if j == len(outs) - 1 and n_pad > 0: + axis = internal_out_axes[i] + slc = [slice(None)] * arr.ndim + # N = outs[-1][i].shape[axis] + # slc[axis] = slice(0, N - n_pad) + slc[axis] = slice(0, batch_size - n_pad) + arr = arr[tuple(slc)] + + axis = internal_out_axes[i] + while axis >= arr.ndim: + arr = arr[..., None] + + return arr + + if len(outs) == 1: + return_vals = [entry(i, 0) for i in range(len(outs[0]))] + else: + return_vals = [ + module.concatenate( + [entry(i, j) for j in range(len(outs))], + axis=internal_out_axes[i], + ) + for i in range(len(outs[0])) + ] + if return_first: + return return_vals[0] + else: + return return_vals + + return internal diff --git a/imprint/benchmark/BUILD.bazel b/imprint/benchmark/BUILD.bazel deleted file mode 100644 index b4b6b49f..00000000 --- a/imprint/benchmark/BUILD.bazel +++ /dev/null @@ -1,14 +0,0 @@ -[cc_binary( - name = type_, - srcs = ["{}.cpp".format(type_)], - # See GH-64 - # malloc = "@com_google_tcmalloc//tcmalloc", - deps = [ - "//imprint", - "@com_github_google_benchmark//:benchmark_main", - ], -) for type_ in [ - "direct_bayes", - "imprint_bound", - "simple_selection_accum", -]] diff --git a/imprint/benchmark/CMakeLists.txt b/imprint/benchmark/CMakeLists.txt deleted file mode 100644 index f326506e..00000000 --- a/imprint/benchmark/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -# All macro tests -set( - BENCHMARKS - bench_binomial_2_arm - binomial_control_k_treatment_tune -) - -foreach( benchmark ${BENCHMARKS} ) - add_executable(${benchmark} ${CMAKE_CURRENT_SOURCE_DIR}/${benchmark}.cpp) - target_compile_options(${benchmark} PRIVATE -std=c++17) - target_link_libraries(${benchmark} - ${PROJECT_NAME} - benchmark::benchmark_main - Eigen3::Eigen) -endforeach() diff --git a/imprint/benchmark/direct_bayes.cpp b/imprint/benchmark/direct_bayes.cpp deleted file mode 100644 index 76e8b004..00000000 --- a/imprint/benchmark/direct_bayes.cpp +++ /dev/null @@ -1,115 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace { - -using gen_t = std::mt19937; -using value_t = double; -using uint_t = uint32_t; -using tile_t = grid::Tile; -using gr_t = grid::GridRange; -using model_t = model::binomial::DirectBayes; -using sgs_t = - typename model_t::template sim_global_state_t; -using ss_t = typename sgs_t::sim_state_t; -using vec_t = colvec_type; -using acc_t = bound::TypeIErrorAccum; - -const Eigen::Vector critical_values{0.95}; -const value_t alpha_prior = 0.0005; -const value_t beta_prior = 0.000005; -const value_t mu_sig_sq = 0.1; -const int n_integration_points = 16; -const int n_arm_size = 27; -const int n_arms = 4; -const int n_thetas = 64; -const size_t sim_size = 60 * 10; -const value_t efficacy_threshold = 0.3; -const auto [quadrature_points, weighted_density_logspace] = - sgs_t::get_quadrature(alpha_prior, beta_prior, n_integration_points, - n_arm_size); - -vec_t get_efficacy_thresholds() { - Eigen::Vector efficacy_thresholds(n_arms); - efficacy_thresholds.fill(efficacy_threshold); - return efficacy_thresholds; -} - -struct MockHyperPlane : grid::HyperPlane { - using base_t = HyperPlane; - using base_t::base_t; -}; - -static void BM_get_posterior_exceedance_probs(benchmark::State& state) { - const auto phat = Eigen::Vector{28, 14, 33, 36}.array() / 50; - for (auto _ : state) { - const auto got = sgs_t::get_posterior_exceedance_probs( - phat, quadrature_points, weighted_density_logspace, - get_efficacy_thresholds(), n_arm_size, mu_sig_sq); - } -} - -BENCHMARK(BM_get_posterior_exceedance_probs); - -static void BM_rej_len(benchmark::State& state) { - using hp_t = MockHyperPlane; - auto theta_1d = grid::Gridder::make_grid(n_thetas, -1., 0.); - auto radius = grid::Gridder::radius(n_thetas, -1., 0.); - - colvec_type normal(n_arms); - std::vector hps; - for (int i = 0; i < n_arms; ++i) { - normal.setZero(); - normal(i) = -1; - hps.emplace_back(normal, logit(efficacy_threshold)); - } - - // populate theta as the cartesian product of theta_1d - gr_t grid_range(n_arms, ipow(n_thetas, n_arms)); - auto& thetas = grid_range.thetas(); - dAryInt bits(n_thetas, n_arms); - for (size_t j = 0; j < grid_range.n_gridpts(); ++j) { - for (size_t i = 0; i < n_arms; ++i) { - thetas(i, j) = theta_1d[bits()[i]]; - } - ++bits; - } - - // populate radii as fixed radius - grid_range.radii().array() = radius; - - // create tile information - grid_range.create_tiles(hps); - grid_range.prune(); - - colvec_type efficacy_thresholds(n_arms); - efficacy_thresholds.fill(efficacy_threshold); - size_t n_threads = std::thread::hardware_concurrency(); - model_t model(n_arms, n_arm_size, critical_values, efficacy_thresholds); - - auto sgs = - model.make_sim_global_state(grid_range); - size_t seed = 3214; - colvec_type rej_len(grid_range.n_tiles()); - acc_t acc_os(critical_values.size(), grid_range.n_tiles(), n_arms); - for (auto _ : state) { - driver::accumulate(sgs, grid_range, acc_os, sim_size, seed, n_threads); - } -} - -BENCHMARK(BM_rej_len); - -} // namespace -} // namespace imprint diff --git a/imprint/benchmark/imprint_bound.cpp b/imprint/benchmark/imprint_bound.cpp deleted file mode 100644 index 7208b4c0..00000000 --- a/imprint/benchmark/imprint_bound.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace { - -static void BM_imprint_bound(benchmark::State& state) { - using namespace model::binomial; - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using hp_t = grid::HyperPlane; - using kbs_t = ImprintBoundStateFixedNDefault; - using kb_t = bound::TypeIErrorBound; - using acc_t = bound::TypeIErrorAccum; - - size_t n_models = 1; - size_t n_tiles = 180000; - size_t n_params = 3; - size_t n_arm_samples = 21; // arbitrary - value_t alpha = 0.025; - value_t delta = 0.025; - - std::vector hps; - - gr_t gr(n_params, n_tiles); - gr.create_tiles(hps); - - acc_t acc_o(n_models, n_tiles, n_params); - - auto& typeI_sum = acc_o.typeI_sum__(); - typeI_sum.setRandom(); - typeI_sum /= typeI_sum.maxCoeff() / alpha; - auto& score_sum = acc_o.score_sum__(); - score_sum.setRandom(); - - kbs_t kbs(n_arm_samples, gr); - kb_t kb; - - for (auto _ : state) { - kb.create(kbs, acc_o, gr, delta); - } -} - -BENCHMARK(BM_imprint_bound); - -} // namespace -} // namespace imprint diff --git a/imprint/benchmark/simple_selection_accum.cpp b/imprint/benchmark/simple_selection_accum.cpp deleted file mode 100644 index e3366b5f..00000000 --- a/imprint/benchmark/simple_selection_accum.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include "benchmark/benchmark.h" - -namespace imprint { - -struct binomial_fixture : benchmark::Fixture { - using gen_t = std::mt19937; - using value_t = double; - using uint_t = uint32_t; - using grid_t = grid::Gridder; - using tile_t = grid::Tile; - using grid_range_t = grid::GridRange; - using hp_t = grid::HyperPlane; - using model_t = model::binomial::SimpleSelection; - using acc_t = bound::TypeIErrorAccum; - - size_t n_thetas_1d = 64; - double lower = -0.5; - double upper = 0.5; - size_t n_sim = 1e5; - double alpha = 0.025; - double delta = 0.025; - size_t grid_dim = 3; - size_t n_samples = 250; - size_t ph2_size = 50; - double thresh = 1.96; - size_t n_threads = std::thread::hardware_concurrency(); -}; - -BENCHMARK_DEFINE_F(binomial_fixture, bench_fit)(benchmark::State& state) { - size_t grid_radius = grid_t::radius(n_thetas_1d, lower, upper); - - colvec_type theta_1d; - Eigen::VectorXd thresholds; - - // initialize threshold - thresholds.resize(1); - thresholds << thresh; - - // define hyperplanes - std::vector hps; - for (size_t k = 1; k < grid_dim; ++k) { - colvec_type normal(grid_dim); - normal.setZero(); - normal[0] = 1; - normal[k] = -1; - hps.emplace_back(normal, 0); - } - - // create grid - theta_1d = - grid_t::make_grid(n_thetas_1d, lower, upper).template cast(); - dAryInt bits(n_thetas_1d, grid_dim); - grid_range_t grid_range(grid_dim, bits.n_unique()); - for (size_t j = 0; j < bits.n_unique(); ++j, ++bits) { - for (size_t i = 0; i < grid_dim; ++i) { - grid_range.thetas()(i, j) = theta_1d[bits()(i)]; - } - } - grid_range.radii().array() = grid_radius; - grid_range.sim_sizes().array() = n_sim; - - grid_range.create_tiles(hps); - grid_range.prune(); - - model_t model(grid_dim, n_samples, ph2_size, thresholds); - auto sgs = model.make_sim_global_state(grid_range); - - acc_t acc_o(model.n_models(), grid_range.n_tiles(), grid_range.n_params()); - - for (auto _ : state) { - driver::accumulate(sgs, grid_range, acc_o, n_sim, 0, n_threads); - } -} - -BENCHMARK_REGISTER_F(binomial_fixture, bench_fit); - -} // namespace imprint diff --git a/imprint/bound/binomial.py b/imprint/bound/binomial.py new file mode 100644 index 00000000..755b7ccf --- /dev/null +++ b/imprint/bound/binomial.py @@ -0,0 +1,351 @@ +import jax +import jax.numpy as jnp + + +def logistic(t): + """ + Numerically stable implementation of log(1 + e^t). + """ + return jnp.maximum(t, 0) + jnp.log(1 + jnp.exp(-jnp.abs(t))) + + +def logistic_secant(t, v, q, b): + """ + Numerically stable implementation of the secant of logistic defined by: + (logistic(t + q * v) - logistic(b)) / q + defined for all t, v in R and q > 0. + It is only numerically stable if t, b are not too large in magnitude + and q is sufficiently away from 0. + """ + t_div_q = t / q + ls_1 = jnp.maximum(t_div_q + v, 0) - jnp.maximum(b, 0) / q + ls_2 = jnp.log(1 + jnp.exp(-jnp.abs(t + q * v))) + ls_2 = ls_2 - jnp.log(1 + jnp.exp(-jnp.abs(b))) + ls_2 = ls_2 / q + return ls_1 + ls_2 + + +def A(n, t): + """ + Log-partition function of a Bernoulli family with d-arms + where arm i has n Bernoullis with logit t_i. + """ + return n * jnp.sum(logistic(t)) + + +def A_secant(n, t, v, q, b): + """ + Numerically stable implementation of the secant of A: + (A(t + q * v) - A(b)) / q + """ + return n * jnp.sum(logistic_secant(t, v, q, b)) + + +def dA(n, t): + """ + Gradient of the log-partition function A. + """ + return n * jax.nn.sigmoid(t) + + +def _simple_bisection(f, m, M, tol): + def _cond_fun(args): + m, M = args + return (M - m) / M > tol + + def _body_fun(args): + m, M = args + x = jnp.linspace(m, M, 4) + y = f(x) + i_star = jnp.argmin(y) + new_min = jnp.where( + i_star <= 1, + m, + x[i_star - 1], + ) + new_max = jnp.where( + i_star <= 1, + x[i_star + 1], + M, + ) + return ( + new_min, + new_max, + ) + + _init_val = (m, M) + m, M = jax.lax.while_loop( + _cond_fun, + _body_fun, + _init_val, + ) + return (M + m) / 2.0 + + +class BaseTileQCPSolver: + def __init__(self, n, m=1, M=1e7, tol=1e-5): + self.n = n + self.min = m + self.max = M + self.tol = tol + + +class TileForwardQCPSolver(BaseTileQCPSolver): + r""" + Solves the following strictly quasi-convex optimization problem: + minimize_q max_{v \in S} L_v(q) + subject to q >= 1 + where + L_v(q) = (psi(theta_0, v, q) - log(a)) / q - psi(theta_0, v, 1) + """ + + def obj_v(self, theta_0, v, q, loga): + secq = A_secant( + self.n, + theta_0, + v, + q, + theta_0, + ) + sec1 = A_secant( + self.n, + theta_0, + v, + 1, + theta_0, + ) + return secq - loga / q - sec1 + + def obj(self, theta_0, vs, q, loga): + _obj_each_vmap = jax.vmap(self.obj_v, in_axes=(None, 0, None, None)) + return jnp.max(_obj_each_vmap(theta_0, vs, q, loga)) + + def obj_vmap(self, theta_0, vs, qs, loga): + return jax.vmap( + self.obj, + in_axes=(None, None, 0, None), + )(theta_0, vs, qs, loga) + + def solve(self, theta_0, vs, a): + loga = jnp.log(a) + return jax.lax.cond( + loga < -1e10, + lambda: jnp.inf, + lambda: _simple_bisection( + lambda x: self.obj_vmap(theta_0, vs, x, loga), + self.min, + self.max, + self.tol, + ), + ) + + +class TileBackwardQCPSolver(BaseTileQCPSolver): + r""" + Solves the following strictly quasi-convex optimization problem: + minimize_q max_{v \in S} L_v(q) + subject to q >= 1 + where + L_v(q) = (q/(q-1)) * (psi(theta_0, v, q) / q - psi(theta_0, v, 1) - log(a)) + """ + + def obj_v(self, theta_0, v, q): + secq = A_secant( + self.n, + theta_0, + v, + q, + theta_0, + ) + sec1 = A_secant( + self.n, + theta_0, + v, + 1, + theta_0, + ) + return secq - sec1 + + def obj(self, theta_0, vs, q, loga): + p = 1.0 / (1.0 - 1.0 / q) + _obj_each_vmap = jax.vmap(self.obj_v, in_axes=(None, 0, None)) + return p * (jnp.max(_obj_each_vmap(theta_0, vs, q)) - loga) + + def obj_vmap(self, theta_0, vs, qs, loga): + return jax.vmap( + self.obj, + in_axes=(None, None, 0, None), + )(theta_0, vs, qs, loga) + + def solve(self, theta_0, vs, a): + loga = jnp.log(a) + return jax.lax.cond( + loga < -1e10, + lambda: jnp.inf, + lambda: _simple_bisection( + lambda x: self.obj_vmap(theta_0, vs, x, loga), + self.min, + self.max, + self.tol, + ), + ) + + +def tilt_bound_fwd( + q, + n, + theta_0, + v, + f0, +): + """ + Computes the forward q-Holder bound given by: + f0 * exp[L(q) - (A(theta_0 + v) - A(theta_0))] + for fixed f0, n, theta_0, v, + where L, A are as given in ForwardQCPSolver. + + Parameters: + ----------- + q: q parameter. + n: scalar Binomial size parameter. + theta_0: d-array pivot point. + v: d-array displacement vector. + f0: probability value at theta_0. + """ + expo = A_secant(n, theta_0, v, q, theta_0) + expo = expo - A_secant(n, theta_0, v, 1, theta_0) + return f0 ** (1 - 1 / q) * jnp.exp(expo) + + +def tilt_bound_fwd_tile( + q, + n, + theta_0, + vs, + f0, +): + """ + Computes the forward q-Holder bound given by: + f0 * max_{v in vs} exp[L(q) - (A(theta_0 + v) - A(theta_0))] + for fixed f0, n, theta_0, vs, + where L, A are as given in ForwardQCPSolver. + + Parameters: + ----------- + q: q parameter. + n: scalar Binomial size parameter. + theta_0: d-array pivot point. + vs: (k, d)-array of displacement vectors + denoting the corners of a rectangle. + f0: probability value at theta_0. + """ + + def _expo(v): + expo = A_secant(n, theta_0, v, q, theta_0) + expo = expo - A_secant(n, theta_0, v, 1, theta_0) + return expo + + max_expo = jnp.max(jax.vmap(_expo, in_axes=(0,))(vs)) + return f0 ** (1 - 1 / q) * jnp.exp(max_expo) + + +def tilt_bound_bwd( + q, + n, + theta_0, + v, + alpha, +): + """ + Computes the backward q-Holder bound given by: + exp(-L(q)) + where L(q) is as given in BackwardQCPSolver. + The resulting value is alpha' such that + q_holder_bound_fwd(q, n, theta_0, v, alpha') = alpha + + Parameters: + ----------- + q: q parameter. + n: scalar Binomial size parameter. + theta_0: d-array pivot point. + v: d-array displacement from pivot point. + alpha: target level. + """ + + def _bound(q): + p = 1 / (1 - 1 / q) + slope_diff = A_secant(n, theta_0, v, q, theta_0) + slope_diff = slope_diff - A_secant(n, theta_0, v, 1, theta_0) + return (alpha * jnp.exp(-slope_diff)) ** p + + return jax.lax.cond( + q <= 1, + lambda _: (alpha >= 1) + 0.0, + _bound, + q, + ) + + +def tilt_bound_bwd_tile( + q, + n, + theta_0, + vs, + alpha, +): + """ + Computes the backward q-Holder bound given by: + max_{v in vs} exp(-L(q)) + where L(q) is as given in BackwardQCPSolver. + + Parameters: + ----------- + q: q parameter. + n: scalar Binomial size parameter. + theta_0: d-array pivot point. + vs: (k, d)-array displacement from pivot point. + These represent the corners of the rectangular tile. + alpha: target level. + """ + p = 1 / (1 - 1 / q) + + def _expo(v): + slope_diff = A_secant(n, theta_0, v, q, theta_0) + slope_diff = slope_diff - A_secant(n, theta_0, v, 1, theta_0) + return slope_diff + + def _bound(): + max_expo = jnp.max(jax.vmap(_expo, in_axes=(0,))(vs)) + return (alpha * jnp.exp(-max_expo)) ** p + + return jax.lax.cond( + q <= 1, + lambda: (alpha >= 1) + 0.0, + _bound, + ) + + +class BinomialBound: + @staticmethod + def get_backward_bound(family_params): + n = family_params["n"] + bwd_solver = TileBackwardQCPSolver(n) + + def backward_bound(alpha_target, theta0, vertices): + v = vertices - theta0 + q_opt = bwd_solver.solve(theta0, v, alpha_target) + return tilt_bound_bwd_tile(q_opt, n, theta0, v, alpha_target) + + return jax.jit(jax.vmap(backward_bound, in_axes=(None, 0, 0))) + + @staticmethod + def get_forward_bound(family_params): + n = family_params["n"] + fwd_solver = TileForwardQCPSolver(n) + + def forward_bound(f0, theta0, vertices): + vs = vertices - theta0 + q_opt = fwd_solver.solve(theta0, vs, f0) + return tilt_bound_fwd_tile(q_opt, n, theta0, vs, f0) + + return jax.jit(jax.vmap(forward_bound)) diff --git a/imprint/bound/multivariate_normal.py b/imprint/bound/multivariate_normal.py new file mode 100644 index 00000000..dbca3063 --- /dev/null +++ b/imprint/bound/multivariate_normal.py @@ -0,0 +1,100 @@ +import jax +import jax.numpy as jnp + + +def _quad_form(v, A): + return v.dot(A @ v) + + +class ForwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * (q-1) * v^T cov v - log(f0) / q + with respect to q >= 1. + """ + + def __init__(self, cov): + self.cov = cov + + def solve(self, v, f0): + logf0 = jnp.log(f0) + mv = _quad_form(v, self.cov) + q_opt = jnp.sqrt(-2 * logf0 / mv) + return jnp.maximum(q_opt, 1) + + +class BackwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * q * v^T cov v - log(alpha) * q / (q-1) + with respect to q >= 1. + """ + + def __init__(self, cov): + self.cov = cov + + def solve(self, v, alpha): + mv = _quad_form(v, self.cov) + return 1 + jnp.sqrt(-2 * jnp.log(alpha) / mv) + + +class TileForwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * (q-1) * max_v v^T cov v - log(f0) / q + with respect to q >= 1. + """ + + def __init__(self, cov): + self.cov = cov + + def solve(self, vs, f0): + logf0 = jnp.log(f0) + mv = jnp.max(jax.vmap(_quad_form, in_axes=(0, None))(vs, self.cov)) + q_opt = jnp.sqrt(-2 * logf0 / mv) + return jnp.maximum(q_opt, 1) + + +class TileBackwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * q * max_v v^T cov v - log(alpha) * q / (q-1) + with respect to q >= 1. + """ + + def __init__(self, cov): + self.cov = cov + + def solve(self, vs, alpha): + mv = jnp.max(jax.vmap(_quad_form, in_axes=(0, None))(vs, self.cov)) + return 1 + jnp.sqrt(-2 * jnp.log(alpha) / mv) + + +def tilt_bound_fwd(q, cov, v, f0): + p_inv = 1 - 1 / q + expo = 0.5 * (q - 1) * _quad_form(v, cov) + return f0**p_inv * jnp.exp(expo) + + +def tilt_bound_fwd_tile(q, cov, vs, f0): + def _compute_expo(v): + return 0.5 * (q - 1) * _quad_form(v, cov) + + p_inv = 1 - 1 / q + max_expo = jnp.max(jax.vmap(_compute_expo, in_axes=(0,))(vs)) + return f0**p_inv * jnp.exp(max_expo) + + +def tilt_bound_bwd(q, cov, v, alpha): + p = 1 / (1 - 1 / q) + expo = 0.5 * (q - 1) * _quad_form(v, cov) + return (alpha * jnp.exp(-expo)) ** p + + +def tilt_bound_bwd_tile(q, cov, vs, alpha): + def _compute_expo(v): + return 0.5 * (q - 1) * _quad_form(v, cov) + + p = 1 / (1 - 1 / q) + max_expo = jnp.max(jax.vmap(_compute_expo, in_axes=(0,))(vs)) + return (alpha * jnp.exp(-max_expo)) ** p diff --git a/imprint/bound/normal.py b/imprint/bound/normal.py new file mode 100644 index 00000000..74c61ec3 --- /dev/null +++ b/imprint/bound/normal.py @@ -0,0 +1,158 @@ +import jax +import jax.numpy as jnp + + +class ForwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * (q-1) * s_sq * v ** 2 - log(f0) / q + with respect to q >= 1. + """ + + def __init__(self, scale): + self.scale = scale + + def solve(self, v, f0): + logf0 = jnp.log(f0) + mv_sqrt = self.scale * jnp.abs(v) + q_opt = jax.lax.cond( + mv_sqrt == 0, + lambda: jnp.inf, + lambda: jnp.sqrt(-2 * logf0) / mv_sqrt, + ) + return jnp.maximum(q_opt, 1) + + +class BackwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * q * s_sq * v ** 2 - log(alpha) * q / (q-1) + with respect to q >= 1. + """ + + def __init__(self, scale): + self.scale = scale + + def solve(self, v, alpha): + mv_sqrt = self.scale * jnp.abs(v) + return jax.lax.cond( + mv_sqrt == 0, + lambda: jnp.inf, + lambda: 1 + jnp.sqrt(-2 * jnp.log(alpha)) / mv_sqrt, + ) + + +class TileForwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * (q-1) * s_sq * max_v v ** 2 - log(f0) / q + with respect to q >= 1. + """ + + def __init__(self, scale): + self.scale = scale + + def solve(self, vs, f0): + logf0 = jnp.log(f0) + mv_sqrt = self.scale * jnp.max(jnp.abs(vs)) + q_opt = jax.lax.cond( + mv_sqrt == 0, + lambda: jnp.inf, + lambda: jnp.sqrt(-2 * logf0) / mv_sqrt, + ) + return jnp.maximum(q_opt, 1) + + +class TileBackwardQCPSolver: + """ + Solves the minimization problem: + 0.5 * q * s_sq * max_v v ** 2 - log(alpha) * q / (q-1) + with respect to q >= 1. + """ + + def __init__(self, scale): + self.scale = scale + + def solve(self, vs, alpha): + mv_sqrt = self.scale * jnp.max(jnp.abs(vs)) + return jax.lax.cond( + mv_sqrt == 0, + lambda: jnp.inf, + lambda: 1 + jnp.sqrt(-2 * jnp.log(alpha)) / mv_sqrt, + ) + + +def tilt_bound_fwd(q, scale, v, f0): + p_inv = 1 - 1 / q + expo = 0.5 * (q - 1) * (scale * v) ** 2 + return jax.lax.cond( + (v == 0) | (scale == 0), + lambda: f0**p_inv, + lambda: jax.lax.cond( + q == jnp.inf, + lambda: jnp.inf, + lambda: f0**p_inv * jnp.exp(expo), + ), + ) + + +def tilt_bound_fwd_tile(q, scale, vs, f0): + p_inv = 1 - 1 / q + max_v = jnp.max(jnp.abs(vs)) + max_expo = 0.5 * (q - 1) * (scale * max_v) ** 2 + return jax.lax.cond( + (max_v == 0) | (scale == 0), + lambda: f0**p_inv, + lambda: jax.lax.cond( + q == jnp.inf, + lambda: jnp.inf, + lambda: f0**p_inv * jnp.exp(max_expo), + ), + ) + + +def tilt_bound_bwd(q, scale, v, alpha): + p = jax.lax.cond(q == 1, lambda _: jnp.inf, lambda q: 1 / (1 - 1 / q), q) + expo = jax.lax.cond( + (v == 0) | (scale == 0), + lambda: 0.0, + lambda: 0.5 * q * (scale * v) ** 2, + ) + return alpha**p * jnp.exp(-expo) + + +def tilt_bound_bwd_tile(q, scale, vs, alpha): + p = jax.lax.cond(q == 1, lambda _: jnp.inf, lambda q: 1 / (1 - 1 / q), q) + max_v = jnp.max(jnp.abs(vs)) + max_expo = jax.lax.cond( + (max_v == 0) | (scale == 0), + lambda: 0.0, + lambda: 0.5 * q * (scale * max_v) ** 2, + ) + return alpha**p * jnp.exp(-max_expo) + + +class NormalBound: + @staticmethod + def get_backward_bound(family_params): + scale = family_params.get("scale", 1.0) + bwd_solver = TileBackwardQCPSolver(scale) + + def backward_bound(alpha_target, theta0, vertices): + v = vertices - theta0 + q_opt = bwd_solver.solve(v, alpha_target) + return tilt_bound_bwd_tile(q_opt, scale, v, alpha_target) + + return jax.jit(jax.vmap(backward_bound, in_axes=(None, 0, 0))) + + @staticmethod + def get_forward_bound(family_params): + scale = family_params.get("scale", 1.0) + fwd_solver = TileForwardQCPSolver(scale) + + def forward_bound(f0, theta0, vertices): + vs = vertices - theta0 + q_opt = fwd_solver.solve(vs, f0) + return tilt_bound_fwd_tile(q_opt, scale, vs, f0) + + return jax.jit(jax.vmap(forward_bound)) diff --git a/imprint/cmake/imprintConfig.cmake.in b/imprint/cmake/imprintConfig.cmake.in deleted file mode 100644 index 9c15f36a..00000000 --- a/imprint/cmake/imprintConfig.cmake.in +++ /dev/null @@ -1,4 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") -check_required_components("@PROJECT_NAME@") diff --git a/imprint/driver.py b/imprint/driver.py new file mode 100644 index 00000000..58e2584c --- /dev/null +++ b/imprint/driver.py @@ -0,0 +1,228 @@ +import copy + +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd +import scipy.stats + +from . import batching +from . import grid + + +# TODO: Need to clean up the interface from driver to the bounds. +# - should the bound classes have staticmethods or should they be objects with +# __init__? +# - can we pass a single vertex array as a substitute for the many vertex case? +def get_bound(family, family_params): + if family == "normal": + from imprint.bound.normal import NormalBound as bound_type + elif family == "binomial": + from imprint.bound.binomial import BinomialBound as bound_type + else: + raise Exception("unknown family") + + return ( + bound_type.get_forward_bound(family_params), + bound_type.get_backward_bound(family_params), + ) + + +def clopper_pearson(tie_sum, K, delta): + tie_cp_bound = scipy.stats.beta.ppf(1 - delta, tie_sum + 1, K - tie_sum) + # If typeI_sum == sim_sizes, scipy.stats outputs nan. Output 0 instead + # because there is no way to go higher than 1.0 + return np.where(np.isnan(tie_cp_bound), 0, tie_cp_bound) + + +def calc_tuning_threshold(sorted_stats, sorted_order, alpha): + K = sorted_stats.shape[0] + cv_idx = jnp.maximum(jnp.floor((K + 1) * jnp.maximum(alpha, 0)).astype(int) - 1, 0) + # indexing a sorted array with sorted indices results in a sorted array!! + return sorted_stats[sorted_order[cv_idx]] + + +class Driver: + def __init__(self, model, *, tile_batch_size): + self.model = model + self.tile_batch_size = tile_batch_size + self.forward_boundv, self.backward_boundv = get_bound( + model.family, model.family_params if hasattr(model, "family_params") else {} + ) + + self.calibratev = jax.jit( + jax.vmap( + calc_tuning_threshold, + in_axes=(0, None, 0), + ) + ) + + def _stats(self, K_df): + K = K_df["K"].iloc[0] + K_g = grid.Grid(K_df) + theta = K_g.get_theta() + # TODO: batching + stats = self.model.sim_batch(0, K, theta, K_g.get_null_truth()) + return stats + + def stats(self, df): + return df.groupby("K", group_keys=False).apply(self._stats) + + def _batched_validate(self, K, theta, null_truth, lam): + stats = self.model.sim_batch(0, K, theta, null_truth) + return jnp.sum(stats < lam, axis=-1) + + def _validate(self, K_df, lam, delta): + K = K_df["K"].iloc[0] + K_g = grid.Grid(K_df) + theta = K_g.get_theta() + + tie_sum = batching.batch( + self._batched_validate, + self.tile_batch_size, + in_axes=(None, 0, 0, None), + )(K, theta, K_g.get_null_truth(), lam) + + tie_cp_bound = clopper_pearson(tie_sum, K, delta) + theta, vertices = K_g.get_theta_and_vertices() + tie_bound = self.forward_boundv(tie_cp_bound, theta, vertices) + + return pd.DataFrame( + dict( + tie_sum=tie_sum, + tie_est=tie_sum / K, + tie_cp_bound=tie_cp_bound, + tie_bound=tie_bound, + ) + ) + + def validate(self, df, lam, *, delta=0.01): + # The execution trace of a driver: + # entry point: (validate) + # for each K: (_validate) + # for each batch of tiles: (_batched_validate) + # simulate + return ( + df.groupby("K", group_keys=False) + .apply(lambda K_df: self._validate(K_df, lam, delta)) + .reset_index(drop=True) + ) + + def _batched_calibrate(self, K, theta, vertices, null_truth, alpha): + stats = self.model.sim_batch(0, K, theta, null_truth) + sorted_stats = jnp.sort(stats, axis=-1) + alpha0 = self.backward_boundv(alpha, theta, vertices) + bootstrap_lams = self.calibratev(sorted_stats, np.arange(K), alpha0) + return bootstrap_lams + + def _calibrate(self, K_df, alpha): + K = K_df["K"].iloc[0] + K_g = grid.Grid(K_df) + + theta, vertices = K_g.get_theta_and_vertices() + bootstrap_lams = batching.batch( + self._batched_calibrate, + self.tile_batch_size, + in_axes=(None, 0, 0, 0, None), + )(K, theta, vertices, K_g.get_null_truth(), alpha) + return pd.DataFrame(bootstrap_lams, columns=["lams"]) + + def calibrate(self, df, alpha): + return ( + df.groupby("K", group_keys=False) + .apply(lambda K_df: self._calibrate(K_df, alpha)) + .reset_index(drop=True) + ) + + +def _setup(modeltype, g, model_seed, K, model_kwargs, tile_batch_size): + g = copy.deepcopy(g) + if K is not None: + g.df["K"] = K + else: + # If K is not specified we just use a default value that's a decent + # guess. + default_K = 2**14 + if "K" not in g.df.columns: + g.df["K"] = default_K + g.df.loc[g.df["K"] == 0, "K"] = default_K + + if model_kwargs is None: + model_kwargs = {} + model = modeltype(model_seed, g.df["K"].max(), **model_kwargs) + return Driver(model, tile_batch_size=tile_batch_size), g + + +def validate( + modeltype, + g, + lam, + *, + delta=0.01, + model_seed=0, + K=None, + tile_batch_size=64, + model_kwargs=None +): + """ + Calculate the Type I Error bound. + + Args: + modeltype: The model class. + g: The grid. + lam: The critical threshold in the rejection rule. Test statistics + below this value will be rejected. + delta: The bound will hold point-wise with probability 1 - delta. + Defaults to 0.01. + model_seed: The random seed. Defaults to 0. + K: The number of simulations. If this is unspecified, it is assumed + that the grid has a "K" column containing per-tile simulation counts. + Defaults to None. + tile_batch_size: The number of tiles to simulate in a single batch. + model_kwargs: Keyword arguments passed to the model constructor. + Defaults to None. + + Returns: + A dataframe with the following columns: + - tie_sum: The number of test statistics below the critical threshold. + - tie_est: The estimated Type I Error at the simulation points. + - tie_cp_bound: The Clopper-Pearson bound on the Type I error at the + simulation point. + - tie_bound: The bound on the Type I error over the whole tile. + """ + driver, g = _setup(modeltype, g, model_seed, K, model_kwargs, tile_batch_size) + rej_df = driver.validate(g.df, lam, delta=delta) + return rej_df + + +def calibrate( + modeltype, + g, + *, + model_seed=0, + alpha=0.025, + K=None, + tile_batch_size=64, + model_kwargs=None +): + """ + calibrate the critical threshold for a given level of Type I Error control. + + Args: + modeltype: The model class. + g: The grid. + model_seed: The random seed. Defaults to 0. + alpha: The Type I Error control level. Defaults to 0.025. + K: The number of simulations. If this is unspecified, it is assumed + that the grid has a "K" column containing per-tile simulation counts. + Defaults to None. + tile_batch_size: The number of tiles to simulate in a single batch. + model_kwargs: Keyword arguments passed to the model constructor. + Defaults to None. + + Returns: + _description_ + """ + driver, g = _setup(modeltype, g, model_seed, K, model_kwargs, tile_batch_size) + calibrate_df = driver.calibrate(g.df, alpha) + return calibrate_df diff --git a/imprint/example/BUILD.bazel b/imprint/example/BUILD.bazel deleted file mode 100644 index b69b49fe..00000000 --- a/imprint/example/BUILD.bazel +++ /dev/null @@ -1,9 +0,0 @@ -[cc_binary( - name = type_, - srcs = ["{}.cpp".format(type_)], - deps = [ - "//imprint", - ], -) for type_ in [ - "normal_simple", -]] diff --git a/imprint/example/normal_simple.cpp b/imprint/example/normal_simple.cpp deleted file mode 100644 index edfbb666..00000000 --- a/imprint/example/normal_simple.cpp +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int main() { - using namespace imprint; - using model_t = model::normal::Simple; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using hp_t = grid::HyperPlane; - - // configuration setting - size_t n_gridpts = 100; - size_t n_sims = 1e5; - size_t seed = 0; - double lower = -3.; - double upper = 1.4; - double alpha = 0.025; - - // initialize critical threshold - colvec_type cvs(1); - cvs << (upper + qnorm(1 - alpha)); - - // empty null hypothesis surfaces - // we will treat all grid-points as part of the null-space. - std::vector null_hypos; - - // initialize a grid range - gr_t gr(1, n_gridpts); - gr.thetas().row(0) = grid::Gridder::make_grid(n_gridpts, lower, upper); - auto radius = grid::Gridder::radius(n_gridpts, lower, upper); - gr.radii().row(0).array() = radius; - gr.sim_sizes().array() = n_sims; - - // create tiles and prune (shouldn't affect any internals) - gr.create_tiles(null_hypos); - gr.prune(); - - std::cout << "n_tiles: " << gr.n_tiles() << std::endl; - - // create a model object - model_t model(cvs); - - // create a simulation global state, - // which caches any values to speed-up simulations. - auto sgs = model.make_sim_global_state(gr); - - // create a simulation state, - // which defines the simulation routine. - auto ss = sgs.make_sim_state(seed); - - colvec_type rejection_length(gr.n_tiles()); - colvec_type rejection_sum(gr.n_tiles()); - rejection_sum.setZero(); - - // simulate and accumulate rejection counts - for (size_t i = 0; i < n_sims; ++i) { - ss->simulate(rejection_length); - rejection_sum += rejection_length; - } - - // print the Type I Error estimate - colvec_type type_I_err = - rejection_sum.template cast() / n_sims; - std::cout << type_I_err.transpose() << std::endl; - - return 0; -} diff --git a/imprint/grid.py b/imprint/grid.py new file mode 100644 index 00000000..48ca7f52 --- /dev/null +++ b/imprint/grid.py @@ -0,0 +1,709 @@ +import copy +import time +import warnings +from dataclasses import dataclass +from dataclasses import field +from itertools import product +from typing import List + +import numpy as np +import pandas as pd +import sympy as sp + + +@dataclass(eq=False) +class HyperPlane: + """ + A plane defined by: + x.dot(n) - c = 0 + + Sign convention: When used as the boundary between null hypothesis and + alternative, the normal should point towards the null hypothesis space. + """ + + n: np.ndarray + c: float + + def __eq__(self, other): + if not isinstance(other, HyperPlane): + return NotImplemented + return np.allclose(self.n, other.n) and np.isclose(self.c, other.c) + + +def hypo(str_expr): + """ + Define a hyperplane from a sympy expression. + + For example: + >>> hypo("2*theta1 < 1") + HyperPlane(n=array([ 0., -1.]), c=-0.5) + + >>> hypo("x - y >= 0") + HyperPlane(n=array([ 0.70710678, -0.70710678]), c=0.0) + + Valid comparison operators are <, >, <=, >=. + + The left hand and right hand sides must be linear in theta. + + Aliases: + - theta{i}: x{i} + - x: x0 + - y: x1 + - z: x2 + + Args: + str_expr: The expression defining the hypothesis plane. + + Returns: + The HyperPlane object corresponding to the sympy expression. + """ + alias = dict( + x="x0", + y="x1", + z="x2", + ) + expr = sp.parsing.parse_expr(str_expr) + if isinstance(expr, sp.StrictLessThan) or isinstance(expr, sp.LessThan): + plane = expr.rhs - expr.lhs + elif isinstance(expr, sp.StrictGreaterThan) or isinstance(expr, sp.GreaterThan): + plane = expr.lhs - expr.rhs + else: + raise ValueError("Hypothesis expression must be an inequality.") + + symbols = plane.free_symbols + coeffs = sp.Poly(plane, *symbols).coeffs() + if len(coeffs) > len(symbols): + c = -float(coeffs[-1]) + coeffs = coeffs[:-1] + else: + c = 0 + + symbol_names = [alias.get(s.name, s.name).replace("theta", "x") for s in symbols] + + if any([s[0] != "x" for s in symbol_names]): + raise ValueError( + f"Hypothesis contains invalid symbols: {symbols}." + " Valid symbols are x0..., theta0..., x, y, z." + ) + try: + symbol_idxs = [int(s[1:]) for s in symbol_names] + except ValueError: + raise ValueError( + f"Hypothesis contains invalid symbols: {symbols}." + " Valid symbols are x0..., theta0..., x, y, z." + ) + coeff_dict = dict(zip(symbol_idxs, coeffs)) + max_idx = max(symbol_idxs) + + n = [float(coeff_dict.get(i, 0)) for i in range(max_idx + 1)] + n_norm = np.linalg.norm(n) + n /= n_norm + c /= n_norm + + return HyperPlane(np.array(n), c) + + +@dataclass +class Grid: + """ + A grid is a collection of tiles, each of which is a hyperrectangle in + parameter space. The grid is stored as a pandas DataFrame, with one row per + tile. The columns are: + - id: A unique identifier for the tile. See gen_short_uuids for details on + these ids. + - active: Whether the tile is active. A tile is active if it has not been + split. + - parent_id: The id of the parent tile if the tile has been split. This is + 0 for tiles with no parent. + - theta{i} and radii{i}: The center and half-width of the tile in the i-th + dimension. + + Other columns may be added by other code. All columns will automatically be + inherited in refinement and splitting operations. + """ + + df: pd.DataFrame + null_hypos: List[HyperPlane] = field(default_factory=lambda: []) + + @property + def d(self): + if not hasattr(self, "_d"): + self._d = ( + max([int(c[5:]) for c in self.df.columns if c.startswith("theta")]) + 1 + ) + return self._d + + @property + def n_tiles(self): + return self.df.shape[0] + + @property + def n_active_tiles(self): + return self.df["active"].sum() + + def _add_null_hypo(self, H, inherit_cols): + eps = 1e-15 + + hypo_idx = len(self.null_hypos) + self.null_hypos.append(H) + + ######################################## + # Step 1: Assign tile centers + ######################################## + # Assign tiles to the null/alt hypothesis space depending on which side + # of the plane the tile lies. At the moment, we only check the tile + # centers. Any tiles that intersect the plane will be handled next. + theta, vertices = self.get_theta_and_vertices() + radii = self.get_radii() + gridpt_dist = theta.dot(H.n) - H.c + self.df[f"null_truth{hypo_idx}"] = gridpt_dist >= 0 + + ######################################## + # Step 2: Check for intersection + ######################################## + # If a tile is close to the plane, we need to check for intersection. + # "close" is defined by whether the bounding ball of the tile + # intersects the plane. + close = np.abs(gridpt_dist) <= np.sqrt(np.sum(self.get_radii() ** 2, axis=-1)) + # We ignore intersections of inactive tiles. + close &= self.df["active"].values + + # For each tile that is close to the plane, we check each vertex to + # find which side of the plane the vertex lies on. + vertex_dist = vertices[close].dot(H.n) - H.c + all_above = (vertex_dist >= -eps).all(axis=-1) + all_below = (vertex_dist <= eps).all(axis=-1) + # If all vertices are above or all the vertices are below the plane, we + # can ignore the tile. + close_intersects = ~(all_above | all_below) + if close_intersects.sum() == 0: + return self + intersects = np.zeros(self.n_tiles, dtype=bool) + intersects[close] = close_intersects + + ######################################## + # Step 3: Split intersecting tiles + ######################################## + new_theta, new_radii = split( + theta[intersects], + radii[intersects], + vertices[intersects], + vertex_dist[close_intersects], + H, + ) + + parent_id = np.repeat(self.df["id"].values[intersects], 2) + new_g = init_grid(new_theta, new_radii, parents=parent_id) + _inherit(new_g.df, self.df[intersects], 2, inherit_cols) + for i in range(hypo_idx): + new_g.df[f"null_truth{i}"] = np.repeat( + self.df[f"null_truth{i}"].values[intersects], 2 + ) + new_g.df[f"null_truth{hypo_idx}"] = True + new_g.df[f"null_truth{hypo_idx}"].values[1::2] = False + + # Any tile that has been split should be ignored going forward. + # We're done with these tiles! + self.df["active"].values[intersects] = False + + return self.concat(new_g) + + def add_null_hypos(self, null_hypos, inherit_cols=[]): + """ + Add null hypotheses to the grid. This will split any tiles that + intersect the null hypotheses and assign the tiles to the null/alt + hypothesis space depending on which side of the null hypothesis the + tile lies. These assignments will be stored in the null_truth{i} + columns in the tile dataframe. + + Args: + null_hypos: The null hypotheses to add. List of HyperPlane objects. + inherit_cols: Columns that should be inherited by split + tiles (e.g. K). Defaults to []. + + Returns: + The grid with the null hypotheses added. + """ + g = Grid(self.df.copy(), copy.deepcopy(self.null_hypos)) + for H in null_hypos: + Hn = np.asarray(H.n) + Hpad = HyperPlane(np.pad(Hn, (0, g.d - Hn.shape[0])), H.c) + g = g._add_null_hypo(Hpad, inherit_cols) + return g + + def prune(self): + """ + Remove tiles that are not in the null hypothesis space for any + hypothesis. + + Returns: + The pruned grid. + """ + if len(self.null_hypos) == 0: + return self + null_truth = self.get_null_truth() + which = (null_truth.any(axis=1)) | (null_truth.shape[1] == 0) + if np.all(which): + return self + return self.subset(which) + + def add_cols(self, df): + return Grid(pd.concat((self.df, df), axis=1), self.null_hypos) + + def subset(self, which): + """ + Subset a grid by some indexer. + + Args: + which: The indexer. + + Returns: + The grid subset. + """ + df = self.df.loc[which].reset_index(drop=True) + return Grid(df, self.null_hypos) + + def active(self): + """ + Get the active subset of the grid. + + Returns: + A grid composed of only the active tiles. + """ + return self.subset(self.df["active"]) + + def get_null_truth(self): + return self.df[ + [ + f"null_truth{i}" + for i in range(self.df.shape[1]) + if f"null_truth{i}" in self.df.columns + ] + ].to_numpy() + + def get_theta(self): + return self.df[[f"theta{i}" for i in range(self.d)]].to_numpy() + + def get_radii(self): + return self.df[[f"radii{i}" for i in range(self.d)]].to_numpy() + + def get_theta_and_vertices(self): + theta = self.get_theta() + return theta, ( + theta[:, None, :] + + hypercube_vertices(self.d)[None, :, :] * self.get_radii()[:, None, :] + ) + + def refine(self, inherit_cols=[]): + refine_radii = self.get_radii()[:, None, :] * 0.5 + refine_theta = self.get_theta()[:, None, :] + new_thetas = ( + refine_theta + hypercube_vertices(self.d)[None, :, :] * refine_radii + ).reshape((-1, self.d)) + new_radii = np.tile(refine_radii, (1, 2**self.d, 1)).reshape((-1, self.d)) + parent_id = np.repeat(self.df["id"].values, 2**self.d) + out = init_grid( + new_thetas, + new_radii, + parents=parent_id, + ) + _inherit(out.df, self.df, 2**self.d, inherit_cols) + return out + + def concat(self, *others): + return Grid( + pd.concat((self.df, *[o.df for o in others]), axis=0, ignore_index=True), + self.null_hypos, + ) + + +def _inherit(child_df, parent_df, repeat, inherit_cols): + assert (child_df["parent_id"] == np.repeat(parent_df["id"].values, repeat)).all() + for col in inherit_cols: + if col in child_df.columns: + continue + child_df[col] = np.repeat(parent_df[col].values, repeat) + # NOTE: if we ever need a more complex parent-child relationship, we can + # use pandas merge. + # pd.merge( + # child_df, + # parent_df, + # left_on="parent_id", + # right_on="id", + # how='left', + # validate='many_to_one' + # ) + + +def init_grid(theta, radii, parents=None): + d = theta.shape[1] + indict = dict() + indict["id"] = gen_short_uuids(len(theta)) + + # Is this a terminal tile in the tree? + indict["active"] = True + + indict["parent_id"] = ( + parents.astype(np.uint64) if parents is not None else np.uint64(0) + ) + + for i in range(d): + indict[f"theta{i}"] = theta[:, i] + for i in range(d): + indict[f"radii{i}"] = radii[:, i] + + return Grid(pd.DataFrame(indict), []) + + +def cartesian_grid(theta_min, theta_max, *, n=None, null_hypos=None, prune=True): + """ + Produce a grid of points in the hyperrectangle defined by theta_min and + theta_max. + + Args: + theta_min: The minimum value of theta for each dimension. + theta_max: The maximum value of theta for each dimension. + n: The number of theta values to use in each dimension. + null_hypos: The null hypotheses to add. List of HyperPlane objects. + prune: Whether to prune the grid to only include tiles that are in the + null hypothesis space. + + Returns: + The grid. + """ + theta_min = np.asarray(theta_min) + theta_max = np.asarray(theta_max) + + if n is None: + n = np.full(theta_min.shape[0], 2) + g = init_grid(*_cartesian_gridpts(theta_min, theta_max, n)) + if null_hypos is not None: + g = g.add_null_hypos(null_hypos) + if prune: + g = g.prune() + return g + + +def _cartesian_gridpts(theta_min, theta_max, n_theta_1d): + theta_min = np.asarray(theta_min) + theta_max = np.asarray(theta_max) + n_theta_1d = np.asarray(n_theta_1d) + + n_arms = theta_min.shape[0] + theta1d = [ + np.linspace(theta_min[i], theta_max[i], 2 * n_theta_1d[i] + 1)[1::2] + for i in range(n_arms) + ] + radii1d = [ + np.full( + theta1d[i].shape[0], (theta_max[i] - theta_min[i]) / (2 * n_theta_1d[i]) + ) + for i in range(n_arms) + ] + theta = np.stack(np.meshgrid(*theta1d), axis=-1).reshape((-1, len(theta1d))) + radii = np.stack(np.meshgrid(*radii1d), axis=-1).reshape((-1, len(theta1d))) + return theta, radii + + +def plot_grid(g: Grid, only_active=True, dims=(0, 1)): + """ + Plot a 2D grid. + + Args: + g: the grid + null_hypos: If provided, the function will plot red lines for the null + hypothesis boundaries. Defaults to []. + """ + import matplotlib as mpl + import matplotlib.pyplot as plt + + vertices = g.get_theta_and_vertices()[1][..., dims] + + if only_active: + g = g.active() + + polys = [] + for i in range(vertices.shape[0]): + vs = vertices[i] + vs = vs[~np.isnan(vs).any(axis=1)] + centroid = np.mean(vs, axis=0) + angles = np.arctan2(vs[:, 1] - centroid[1], vs[:, 0] - centroid[0]) + order = np.argsort(angles) + polys.append(mpl.patches.Polygon(vs[order], fill=None, edgecolor="k")) + plt.text(*centroid, str(i)) + + plt.gca().add_collection( + mpl.collections.PatchCollection(polys, match_original=True) + ) + + maxvs = np.max(vertices, axis=(0, 1)) + minvs = np.min(vertices, axis=(0, 1)) + view_center = 0.5 * (maxvs + minvs) + view_radius = (maxvs - minvs) * 0.55 + xlims = view_center[0] + np.array([-1, 1]) * view_radius[0] + ylims = view_center[1] + np.array([-1, 1]) * view_radius[1] + plt.xlim(xlims) + plt.ylim(ylims) + + for h in g.null_hypos: + if h.n[0] == 0: + xs = np.linspace(*xlims, 100) + ys = (h.c - xs * h.n[0]) / h.n[1] + else: + ys = np.linspace(*ylims, 100) + xs = (h.c - ys * h.n[1]) / h.n[0] + plt.plot(xs, ys, "r-") + + +# https://stackoverflow.com/a/52229385/ +def hypercube_vertices(d): + """ + The corners of a hypercube of dimension d. + + >>> print(hypercube_vertices(1)) + [[-1] + [ 1]] + + >>> print(hypercube_vertices(2)) + [[-1 -1] + [-1 1] + [ 1 -1] + [ 1 1]] + + >>> print(hypercube_vertices(3)) + [[-1 -1 -1] + [-1 -1 1] + [-1 1 -1] + [-1 1 1] + [ 1 -1 -1] + [ 1 -1 1] + [ 1 1 -1] + [ 1 1 1]] + + Args: + d: the dimension + + Returns: + a numpy array of shape (2**d, d) containing the vertices of the + hypercube. + """ + return np.array(list(product((-1, 1), repeat=d))) + + +def split(theta, radii, vertices, vertex_dist, H): + eps = 1e-15 + d = theta.shape[1] + + ######################################## + # Step 1. Intersect tile edges with the hyperplane. + # This will identify the new vertices that we need to add. + ######################################## + split_edges = get_edges(theta, radii) + # The first n_params columns of split_edges are the vertices from which + # the edge originates and the second n_params are the edge vector. + split_vs = split_edges[..., :d] + split_dir = split_edges[..., d:] + + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + # Intersect each edge with the plane. + alpha = (H.c - split_vs.dot(H.n)) / (split_dir.dot(H.n)) + # Now we need to identify the new tile vertices. We have three + # possible cases here: + # 1. Intersection: indicated by 0 < alpha < 1. We give a little + # eps slack to ignore intersections for null planes that just barely + # touch a corner of a tile. In this case, we + # 2. Non-intersection indicated by alpha not in [0, 1]. In this + # case, the new vertex will just be marked nan to be filtered out + # later. + # 3. Non-finite alpha which also indicates no intersection. Again, + # we produced a nan vertex to filter out later. + new_vs = split_vs + alpha[:, :, None] * split_dir + new_vs = np.where( + (np.isfinite(new_vs)) & ((alpha > eps) & (alpha < 1 - eps))[..., None], + new_vs, + np.nan, + ) + + ######################################## + # Step 2. Construct the vertex array for the new tiles.. + ######################################## + # Create the array for the new vertices. We need to expand the + # original vertex array in both dimensions: + # 1. We create a new row for each tile that is being split using np.repeat. + # 2. We create a new column for each potential additional vertex from + # the intersection operation above using np.concatenate. This is + # more new vertices than necessary, but facilitates a nice + # vectorized implementation.. We will just filter out the + # unnecessary slots later. + split_vertices = np.repeat(vertices, 2, axis=0) + split_vertices = np.concatenate( + ( + split_vertices, + np.full( + (split_vertices.shape[0], split_edges.shape[1], d), + np.nan, + ), + ), + axis=1, + ) + + # Now we need to fill in the new vertices: + # For each original tile vertex, we need to determine whether the tile + # lies in the new null tile or the new alt tile. + include_in_null_tile = vertex_dist >= -eps + include_in_alt_tile = vertex_dist <= eps + + # Since we copied the entire tiles, we can "delete" vertices by + # multiply by nan + # note: ::2 traverses the range of new null hypo tiles + # 1::2 traverses the range of new alt hypo tiles + split_vertices[::2, : vertices.shape[1]] *= np.where( + include_in_null_tile, 1, np.nan + )[..., None] + split_vertices[1::2, : vertices.shape[1]] *= np.where( + include_in_alt_tile, 1, np.nan + )[..., None] + + # The intersection vertices get added to both new tiles because + # they lie on the boundary between the two tiles. + split_vertices[::2, vertices.shape[1] :] = new_vs + split_vertices[1::2, vertices.shape[1] :] = new_vs + + # Trim the new tile array: + # We now are left with an array of tile vertices that has many more + # vertex slots per tile than necessary with the unused slots filled + # with nan. + # To deal with this: + # 1. We sort along the vertices axis. This has the effect of + # moving all the nan vertices to the end of the list. + split_vertices = split_vertices[ + np.arange(split_vertices.shape[0])[:, None], + np.argsort(np.sum(split_vertices, axis=-1), axis=-1), + ] + + # 2. Identify the maximum number of vertices of any tile and trim the + # array so that is the new vertex dimension size + nonfinite_corners = (~np.isfinite(split_vertices)).all(axis=(0, 2)) + # 3. If any corner is unused for all tiles, we should remove it. + # But, we can't trim smaller than the original vertices array. + if nonfinite_corners[-1]: + first_all_nan_corner = nonfinite_corners.argmax() + split_vertices = split_vertices[:, :first_all_nan_corner] + + ######################################## + # Step 3. Identify bounding boxes. + ######################################## + min_val = np.nanmin(split_vertices, axis=1) + max_val = np.nanmax(split_vertices, axis=1) + new_theta = (min_val + max_val) / 2 + new_radii = (max_val - min_val) / 2 + return new_theta, new_radii + + +def get_edges(theta, radii): + """ + Construct an array indicating the edges of each hyperrectangle. + - edges[:, :, :n_params] are the vertices at the origin of the edges + - edges[:, :, n_params:] are the edge vectors pointing from the start to + the end of the edge + + Args: + thetas: the centers of the hyperrectangles + radii: the half-width of the hyperrectangles + + Returns: + edges: an array as specified in the docstring shaped like + (n_grid_pts, number of hypercube vertices, 2*n_params) + """ + + n_params = theta.shape[1] + unit_vs = hypercube_vertices(n_params) + n_vs = unit_vs.shape[0] + unit_edges = [] + for i in range(n_vs): + for j in range(n_params): + if unit_vs[i, j] > 0: + continue + unit_edges.append(np.concatenate((unit_vs[i], np.identity(n_params)[j]))) + + edges = np.tile(np.array(unit_edges)[None, :, :], (theta.shape[0], 1, 1)) + edges[:, :, :n_params] *= radii[:, None, :] + edges[:, :, n_params:] *= 2 * radii[:, None, :] + edges[:, :, :n_params] += theta[:, None, :] + return edges + + +def uuid_timer(): + return time.time() + + +def gen_short_uuids(n, host_id=None, t=None): + """ + Short UUIDs are a custom identifier created for imprint that should allow + for concurrent creation of tiles without having overlapping indices. + + - The highest 28 bits are the time in seconds of creation. This will not + loop for 8.5 years. When we start running jobs that take longer than 8.5 + years to complete, please send a message to me in the afterlife. + - The creation time is never re-used. If the creation time is going to + be reused because less than one second has passed since the previous + call to gen_short_uuids, then the creation time is incremented by + one. + - The next 18 bits are the index of the process. This is a pretty generous limit + on the number of processes. 2^18=262144. + - The lowest 18 bits are the index of the created tiles within this batch. + This allows for up to 2^18 = 262144 tiles to be created in a single + batch. This is not a problematic constraint, because we can just + increment the time by one and then grab another batch of IDs. + + NOTE: This should be safe across processes but will not be safe across + threads within a single Python process because multithreaded programs share + globals. + + Args: + n: The number of short uuids to generate. + host_id: The host id. It's okay to ignore this for non-concurrent jobs. + Defaults to None. + t: The time to impose (used for testing). Defaults to None. + + Returns: + An array with dtype uint64 of length n containing short uuids. + """ + n_max = 2 ** _gen_short_uuids.config[0] - 1 + if n <= n_max: + return _gen_short_uuids(n, host_id, t) + + out = np.empty(n, dtype=np.uint64) + for i in range(0, n, n_max): + chunk_size = min(n_max, n - i) + out[i : i + chunk_size] = _gen_short_uuids(chunk_size, host_id, t) + return out + + +def _gen_short_uuids(n, host_id, t): + n_bits, host_bits = _gen_short_uuids.config + # time_bits = 64 - n_bits - host_bits + assert n < 2**n_bits + + if host_id is None: + # host_id == 0 is skipped so that we can use 0 as a sentinel value + host_id = 1 + assert host_id > 0 + assert host_id < 2**host_bits + + if t is None: + t = np.uint64(int(uuid_timer())) + if _gen_short_uuids.largest_t is not None and t <= _gen_short_uuids.largest_t: + t = np.uint64(_gen_short_uuids.largest_t + 1) + _gen_short_uuids.largest_t = t + + return ( + (t << np.uint64(n_bits + host_bits)) + + np.uint64(host_id << n_bits) + + np.arange(n, dtype=np.uint64) + ) + + +_gen_short_uuids.config = (18, 18) +_gen_short_uuids.largest_t = None diff --git a/imprint/include/imprint_bits/bound/accumulator/typeI_error_accum.hpp b/imprint/include/imprint_bits/bound/accumulator/typeI_error_accum.hpp deleted file mode 100644 index f699efee..00000000 --- a/imprint/include/imprint_bits/bound/accumulator/typeI_error_accum.hpp +++ /dev/null @@ -1,158 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { -namespace bound { - -/* - * Accumulator for Type I error imprint bound. - */ -template -struct TypeIErrorAccum { - using value_t = ValueType; - using uint_t = UIntType; - - private: - mat_type typeI_sum_; // Type I error sums. - // typeI_sum_(i,j) = rejection accumulation - // for model i at tile j. - colvec_type - score_sum_; // score sums. - // score_sum_(i,j,k) = partial deriv accumulation w.r.t. - // param j for model i at tile k. - size_t n_params_; // dimension of a gridpoint. - - /* Buffer needed in update for one-time allocation */ - colvec_type score_buff_; // score vector buffer - - IMPRINT_STRONG_INLINE void update_internal(uint_t pos, uint_t rej_len_pos) { - typeI_sum_.col(pos).tail(rej_len_pos).array() += 1; - - const auto slice_size = n_models() * n_params(); - Eigen::Map > score_pos( - score_sum_.data() + pos * slice_size, n_models(), n_params()); - for (uint_t k = 0; k < n_params_; ++k) { - auto score_pos_k = score_pos.col(k); - score_pos_k.tail(rej_len_pos).array() += score_buff_(k); - } - } - - public: - TypeIErrorAccum() = default; - TypeIErrorAccum(size_t n_models, size_t n_tiles, size_t n_params) - : typeI_sum_(n_models, n_tiles), - score_sum_(n_models * n_params * n_tiles), - n_params_(n_params), - score_buff_(n_params) { - typeI_sum_.setZero(); - score_sum_.setZero(); - } - - /* - * Accumulates estimates based on current model SimState. - * Increments typeI_sum by rejection indicators. - * Increments score_sum by rejection indicators * (T - \nabla A). - * - * @param rej_len rej_len[i] = number of models that rejected - * at tile i. - * @param sim_state SimState-like object that was used to - * produce rej_len. Assumes that the sequence of models considered is - * ordered in ascending order, in the sense that if ith model rejects then - * jth model rejects for all j >= i. - * @param grid_range a grid range object on which sim_state ran - * its simulation to produce rej_len. - */ - template - void update(const VecType& rej_len, const SimStateType& sim_state, - const GridRangeType& grid_range) { - assert(grid_range.n_tiles() == typeI_sum_.cols()); - assert(grid_range.n_params() == n_params_); - assert(score_buff_.size() == n_params_); - - const auto& gr_view = grid_range; - const uint_t n_gridpts = gr_view.n_gridpts(); - - // update typeI_sum_ and score_sum_ - size_t pos = 0; - for (uint_t i = 0; i < n_gridpts; ++i) { - // if current gridpoint is regular, - // only update if there is any rejection - if (gr_view.is_regular(i)) { - if (unlikely(rej_len[pos] != 0)) { - sim_state.score(i, score_buff_); - update_internal(pos, rej_len[pos]); - } - ++pos; - continue; - } - - // then iterate through all the tiles for update - bool score_computed = false; - const auto n_ts = gr_view.n_tiles(i); - for (uint_t j = 0; j < n_ts; ++j, ++pos) { - if (unlikely(rej_len[pos] == 0)) continue; - if (!score_computed) { - score_computed = true; - sim_state.score(i, score_buff_); - } - update_internal(pos, rej_len[pos]); - } - } - } - - /* - * Pools quantities from another TypeIErrorAccum object, other, - * as if the current object were additionally updated in the same way as in - * other. - * - * @param other another TypeIErrorAccum to pool into current object. - */ - void pool(const TypeIErrorAccum& other) { - typeI_sum_ += other.typeI_sum_; - score_sum_ += other.score_sum_; - } - - /* - * Pools with the raw sum and score from another accumulation. as if the - * current object were additionally updated in the same way as in other. - * - * @param other_typeI_sum the other type I sum - * @param other_typeI_score the other type I score - */ - void pool_raw(const mat_type& other_typeI_sum, - const colvec_type& other_typeI_score) { - typeI_sum_ += other_typeI_sum; - score_sum_ += other_typeI_score; - } - - /* - * Reset the size of internal data structures corresponding - * to the new configuration n_models, n_tiles, n_params, n_acc. - * The first three parameters must be positive. - * - * @param n_models number of models. - * @param n_tiles number of tiles. - * @param n_params number of parameters. - */ - void reset(size_t n_models, size_t n_tiles, size_t n_params) { - typeI_sum_.setZero(n_models, n_tiles); - score_sum_.setZero(n_models * n_params * n_tiles); - score_buff_.resize(n_params); - n_params_ = n_params; - } - - const mat_type& typeI_sum() const { return typeI_sum_; } - const colvec_type& score_sum() const { return score_sum_; } - - constexpr size_t n_tiles() const { return typeI_sum_.cols(); } - constexpr size_t n_params() const { return n_params_; } - constexpr size_t n_models() const { return typeI_sum_.rows(); } - - // helper debug functions that should not be used by average users. - mat_type& typeI_sum__() { return typeI_sum_; } - colvec_type& score_sum__() { return score_sum_; } -}; - -} // namespace bound -} // namespace imprint diff --git a/imprint/include/imprint_bits/bound/typeI_error_bound.hpp b/imprint/include/imprint_bits/bound/typeI_error_bound.hpp deleted file mode 100644 index 9597a491..00000000 --- a/imprint/include/imprint_bits/bound/typeI_error_bound.hpp +++ /dev/null @@ -1,247 +0,0 @@ -#pragma once -#include -#include -#include -#include -//#include // third-party - -namespace imprint { -namespace bound { - -/* - * This class encapsulates the logic of constructing - * a Type I error imprint bound. - * It stores all necessary components of the imprint bound. - * - * @param ValueType underlying value type (usually double). - */ -template -struct TypeIErrorBound { - using value_t = ValueType; - - private: - // Components that make up the imprint bound. - mat_type delta_0_; // 0th order (n_models x n_tiles) - mat_type delta_0_u_; // 0th order upper bound (n_models x n_tiles) - mat_type delta_1_; // 1st order (n_models x n_tiles) - mat_type delta_1_u_; // 1st order upper bound (n_models x n_tiles) - mat_type delta_2_u_; // 2nd order upper bound (n_models x n_tiles) - mat_type full_; // full upper bound = sum of previous components - - colvec_type - vertices_; // vertices that achieve the maximum of - // delta_1_ + delta_1_u_ + delta_2_u_. - // It is of shape (n_params, n_tiles, n_models). - // Note that the structure is slightly different - // from the accumulator score sum (3D) array - // (n_models, n_params, n_tiles). - // This ordering allows us to return a viewer of - // each corner without making a copy, - // and saving each corner can be vectorized. - - template - void create_internal(KBSType&& kbs, const AccumType& acc_o, - const GridRangeType& grid_range, value_t delta, - value_t delta_prop_0to1, SaveCornerType save_corner) { - // some aliases - const auto n_models = acc_o.n_models(); - const auto n_gridpts = grid_range.n_gridpts(); - const auto n_tiles = acc_o.n_tiles(); // total number of tiles - const auto n_params = grid_range.n_params(); - const auto n_nat_params = - kbs.n_natural_params(); // number of natural params - const auto slice_size = n_models * n_params; - const auto& sim_sizes = grid_range.sim_sizes(); - const auto& typeIsum = acc_o.typeI_sum(); - const auto& thetas = grid_range.thetas(); - const auto& tiles = grid_range.tiles(); - constexpr value_t neg_inf = -std::numeric_limits::infinity(); - - // pre-compute some constants - const value_t d0u_factor = 1. - delta * delta_prop_0to1; - const value_t d1u_factor = - std::sqrt(1. / ((1.0 - delta_prop_0to1) * delta) - 1.); - - // populate 0th order and upper bound - delta_0_.resize(n_models, n_tiles); - delta_0_u_.resize(n_models, n_tiles); - delta_1_.setZero(n_models, n_tiles); - delta_1_u_.resize(n_models, n_tiles); - delta_2_u_.resize(n_models, n_tiles); - - colvec_type d11u2u(n_models); // d1 + d1u + d2u for each model - colvec_type v_diff(n_params); // buffer to store vertex-gridpt - colvec_type deta_v_diff(n_nat_params); // Deta * v_diff - - size_t pos = 0; - for (size_t gp = 0; gp < n_gridpts; ++gp) { - const auto ss = sim_sizes[gp]; - const auto sqrt_ss = std::sqrt(ss); - const auto d1u_factor_sqrt_ss = d1u_factor / sqrt_ss; - - for (size_t i = 0; i < grid_range.n_tiles(gp); ++i, ++pos) { - // update 0th order - auto delta_0_j = delta_0_.col(pos); - auto typeIsum_j = typeIsum.col(pos); - delta_0_j = typeIsum_j.template cast() / ss; - - // update 0th order upper - auto delta_0_u_j = delta_0_u_.col(pos); - for (int m = 0; m < delta_0_u_j.size(); ++m) { - delta_0_u_j[m] = ibeta_inv(typeIsum_j[m] + 1, - ss - typeIsum_j[m], d0u_factor) - - delta_0_j[m]; - } - - // update 1st/1st upper/2nd upper - const auto& tile = tiles[pos]; - - // set current max value of d1 + d1u + d2u = -inf for all - // models. - d11u2u.fill(neg_inf); - - // iterate over all vertices of the tile - // and update current max of d1 + d1u + d2u - // and d1, d1u, d2u that achieve that max. - if (grid_range.is_regular(gp)) { - update_d11u2u(tile, tile.begin_full(), tile.end_full(), - true, gp, pos, ss, d1u_factor_sqrt_ss, v_diff, - deta_v_diff, thetas, kbs, n_models, n_params, - slice_size, acc_o, d11u2u, save_corner); - } else { - update_d11u2u(tile, tile.begin(), tile.end(), false, gp, - pos, ss, d1u_factor_sqrt_ss, v_diff, - deta_v_diff, thetas, kbs, n_models, n_params, - slice_size, acc_o, d11u2u, save_corner); - } - } // end for-loop on tiles - } - } - - template - void update_d11u2u(const TileType& tile, Iter begin, Iter end, bool is_reg, - size_t gp, size_t tile_pos, size_t ss, - value_t d1u_factor_sqrt_ss, VDiffType& v_diff, - DetaVDiffType& deta_v_diff, const ThetasType& thetas, - KBSType&& kbs, size_t n_models, size_t n_params, - size_t slice_size, const AccumType& acc_o, - D11U2UType& d11u2u, SaveCornerType save_corner) { - Eigen::Map > score_tile( - acc_o.score_sum().data() + slice_size * tile_pos, n_models, - n_params); - - for (; begin != end; ++begin) { - auto&& v = *begin; // vertex - - auto center = thetas.col(gp); - v_diff = v - center; - kbs.apply_eta_jacobian(gp, v_diff, deta_v_diff); - value_t d1u = std::sqrt(kbs.covar_quadform(gp, deta_v_diff)) * - d1u_factor_sqrt_ss; - value_t d2u = - 0.5 * kbs.hessian_quadform_bound(gp, tile_pos, v_diff); - - for (size_t m = 0; m < n_models; ++m) { - // compute current v^T Deta^T score - value_t d1 = score_tile.row(m).dot(deta_v_diff) / ss; - - // check if we have new maximum - value_t new_max = d1 + d1u + d2u; - bool is_new = (new_max > d11u2u[m]); - - // save new maximum sum and the components - if (is_new) { - d11u2u[m] = new_max; - delta_1_(m, tile_pos) = d1; - delta_1_u_(m, tile_pos) = d1u; - delta_2_u_(m, tile_pos) = d2u; - save_corner(m, tile_pos, v); - } - - } // end for-loop on models - } // end for-loop on vertices - } - - public: - /* - * Creates and stores the components of the imprint bound. - * - * @param kbs ImprintBoundState-like object. - * @param acc_o Accumulator object for Type I error. - * Assumes that this is an accumulation - * of simulations for the SimState associated - * with the same model class as the one that - * generated kbs. - * @param grid_range GridRange-like object. - * Assumes that this is the same grid range - * that acc_o was updated with and that kbs - * is initialized with. - * @param delta 1-confidence of provable upper bound. - * @param delta_prop_0to1 proportion of delta to put - * into 0th order upper bound. - * Default is 0.5. - * @param verbose if true, then more quantities will be saved. - * Currently, it stores the corner points of - * each tile that maximizes the - * first order + first order upper bound + second order upper bound - * Note that for regular gridpoints, - * the saved vertices are undefined. Default is false. - */ - template - void create(KBStateType&& kbs, const KBSAccType& acc_o, - const GridRangeType& grid_range, value_t delta, - value_t delta_prop_0to1 = 0.5, bool verbose = false) { - const auto n_params = grid_range.n_params(); - const auto n_tiles = grid_range.n_tiles(); - const auto n_models = acc_o.n_models(); - - if (verbose) { - const auto slice_size = n_params * n_tiles; - vertices_.resize(slice_size * n_models); - create_internal(kbs, acc_o, grid_range, delta, delta_prop_0to1, - [&](size_t m, size_t pos, const auto& v) { - Eigen::Map > cor_slice( - vertices_.data() + slice_size * m, n_params, - n_tiles); - cor_slice.col(pos) = v; - }); - } else { - create_internal(kbs, acc_o, grid_range, delta, delta_prop_0to1, - [](size_t, size_t, const auto&) {}); - } - - full_ = delta_0_ + delta_0_u_ + delta_1_ + delta_1_u_ + delta_2_u_; - } - - /* - * Returns the total upper bound computed from the components. - */ - const mat_type& get() const { return full_; } - - /* - * Returns the vertices that maximize - * first order + first order upper bound + second order upper bound - * for each model and tile. - * The output is a vector representing a 3-D array of shape - * (n_params, n_tiles, n_models), so that vertices()[:,j,k] - * is the maximizing vertex at jth tile and kth model. - */ - const colvec_type& vertices() const { return vertices_; } - - mat_type& delta_0() { return delta_0_; } - mat_type& delta_0_u() { return delta_0_u_; } - mat_type& delta_1() { return delta_1_; } - mat_type& delta_1_u() { return delta_1_u_; } - mat_type& delta_2_u() { return delta_2_u_; } - const mat_type& delta_0() const { return delta_0_; } - const mat_type& delta_0_u() const { return delta_0_u_; } - const mat_type& delta_1() const { return delta_1_; } - const mat_type& delta_1_u() const { return delta_1_u_; } - const mat_type& delta_2_u() const { return delta_2_u_; } -}; - -} // namespace bound -} // namespace imprint diff --git a/imprint/include/imprint_bits/distribution/binomial.hpp b/imprint/include/imprint_bits/distribution/binomial.hpp deleted file mode 100644 index 870a8d4c..00000000 --- a/imprint/include/imprint_bits/distribution/binomial.hpp +++ /dev/null @@ -1,69 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace distribution { - -template -struct Binomial { - using value_t = IntType; - - private: - std::binomial_distribution binom_dist_; - - public: - Binomial(value_t n, double p) : binom_dist_(n, p) {} - - /* - * Samples a single Binomial sample with parameter n, p. - */ - template - auto sample(GenType&& gen) { - return binom_dist_(gen); - } - - /* - * Computes the score of a binomial distribution with parameters n, p. - * The score is given by: - * t - n * p - * where t is the count. - * The parameters t, n, p are all array-like with the same underlying value - * type. - */ - template - IMPRINT_STRONG_INLINE static auto score(const TType& t, const NType& n, - const PType& p) { - return t - n * p; - } - - /* - * Computes the quadratic form (of v) of the covariance matrix - * of the count evaluated at p. - * If n has length d, the function assumes a random variable of length d - * with each component i representing the count from - * sampling n[i] i.i.d. samples of Bernoulli from p[i]. - * This function assumes that the binomial r.v.'s are independent - * with array-like parameters n, p, v with the same underlying value type. - */ - template - IMPRINT_STRONG_INLINE static auto covar_quadform(const NType& n, - const PType& p, - const VType& v) { - return (n * v.square() * p * (1.0 - p)).sum(); - } - - /* - * Computes the transformation from natural parameter to mean parameter. - * nat is an array-like object with each component representing - * a binomial natural parameter. - */ - template - IMPRINT_STRONG_INLINE static auto natural_to_mean(const NatType& nat) { - return sigmoid(nat); - } -}; - -} // namespace distribution -} // namespace imprint diff --git a/imprint/include/imprint_bits/distribution/exponential.hpp b/imprint/include/imprint_bits/distribution/exponential.hpp deleted file mode 100644 index 7167df04..00000000 --- a/imprint/include/imprint_bits/distribution/exponential.hpp +++ /dev/null @@ -1,67 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace distribution { - -template -struct Exponential { - using value_t = ValueType; - - private: - std::exponential_distribution exp_; - - public: - Exponential(value_t scale) : exp_(scale) {} - - /* - * Generates i.i.d. exponential samples using - * the RNG gen of shape (m, n), and stores the result in out. - */ - template - IMPRINT_STRONG_INLINE void sample(size_t m, size_t n, GenType&& gen, - OutType&& out) { - out = out.NullaryExpr(m, n, [&](auto, auto) { return exp_(gen); }); - } - - /* - * Computes the quadratic form (of v) of the covariance matrix - * of the sufficient statistic evaluated at lmda. - * If n has length d, the function assumes a random variable of length d - * with each component i representing the sufficient statistic of - * sampling n[i] i.i.d. samples from lmda[i]. - * It assumes array-like parameters n, lmda, v. - */ - template - IMPRINT_STRONG_INLINE static auto covar_quadform(const NType& n, - const LmdaType& lmda, - const VType& v) { - return (n * (v.square() / lmda.square())).sum(); - } - - /* - * Computes the score of exponential distribution for n[i] i.i.d. - * draws of Exp(lmda[i]) with sufficient statistic t[i]. - * Returns an array-like expression with the score for each i. - */ - template - IMPRINT_STRONG_INLINE static auto score(const TType& t, const NType& n, - const LmdaType& lmda) { - return t - n * (1 / lmda); - } - - /* - * Computes the transformation from natural parameter to mean parameter. - * nat is an array-like object with each component representing - * an exponential natural parameter. - */ - template - IMPRINT_STRONG_INLINE static auto natural_to_mean(const NatType& nat) { - return -nat; - } -}; - -} // namespace distribution -} // namespace imprint diff --git a/imprint/include/imprint_bits/distribution/normal.hpp b/imprint/include/imprint_bits/distribution/normal.hpp deleted file mode 100644 index bb1a244b..00000000 --- a/imprint/include/imprint_bits/distribution/normal.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { -namespace distribution { - -template -struct Normal { - using value_t = ValueType; - - private: - std::normal_distribution normal_dist_; - - public: - Normal(value_t loc, value_t scale) : normal_dist_(loc, scale) {} - - /* - * Samples a single univariate normal random variable - * given an RNG gen. - */ - template - IMPRINT_STRONG_INLINE value_t sample(GenType&& gen) { - return normal_dist_(gen); - } -}; - -} // namespace distribution -} // namespace imprint diff --git a/imprint/include/imprint_bits/distribution/uniform.hpp b/imprint/include/imprint_bits/distribution/uniform.hpp deleted file mode 100644 index 39a9edcc..00000000 --- a/imprint/include/imprint_bits/distribution/uniform.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace distribution { - -template -struct Uniform { - using value_t = ValueType; - - private: - std::uniform_real_distribution unif_; - - public: - Uniform(value_t min, value_t max) : unif_(min, max) {} - - /* - * Generates i.i.d. uniform samples using the distribution object unif - * and the RNG gen of shape (m, n), and stores the result in out. - */ - template - IMPRINT_STRONG_INLINE void sample(size_t m, size_t n, GenType&& gen, - OutType&& out) { - out = out.NullaryExpr(m, n, [&](auto, auto) { return unif_(gen); }); - } -}; - -} // namespace distribution -} // namespace imprint diff --git a/imprint/include/imprint_bits/driver/accumulate.hpp b/imprint/include/imprint_bits/driver/accumulate.hpp deleted file mode 100644 index 7c06ffdf..00000000 --- a/imprint/include/imprint_bits/driver/accumulate.hpp +++ /dev/null @@ -1,85 +0,0 @@ -#pragma once -#include - -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace driver { - -template -inline void accumulate_(const VecSSType& vec_ss, - const GridRangeType& grid_range, AccumType& acc_o, - size_t sim_size, size_t n_threads) { - using acc_t = std::decay_t; - using gr_t = GridRangeType; - using uint_t = typename gr_t::uint_t; - - auto sim_size_thr = sim_size / n_threads; - auto sim_size_rem = sim_size % n_threads; - - std::vector acc_os(n_threads, acc_o); - - assert(vec_ss.size() == n_threads); - -#pragma omp parallel for schedule(static) num_threads(n_threads) - for (size_t t = 0; t < n_threads; ++t) { - auto& sim_state = *vec_ss[t]; - colvec_type rej_len(grid_range.n_tiles()); - auto sim_size_t = sim_size_thr + (t < sim_size_rem); - for (size_t i = 0; i < sim_size_t; ++i) { - sim_state.simulate(rej_len); - acc_os[t].update(rej_len, sim_state, grid_range); - } - } - - for (size_t j = 0; j < acc_os.size(); ++j) { - acc_o.pool(acc_os[j]); - } -} - -/* - * Runs a sim_size number of simulations using - * the simulation global state object, sgs, - * which stores common data for all simulations - * and specifies the simulation routine via the - * simulation state class. - * The simulations are run on the - * grid range specified by grid_range. - * For each simulation, the accumulator acc_o - * accumulates information from it. - * acc_o must be initialized properly so that - * acc_o.pool(acc_o) and acc_o.update(...) have a well-defined behavior. - */ -template -inline void accumulate(const SGSType& sgs, const GridRangeType& grid_range, - AccumType& acc_o, size_t sim_size, size_t seed, - size_t n_threads) { - using sgs_t = SGSType; - using ss_t = typename sgs_t::interface_t::sim_state_t; - - size_t max_threads = std::thread::hardware_concurrency(); - - if (n_threads <= 0) { - throw std::runtime_error("n_threads must be positive."); - } - - if (n_threads > max_threads) { - n_threads = max_threads; - } - - std::vector> ss_s; - ss_s.reserve(n_threads); - for (size_t i = 0; i < n_threads; ++i) { - ss_s.emplace_back(sgs.make_sim_state(seed + i)); - } - - accumulate_(ss_s, grid_range, acc_o, sim_size, n_threads); -} - -} // namespace driver -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/adagrid_internal.hpp b/imprint/include/imprint_bits/grid/adagrid_internal.hpp deleted file mode 100644 index dbbe7811..00000000 --- a/imprint/include/imprint_bits/grid/adagrid_internal.hpp +++ /dev/null @@ -1,194 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -struct AdaGridInternal { - private: - /* - * Flags to indicate which action to take. - * - finalize_ = finalize - * - N_ = change sim size - * - eps_ = change radius - */ - enum class action_type : char { finalize_, N_, eps_ }; - - /* - * Computes new simulation size based on old value N, - * the factor to scale by, N_factor, and the max value, N_max. - */ - IMPRINT_STRONG_INLINE - constexpr static auto compute_new_sim_size(size_t N, size_t N_factor, - size_t N_max) { - return std::min(N * N_factor, N_max); - } - - public: - /* - * Replaces grid_range with the new iteration of grid-points, and - * populates grid_final with current iteration of finalized points, - * based on the imprint bound ub. - */ - template - void update(const ImprintBoundType& ub, GridRangeType& grid_range, - GridRangeType& grid_final, size_t N_max, - ValueType finalize_thr) const { - using value_t = ValueType; - using gr_t = std::decay_t; - - // allocate aux data one-time. - const auto d = grid_range.n_params(); // dimension of grid point - dAryInt bits(2, d); - colvec_type new_rad; - colvec_type new_pt; - std::vector actions(grid_range.n_tiles()); - - // aliases and configuration - const auto& ub_tot = ub.get(); - const auto N_factor = bits.n_unique(); // amount to increase sim size - const auto n_new_pts = - bits.n_unique(); // number of new points if eps changes - size_t n_finalized = 0; // number of new finalized points - size_t n_grid_range = 0; // number of new grid range points - - // aliases - const auto& d0 = ub.delta_0(); - const auto& d0_u = ub.delta_0_u(); - const auto& d1 = ub.delta_1(); - const auto& d1_u = ub.delta_1_u(); - const auto& d2_u = ub.delta_2_u(); - const auto& N = grid_range.sim_sizes(); - - // Note: ImprintBound rows small->large = model most->least - // conservative. So, first row is for thr_minus and second is thr. - - // First pass through all grid points is just to determine - // how many finalized/new grid range points we have. - size_t pos = 0; - for (size_t j = 0; j < grid_range.n_gridpts(); ++j) { - // Compute Gaussian mean approximation of upper bound - // if N changed to N*2^d, d = dimension of gridpt - auto ss = N[j]; - auto N_new = compute_new_sim_size(ss, N_factor, N_max); - auto N_ratio = static_cast(ss) / N_new; - - bool any_eps = false; // true if any tile require splitting - bool any_N = - false; // true if any tile require increase in sim_size - bool all_finalize = true; // true if all tiles finalized - - for (size_t t = 0; t < grid_range.n_tiles(j); ++t, ++pos) { - // Already a good estimate for ub: finalize_ - if ((ub_tot(1, pos) < finalize_thr) || (ss >= N_max)) continue; - - all_finalize = false; - - auto mu_dN = - d0(1, pos) + d1(1, pos) + - (d0_u(1, pos) + d1_u(1, pos)) * std::sqrt(N_ratio) + - d2_u(1, pos); - - // Compute Gaussian mean approximation of upper bound - // if eps changed to eps/2 - auto mu_deps = d0(1, pos) + d0_u(1, pos) + - (d1(1, pos) + d1_u(1, pos)) / 2. + - d2_u(1, pos) / 4.; - - // Compare Gaussian mean approximations: - // smaller the mean, the more likely ImprintBound < alpha. - bool do_N = (mu_dN < mu_deps); - any_N = any_N || do_N; - any_eps = any_eps || !do_N; - - } // end for-loop over tiles - - if (all_finalize) { - actions[j] = action_type::finalize_; - ++n_finalized; - continue; - } - - // prioritize splitting! - if (any_eps) { - actions[j] = action_type::eps_; - n_grid_range += n_new_pts; - continue; - } - - // finally, if not finalize and no eps, then increase sim_size - actions[j] = action_type::N_; - n_grid_range += 1; - - } // end for-loop over gridpts - - // move the current grid ranges and setup for next range. - const gr_t grid_range_old = std::move(grid_range); - grid_range = gr_t(d, n_grid_range); - grid_final = gr_t(d, n_finalized); - - const auto& theta_old = grid_range_old.thetas(); - const auto& radii_old = grid_range_old.radii(); - const auto& sim_sizes_old = grid_range_old.sim_sizes(); - auto& theta_new = grid_range.thetas(); - auto& radii_new = grid_range.radii(); - auto& sim_sizes_new = grid_range.sim_sizes(); - auto& theta_fin = grid_final.thetas(); - auto& radii_fin = grid_final.radii(); - auto& sim_sizes_fin = grid_final.sim_sizes(); - - // Second pass through the grid points will actually - // populate the new grid_range and grid_final. - size_t new_j = 0; - size_t fin_j = 0; - for (size_t j = 0; j < grid_range_old.n_gridpts(); ++j) { - auto theta_old_j = theta_old.col(j); - auto radius_old_j = radii_old.col(j); - auto sim_size_old_j = sim_sizes_old[j]; - - // finalize the point - switch (actions[j]) { - case action_type::finalize_: { - theta_fin.col(fin_j) = theta_old_j; - radii_fin.col(fin_j) = radius_old_j; - sim_sizes_fin[fin_j] = sim_size_old_j; - ++fin_j; - break; - } - - case action_type::N_: { - theta_new.col(new_j) = theta_old_j; - radii_new.col(new_j) = radius_old_j; - sim_sizes_new[new_j] = - compute_new_sim_size(sim_size_old_j, N_factor, N_max); - ++new_j; - break; - } - - case action_type::eps_: { - bits.setZero(); - new_rad = radius_old_j / 2.; - for (int k = 0; k < n_new_pts; ++k, ++bits) { - new_pt.array() = - theta_old_j.array() + - new_rad.array() * - (2 * bits().cast().array() - 1); - - theta_new.col(new_j) = new_pt; - radii_new.col(new_j) = new_rad; - sim_sizes_new[new_j] = sim_size_old_j; - ++new_j; - } - break; - } - } // end switch - } - } -}; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/decl.hpp b/imprint/include/imprint_bits/grid/decl.hpp deleted file mode 100644 index 558e85a0..00000000 --- a/imprint/include/imprint_bits/grid/decl.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace grid { - -template -struct Tile; - -template -struct GridRange; - -struct Gridder; - -template -struct HyperPlaneView; - -template -struct HyperPlane; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/grid_range.hpp b/imprint/include/imprint_bits/grid/grid_range.hpp deleted file mode 100644 index cd004ffb..00000000 --- a/imprint/include/imprint_bits/grid/grid_range.hpp +++ /dev/null @@ -1,390 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -template -struct GridRange { - using value_t = ValueType; - using uint_t = UIntType; - using tile_t = TileType; - using bits_t = unsigned char; // TODO: generalize? - - private: - mat_type thetas_; // matrix of theta vectors - mat_type radii_; // matrix of radius vectors - colvec_type sim_sizes_; // vector of simulation sizes - - // updated via member functions - std::vector cum_n_tiles_; // cum_n_tiles_[i] = cumulative number of - // tiles for ith gridpoint - std::vector bits_; // vector of bits to represent ISH of each tile - std::vector - tiles_; // vector of tiles (flattened across all gridpoints) - - bits_t all_alt_bits_; - - IMPRINT_STRONG_INLINE - static constexpr bits_t compute_init_bits(size_t max_bits) { return 0; } - - IMPRINT_STRONG_INLINE - static constexpr bits_t compute_all_alt_bits(size_t max_bits) { - bits_t out = 0; - bits_t pos = 1; - for (size_t b = 0; b < max_bits; ++b, pos <<= 1) { - out |= pos; - } - return out; - } - - IMPRINT_STRONG_INLINE - void set_null(bits_t& bits, size_t hypo, bool is_null = true) { - unsigned char t = (static_cast(1) << hypo); - auto true_bit = -is_null; - bits = ((~true_bit) & (bits | t)) | (true_bit & (bits & (~t))); - } - - IMPRINT_STRONG_INLINE - bool is_all_alt(bits_t bits) const { - return all_alt_bits_ && (bits == all_alt_bits_); - } - - void reset_tiles_viewer() { - // if tiles haven't been created yet - if (tiles_.size() == 0) return; - - size_t pos = 0; - for (size_t i = 0; i < n_gridpts(); ++i) { - for (size_t j = 0; j < n_tiles(i); ++j, ++pos) { - tiles_[pos].center(thetas_.col(i)); - tiles_[pos].radius(radii_.col(i)); - } - } - } - - public: - GridRange() = default; - - GridRange(uint_t dim, uint_t size) - : thetas_(dim, size), radii_(dim, size), sim_sizes_(size) {} - - GridRange(const Eigen::Ref>& thetas, - const Eigen::Ref>& radii, - const Eigen::Ref>& sim_sizes) - : thetas_(thetas), radii_(radii), sim_sizes_(sim_sizes) {} - - template - GridRange(const Eigen::Ref>& thetas, - const Eigen::Ref>& radii, - const Eigen::Ref>& sim_sizes, - const VecSurfType& surfs, bool do_prune = true) - : thetas_(thetas), radii_(radii), sim_sizes_(sim_sizes) { - create_tiles(surfs); - if (do_prune) prune(); - } - - GridRange(const GridRange& gr) - : thetas_(gr.thetas_), - radii_(gr.radii_), - sim_sizes_(gr.sim_sizes_), - cum_n_tiles_(gr.cum_n_tiles_), - bits_(gr.bits_), - tiles_(gr.tiles_) { - reset_tiles_viewer(); - } - - GridRange(GridRange&& gr) - : thetas_(std::move(gr.thetas_)), - radii_(std::move(gr.radii_)), - sim_sizes_(std::move(gr.sim_sizes_)), - cum_n_tiles_(std::move(gr.cum_n_tiles_)), - bits_(std::move(gr.bits_)), - tiles_(std::move(gr.tiles_)) { - reset_tiles_viewer(); - } - - GridRange& operator=(const GridRange& gr) { - thetas_ = gr.thetas_; - radii_ = gr.radii_; - sim_sizes_ = gr.sim_sizes_; - cum_n_tiles_ = gr.cum_n_tiles_; - bits_ = gr.bits_; - tiles_ = gr.tiles_; - reset_tiles_viewer(); - return *this; - } - - GridRange& operator=(GridRange&& gr) { - thetas_ = std::move(gr.thetas_); - radii_ = std::move(gr.radii_); - sim_sizes_ = std::move(gr.sim_sizes_); - cum_n_tiles_ = std::move(gr.cum_n_tiles_); - bits_ = std::move(gr.bits_); - tiles_ = std::move(gr.tiles_); - reset_tiles_viewer(); - return *this; - } - - /* - * Creates the tile information based on current values of - * gridpoints and radii information. - * - * It is undefined behavior if gridpoints and radii are not set. - * - * @param vec_surf vector of surface objects. - * vec_surf[i] corresponds to the surface that - * divides the parameter space to get ith null - * hypothesis space. Assumed that the non-negative side of the surface is - * the null-hypothesis region. - */ - template - void create_tiles(const VecSurfaceType& vec_surf) { - cum_n_tiles_.resize(n_gridpts() + 1); - cum_n_tiles_[0] = 0; - - bits_.reserve(n_gridpts()); - tiles_.reserve( - n_gridpts()); // slight optimization - // we know we need at least 1 for each gridpoint. - - const size_t max_bits = vec_surf.size(); // max number of bits allowed - assert(max_bits <= sizeof(bits_t) * 8); - - // this represents all alternative hypothesis being true - // note that there may be some padded bits which are - // set to null hypothesis being true, - // so if max_bits < sizeof(bits_t) * 8, this value is non-trivial. - all_alt_bits_ = compute_all_alt_bits(max_bits); - - // this represents all null-hypothesis being true. - const bits_t init_bits = compute_init_bits(max_bits); - - size_t tiles_begin = 0; // begin position of tiles_ for gridpt j - for (int j = 0; j < thetas_.cols(); ++j) { - auto theta_j = thetas_.col(j); - auto radius_j = radii_.col(j); - - // start the queue of tiles with one (regular) tile - bits_.emplace_back(init_bits); // sets current bit to init_bits - tiles_.emplace_back(theta_j, radius_j); - - for (size_t s = 0; s < vec_surf.size(); ++s) { - const auto& surf = vec_surf[s]; - size_t q_size = tiles_.size() - tiles_begin; - - // iterate over current queue of tiles for current gridpt - for (size_t i = 0; i < q_size; ++i) { - // if tile is on one side of surface - orient_type ori; - if (is_oriented(tiles_[tiles_begin + i], surf, ori)) { - set_null(bits_[tiles_begin + i], s, - (ori == orient_type::non_neg)); - continue; - } - - // add new (regular) tile - bits_.emplace_back(); - tiles_.emplace_back(theta_j, radius_j); - - auto& c_bits = bits_[tiles_begin + i]; - auto& tile = - tiles_[tiles_begin + i]; // get ref here because - // previous emplace_back may - // invalidate any prior refs. - auto& n_bits = bits_.back(); - auto& n_tile = tiles_.back(); - auto p_tile = n_tile; - - // copy ISH of tile into the new tiles - n_bits = c_bits; - - // split the current tile via surf into two smaller tiles - // - p_tile will be oriented non-negatively (surf null hyp - // space) - // - n_tile will be oriented non-positively - intersect(tile, surf, p_tile, n_tile); - tile = std::move(p_tile); - - // update ISH for the new tiles - set_null(c_bits, s, true); - set_null(n_bits, s, false); - } - } - - cum_n_tiles_[j + 1] = tiles_.size(); - tiles_begin += cum_n_tiles_[j + 1] - tiles_begin; - } - - assert(tiles_begin == n_tiles()); - } - - /* - * Prunes out gridpts and tiles where the ISH is all 0. - * These correspond to totally alternative regions - * where we should not even compute Type I error since no null is ever true. - */ - void prune() { - if (n_tiles() == 0) return; - - std::vector grid_idx; - std::vector new_cum_n_tiles; - std::vector new_bits; - std::vector new_tiles; - - new_cum_n_tiles.reserve(n_gridpts() + 1); - new_cum_n_tiles.push_back(0); - new_bits.reserve(bits_.size()); - new_tiles.reserve(tiles_.size()); - - size_t pos = 0; - for (size_t g = 0; g < n_gridpts(); ++g) { - size_t n_append = 0; - for (size_t j = 0; j < n_tiles(g); ++j) { - const auto& tile = tiles_[pos + j]; - auto bi = bits_[pos + j]; - if (is_all_alt(bi)) continue; - ++n_append; - new_bits.emplace_back(bi); - new_tiles.emplace_back(std::move(tile)); - } - if (n_append == 0) { - grid_idx.push_back(g); - } else { - new_cum_n_tiles.push_back(n_append + new_cum_n_tiles.back()); - } - pos += n_tiles(g); - } - - std::swap(bits_, new_bits); - std::swap(cum_n_tiles_, new_cum_n_tiles); - std::swap(tiles_, new_tiles); - - mat_type new_thetas(thetas_.rows(), - thetas_.cols() - grid_idx.size()); - mat_type new_radii(radii_.rows(), - radii_.cols() - grid_idx.size()); - colvec_type new_sim_sizes(sim_sizes_.size() - grid_idx.size()); - { - std::sort(grid_idx.begin(), grid_idx.end()); - int nj = 0; - for (int j = 0; j < thetas_.cols(); ++j) { - // if current column should be removed - if (std::binary_search(grid_idx.begin(), grid_idx.end(), j)) - continue; - new_thetas.col(nj) = thetas_.col(j); - new_radii.col(nj) = radii_.col(j); - new_sim_sizes(nj) = sim_sizes_(j); - ++nj; - } - } - thetas_.swap(new_thetas); - radii_.swap(new_radii); - sim_sizes_.swap(new_sim_sizes); - - // make sure to reset the viewers for the tile objects! - reset_tiles_viewer(); - } - - /* - * If these internal members' shapes are changed, - * user MUST call create_tiles() before using any tile information again. - */ - IMPRINT_STRONG_INLINE mat_type& thetas() { return thetas_; } - IMPRINT_STRONG_INLINE const mat_type& thetas() const { - return thetas_; - } - IMPRINT_STRONG_INLINE mat_type& radii() { return radii_; } - IMPRINT_STRONG_INLINE const mat_type& radii() const { - return radii_; - } - IMPRINT_STRONG_INLINE colvec_type& sim_sizes() { - return sim_sizes_; - } - IMPRINT_STRONG_INLINE const colvec_type& sim_sizes() const { - return sim_sizes_; - } - - IMPRINT_STRONG_INLINE const std::vector& cum_n_tiles() const { - return cum_n_tiles_; - } - - // This function is only valid once create_tiles() has been called. - IMPRINT_STRONG_INLINE uint_t n_tiles(size_t gridpt_idx) const { - return cum_n_tiles_[gridpt_idx + 1] - cum_n_tiles_[gridpt_idx]; - } - IMPRINT_STRONG_INLINE uint_t n_tiles() const { return tiles_.size(); } - IMPRINT_STRONG_INLINE uint_t n_gridpts() const { return thetas_.cols(); } - IMPRINT_STRONG_INLINE uint_t n_params() const { return thetas_.rows(); } - - /* - * Returns true if the tile specified by tile_idx - * has ISH configuration such that null hypothesis for hypo_idx is true. - * This function is only valid once create_tiles() has been called. - * It is well-defined for hypo_idx in the range [0, max_bits()). - * If create_tiles() were called with a vector of surfaces of size k, - * then, hypo_idx in the range [k, max_bits()) will return true, - * i.e. by default, an "empty" hypothesis is assumed to be null. - */ - IMPRINT_STRONG_INLINE - bool check_null(size_t tile_idx, size_t hypo_idx) const { - return (bits_[tile_idx] & - (static_cast(1) << hypo_idx)) == 0; - } - - IMPRINT_STRONG_INLINE - bool check_null(size_t gridpt_idx, size_t rel_tile_idx, - size_t hypo_idx) const { - size_t tile_idx = n_tiles(gridpt_idx) + rel_tile_idx; - return check_null(tile_idx, hypo_idx); - } - - /* - * Returns true if the gridpoint at idx - * is associated with a regular tile, i.e. a rectangular tile. - * This function is only valid once create_tiles() has been called. - * - * The note below marked with "XXXX" is about an optimization that has been - * reverted due to incorrect behavior. - * XXXX Note: this function originally did: - * XXXX return tiles_[tile_idx].is_regular(); - * XXXX but benchmarking shows that there is a MASSIVE speed difference - * XXXX from the current implementation. Cache is really important... - * XXXX Idea is that tiles_ is a heterogenous structure which used to - * contain - * XXXX std::bitset<> and some Eigen objects. - * XXXX Iterating through these makes pre-fetching hard - * XXXX and there are more tiles than gridpoints, so not only does the - * current - * XXXX implementation pre-fetch more values at a time, - * XXXX but also pre-fetches less in total. - */ - bool is_regular(size_t idx) const { - return tiles_[cum_n_tiles_[idx]].is_regular(); - } - - IMPRINT_STRONG_INLINE - static constexpr size_t max_bits() { return sizeof(bits_t) * 8; } - - /* - * Returns the vector of tiles. - */ - IMPRINT_STRONG_INLINE const auto& tiles() const { return tiles_; } - - // Helper functions for pickling stuff - IMPRINT_STRONG_INLINE auto& tiles__() { return tiles_; } - IMPRINT_STRONG_INLINE auto& cum_n_tiles__() { return cum_n_tiles_; } - IMPRINT_STRONG_INLINE auto& bits__() { return bits_; } - IMPRINT_STRONG_INLINE const auto& cum_n_tiles__() const { - return cum_n_tiles_; - } - IMPRINT_STRONG_INLINE const auto& bits__() const { return bits_; } -}; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/gridder.hpp b/imprint/include/imprint_bits/grid/gridder.hpp deleted file mode 100644 index 76c54879..00000000 --- a/imprint/include/imprint_bits/grid/gridder.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace grid { - -/* - * This class is responsible for defining routines to easily - * create a 1-dimensional grid. - */ -struct Gridder { - template - static ValueType radius(size_t n, ValueType lower, ValueType upper) { - assert(n); - return (upper - lower) / (2 * n); - } - - template - static auto make_grid(size_t n, ValueType lower, ValueType upper) { - using value_t = ValueType; - using vec_t = Eigen::Matrix; - auto r = radius(n, lower, upper); - return ((2. * vec_t::LinSpaced(n, 0, n - 1).array() + 1.) * r + lower) - .matrix(); - } - - template - static auto make_endpts(size_t n, ValueType lower, ValueType upper) { - using value_t = ValueType; - using mat_t = Eigen::Matrix; - auto r = radius(n, lower, upper); - return mat_t::NullaryExpr( - 2, n, [=](auto i, auto j) { return 2 * (j + i) * r + lower; }); - } -}; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/hyperplane.hpp b/imprint/include/imprint_bits/grid/hyperplane.hpp deleted file mode 100644 index 0b3c3df9..00000000 --- a/imprint/include/imprint_bits/grid/hyperplane.hpp +++ /dev/null @@ -1,120 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { -namespace grid { - -template -struct HyperPlaneView { - using value_t = ValueType; - - private: - Eigen::Map> - normal_; // normal vector to hyperplane - const value_t* shift_; // affine shift - - public: - HyperPlaneView() : normal_(nullptr, 0), shift_(nullptr) {} - - HyperPlaneView(const Eigen::Ref>& normal, - const value_t& shift) - : normal_(normal.data(), normal.size()), shift_(&shift) {} - - /* - * Finds the orientation of a vector v w.r.t. - * the current hyperplane object. - * Returns one of neg, on, pos if v is in the - * negative, boundary, or positive side of hyperplane, - * respectively. - */ - template - IMPRINT_STRONG_INLINE orient_type find_orient(const VecType& v) const { - value_t ctv = normal_.dot(v); - constexpr value_t tol = 1e-16; - auto comp = ctv - *shift_; - if (comp <= -tol) { - return orient_type::neg; - } else if (comp >= tol) { - return orient_type::pos; - } - return orient_type::on; - } - - /* - * Finds the directional weight alpha to get - * the intersected point: v + alpha * d. - * Returns alpha in (0,1) if successful, - * otherwise returns 0. - */ - template - IMPRINT_STRONG_INLINE value_t intersect(const VType& v, - const DType& d) const { - auto ntd = normal_.dot(d); - if (ntd == 0) return 0; - auto ntv = normal_.dot(v); - return (*shift_ - ntv) / ntd; - } - - IMPRINT_STRONG_INLINE auto normal() const { return normal_; } - IMPRINT_STRONG_INLINE - void normal(const Eigen::Ref>& n) { - new (&normal_) - Eigen::Map>(n.data(), n.size()); - } - IMPRINT_STRONG_INLINE auto shift() const { return *shift_; } - IMPRINT_STRONG_INLINE void shift(const value_t& s) { shift_ = &s; } -}; - -template -struct HyperPlane : HyperPlaneView { - private: - using view_t = HyperPlaneView; - - public: - using typename view_t::value_t; - - private: - colvec_type normal_; - value_t shift_; - - IMPRINT_STRONG_INLINE - void reset_view() { - this->normal(normal_); - this->shift(shift_); - } - - public: - HyperPlane(const Eigen::Ref>& normal, - const value_t& shift) - : view_t(), normal_(normal), shift_(shift) { - reset_view(); - } - - HyperPlane(const HyperPlane& hp) - : view_t(), normal_(hp.normal_), shift_(hp.shift_) { - reset_view(); - } - - HyperPlane(HyperPlane&& hp) - : view_t(), - normal_(std::move(hp.normal_)), - shift_(std::move(hp.shift_)) { - reset_view(); - } - - HyperPlane& operator=(const HyperPlane& hp) { - normal_ = hp.normal_; - shift_ = hp.shift_; - reset_view(); - } - - HyperPlane& operator=(HyperPlane&& hp) { - normal_ = std::move(hp.normal_); - shift_ = std::move(hp.shift_); - reset_view(); - } -}; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/tile.hpp b/imprint/include/imprint_bits/grid/tile.hpp deleted file mode 100644 index f3bd1220..00000000 --- a/imprint/include/imprint_bits/grid/tile.hpp +++ /dev/null @@ -1,187 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -/* - * This class represents a tile associated with a gridpoint. - * It is the region on which we will compute the upper-bound estimates - * (supremum) and the region associated with an intersection hypothesis space. - */ -template -struct Tile { - using value_t = ValueType; - - private: - std::vector> vertices_; // vertices of the actual tile - Eigen::Map> center_; // center of tile - Eigen::Map> - radius_; // radius that defines the bounds - // of the tile centered at center_ - - public: - struct FullVertexIterator { - using difference_type = std::ptrdiff_t; - using value_type = colvec_type; - using pointer = const value_type*; - using reference = const value_type&; - using iterator_category = std::forward_iterator_tag; - - private: - const std::reference_wrapper outer_ref_; - dAryInt bits_; - colvec_type v_; - size_t cnt_; - - public: - FullVertexIterator(const Tile& outer, size_t cnt) - : outer_ref_{outer}, - bits_(2, outer.n_params()), - v_(outer.n_params()), - cnt_(cnt) { - if (cnt_ < bits_.n_unique()) { - for (size_t i = 0; i < cnt_; ++i, ++bits_) - ; - auto&& dbits = bits_().template cast(); - auto&& dir = (2 * dbits.array() - 1).matrix(); - v_ = outer_ref_.get().regular_vertex(dir); - } - } - - FullVertexIterator& operator++() { - ++cnt_; - ++bits_; - auto&& dbits = bits_().template cast(); - auto&& dir = (2 * dbits.array() - 1).matrix(); - v_ = outer_ref_.get().regular_vertex(dir); - return *this; - } - IMPRINT_STRONG_INLINE reference operator*() const { return v_; } - IMPRINT_STRONG_INLINE pointer operator->() const { return &v_; } - - IMPRINT_STRONG_INLINE - constexpr bool operator==(const FullVertexIterator& it2) const { - return (this->cnt_ == it2.cnt_) && - (&this->outer_ref_.get() == &it2.outer_ref_.get()); - } - - IMPRINT_STRONG_INLINE - constexpr bool operator!=(const FullVertexIterator& it2) const { - return (this->cnt_ != it2.cnt_) || - (&this->outer_ref_.get() != &it2.outer_ref_.get()); - } - - IMPRINT_STRONG_INLINE const auto& bits() { return bits_; } - }; - - Tile() : vertices_(), center_(nullptr, 0), radius_(nullptr, 0) {} - - Tile(const Eigen::Ref>& center, - const Eigen::Ref>& radius) - : vertices_(), - center_(center.data(), center.size()), - radius_(radius.data(), radius.size()) {} - - Tile(const Tile& t) - : vertices_(t.vertices_), - center_(t.center_.data(), t.center_.size()), - radius_(t.radius_.data(), t.radius_.size()) {} - Tile(Tile&& t) - : vertices_(std::move(t.vertices_)), - center_(t.center_.data(), t.center_.size()), - radius_(t.radius_.data(), t.radius_.size()) {} - Tile& operator=(const Tile& t) { - vertices_ = t.vertices_; - new (¢er_) Eigen::Map>(t.center_.data(), - t.center_.size()); - new (&radius_) Eigen::Map>(t.radius_.data(), - t.radius_.size()); - return *this; - } - Tile& operator=(Tile&& t) { - vertices_ = std::move(t.vertices_); - new (¢er_) Eigen::Map>(t.center_.data(), - t.center_.size()); - new (&radius_) Eigen::Map>(t.radius_.data(), - t.radius_.size()); - return *this; - } - - /* - * Appends a new vertex object initialized with v. - * Note that populating the vertices automatically converts - * this tile to be non-regular. - * User must call make_regular(), - * or equivalently, resize the vertices matrix to be empty, - * to make the tile regular again. - */ - template - IMPRINT_STRONG_INLINE void emplace_back(VecType&& v) { - vertices_.emplace_back(std::forward(v)); - } - - /* - * Return iterators iterating through the vertices. - */ - IMPRINT_STRONG_INLINE auto begin() { return vertices_.begin(); } - IMPRINT_STRONG_INLINE auto end() { return vertices_.end(); } - IMPRINT_STRONG_INLINE auto begin() const { return vertices_.begin(); } - IMPRINT_STRONG_INLINE auto end() const { return vertices_.end(); } - - /* - * Return iterators iterating through the vertices - * of the full rectangular tile defined by the center and radius. - */ - IMPRINT_STRONG_INLINE auto begin_full() const { - return FullVertexIterator(*this, 0); - } - IMPRINT_STRONG_INLINE auto end_full() const { - return FullVertexIterator(*this, ipow(2, n_params())); - } - - IMPRINT_STRONG_INLINE auto n_params() const { return center_.size(); } - IMPRINT_STRONG_INLINE auto center() const { return center_; } - IMPRINT_STRONG_INLINE auto radius() const { return radius_; } - template - IMPRINT_STRONG_INLINE void center(const C& c) { - new (¢er_) - Eigen::Map>(c.data(), c.size()); - } - template - IMPRINT_STRONG_INLINE void radius(const R& r) { - new (&radius_) - Eigen::Map>(r.data(), r.size()); - } - - IMPRINT_STRONG_INLINE void make_regular() { vertices_.clear(); } - IMPRINT_STRONG_INLINE void clear() { vertices_.clear(); } - IMPRINT_STRONG_INLINE bool is_regular() const { - return (vertices_.size() == 0); - } - - /* - * Computes a regular tile vertex based on - * the direction to take radius. - * - * @param b vector of -1,1's where - * b[i] is the direction bit for ith axis. - * Assumed to have same dimensions as center - * and radius. - */ - template - IMPRINT_STRONG_INLINE auto regular_vertex(const BitsType& b) const { - return center_ + b.cwiseProduct(radius_); - } - - // Helper functions for pickling - IMPRINT_STRONG_INLINE auto& vertices__() { return vertices_; } - IMPRINT_STRONG_INLINE const auto& vertices__() const { return vertices_; } -}; - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/grid/utils.hpp b/imprint/include/imprint_bits/grid/utils.hpp deleted file mode 100644 index cccfcd13..00000000 --- a/imprint/include/imprint_bits/grid/utils.hpp +++ /dev/null @@ -1,190 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace grid { - -/* - * Finds the orientation of v w.r.t. sf. - * Simply delegates to sf.find_orient. - */ -template -IMPRINT_STRONG_INLINE auto find_orient(const VecType& v, const SurfType& sf) { - return sf.find_orient(v); -} - -namespace internal { - -/* - * Returns true if the max tile, i.e. the - * rectangular tile defined by the center - * and radius, is on one side of the surface. - * Note that such a tile may have corners on the surface. - * - * @param tile Tile object. - * @param sf Surface object. - * @param save_orient functor that saves the reason for return value. - * If the max tile is on one side of sf (returns true), - * reason will be set to either - * orient_type::non_neg, orient_type::non_pos, - * orient_type::on, depending on if it is in the non-negative, non-positive, or - * boundary orientation. Otherwise, it will be set to orient_type::none. - * - * @return true if max tile is on one side of sf. - */ -template -IMPRINT_STRONG_INLINE bool is_oriented_(const TileType& tile, - const SurfaceType& sf, - SaveOrientType save_orient, - IterType begin, IterType end) { - size_t n_pos = 0; - size_t n_neg = 0; - - for (; begin != end; ++begin) { - const auto& v = *begin; - - // side will be one of: pos, neg, on. - auto side = find_orient(v, sf); - - n_pos += (side == orient_type::pos); - n_neg += (side == orient_type::neg); - - // if both are positive, not regular - if (n_pos && n_neg) { - save_orient(orient_type::none); - return false; - } - } - - // Note: one of n_pos or n_neg must be 0 - auto ori = (n_pos > 0) - ? orient_type::non_neg - : ((n_neg > 0) ? orient_type::non_pos : orient_type::on); - save_orient(ori); - return true; -} - -template -IMPRINT_STRONG_INLINE bool is_oriented_(const TileType& tile, - const SurfaceType& sf, - SaveOrientType save_orient) { - if (tile.is_regular()) { - return is_oriented_(tile, sf, save_orient, tile.begin_full(), - tile.end_full()); - } else { - return is_oriented_(tile, sf, save_orient, tile.begin(), tile.end()); - } -} - -} // namespace internal - -/* - * Returns true if the tile - * is on one side of the surface sf. - */ -template -IMPRINT_STRONG_INLINE bool is_oriented(const TileType& tile, - const SurfaceType& sf) { - return internal::is_oriented_(tile, sf, [](auto) {}); -} - -/* - * Same as above and additionally records into "reason" the - * orientation of the tile w.r.t. sf. - */ -template -IMPRINT_STRONG_INLINE bool is_oriented(const TileType& tile, - const SurfaceType& sf, - orient_type& reason) { - return internal::is_oriented_(tile, sf, [&](orient_type r) { reason = r; }); -} - -/* - * Computes the intersection of tile and surface sf. - * After the function call, nn_tile will be updated with - * the new vertices such that it is non-negatively oriented, - * and np_tile will be non-positively oriented. - * This function assumes that surf will intersect tile - * in their respective geometric sense. - * - * TODO: currently for simplicity, if tile is not regular, - * we simply copy that structure as both p_tile and n_tile. - */ -template -void intersect(const TileType& tile, const SurfType& surf, TileType& p_tile, - TileType& n_tile) { - using tile_t = std::decay_t; - using value_t = typename tile_t::value_t; - - // if not regular, copy to both output tiles - if (!tile.is_regular()) { - p_tile = tile; - n_tile = tile; - return; - } - - // clear the contents of output tiles - // before appending vertices. - p_tile.clear(); - n_tile.clear(); - - auto n_params = tile.n_params(); - const auto& radius = tile.radius(); - - colvec_type v_new(n_params); - colvec_type dir(n_params); - dir.setZero(); - - auto it = tile.begin_full(); - for (; it != tile.end_full(); ++it) { - const auto& v = *it; - auto v_ori = find_orient(v, surf); - - // append the corner to the correct output tile(s). - // this handles all updates for the existing vertices. - if (v_ori == orient_type::pos) { - p_tile.emplace_back(v); - } else if (v_ori == orient_type::on) { - p_tile.emplace_back(v); - n_tile.emplace_back(v); - } else if (v_ori == orient_type::neg) { - n_tile.emplace_back(v); - } else { - throw std::runtime_error("Unexpected orientation type."); - } - - const auto& bits = it.bits()(); // actual underlying bit array - - // iterate through all neighboring vertices - // such that current vertex is k-lower, i.e. - // the kth entry is lower than that of the neighboring vertex, - // and add any intersected points that are not current vertices. - for (int k = 0; k < n_params; ++k) { - // if not k-lower - if (bits[k]) continue; - - // set current positive direction - dir[k] = 2 * radius[k]; - - // intersection = v + alpha * dir - value_t alpha = surf.intersect(v, dir); - - // if valid intersection - if (0 < alpha && alpha < 1) { - // append to both tiles - v_new = v + alpha * dir; - p_tile.emplace_back(v_new); - n_tile.emplace_back(v_new); - } - - // unset current direction - dir[k] = 0; - } - } -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/base.hpp b/imprint/include/imprint_bits/model/base.hpp deleted file mode 100644 index 9e42e3d8..00000000 --- a/imprint/include/imprint_bits/model/base.hpp +++ /dev/null @@ -1,133 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { -namespace model { - -/* - * Base class for all model classes. - */ -template -struct ModelBase { - using value_t = ValueType; - - private: - colvec_type critical_values_; - - public: - ModelBase() = default; - ModelBase(const Eigen::Ref>& cv) - : critical_values_(cv) {} - - size_t n_models() const { return critical_values_.size(); } - void critical_values(const Eigen::Ref>& cv) { - critical_values_ = cv; - } - auto& critical_values() { return critical_values_; } - const auto& critical_values() const { return critical_values_; } -}; - -/* - * Base class for all model global state classes. - * This class contains the interface for all model-specific - * simulation related global caching and creating simulation states. - */ -template -struct SimGlobalStateBase { - struct SimState; - - using interface_t = SimGlobalStateBase; - using value_t = ValueType; - using uint_t = UIntType; - using sim_state_t = SimState; - - virtual ~SimGlobalStateBase(){}; - - virtual std::unique_ptr make_sim_state(size_t seed) const = 0; -}; - -/* - * Base class for all model simulation state classes. - * This class contains the interface for all model-specific - * simulation related routines. - */ -template -struct SimGlobalStateBase::SimState { - private: - using outer_t = SimGlobalStateBase; - - public: - using interface_t = SimState; - using uint_t = typename outer_t::uint_t; - using value_t = typename outer_t::value_t; - - virtual ~SimState(){}; - - /* - * Simulates model using RNG gen and updates - * rejection_length with the total number of models falsely rejected. - * The ith position of rejection_length corresponds to - * the ith tile in a grid-range. - */ - virtual void simulate(Eigen::Ref> rejection_length) = 0; - - /* - * Computes the score of exponential family for parameter at param_idx - * and grid-point at gridpt_idx. - */ - virtual void score(size_t gridpt_idx, - Eigen::Ref> out) const = 0; -}; - -/* - * Base class for all model imprint bound state classes. - * This class contains the interface for all model-specific - * imprint bound related information. - * TODO: this interface will need to be further refactored - * once we start playing around with new imprint bounds. - */ -template -struct ImprintBoundStateBase { - using value_t = ValueType; - using interface_t = ImprintBoundStateBase; - - virtual ~ImprintBoundStateBase(){}; - - /* - * Computes Jacobian of eta evaluated at gridpt given by gridpt_idx - * and multiplies to v. - * Eta is the transformation that maps a grid-point to - * the corresponding natural parameter of the exponential family. - * The result is stored in out. - */ - virtual void apply_eta_jacobian( - size_t gridpt_idx, const Eigen::Ref>& v, - Eigen::Ref> out) = 0; - - /* - * Computes the covariance (evaluated at gridpt given by gridpt_idx) - * quadratic form. - */ - virtual value_t covar_quadform( - size_t gridpt_idx, const Eigen::Ref>& v) = 0; - - /* - * Computes an upper bound U(v) of - * \sup\limits_{\theta \in \text{tile}} v^\top \nabla^2 f(\theta) v - * Note that U must be convex. - * TODO: f is the Type I error function, but possibly generalizable - * to other functions like bias, MSE, FDR. - */ - virtual value_t hessian_quadform_bound( - size_t gridpt_idx, size_t tile_idx, - const Eigen::Ref>& v) = 0; - - /* - * Returns the number of natural parameters. - */ - virtual size_t n_natural_params() const = 0; -}; - -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/binomial/common/fixed_n_default.hpp b/imprint/include/imprint_bits/model/binomial/common/fixed_n_default.hpp deleted file mode 100644 index aa55f971..00000000 --- a/imprint/include/imprint_bits/model/binomial/common/fixed_n_default.hpp +++ /dev/null @@ -1,357 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -/* - * This class represents the default cache for all binomial models. - * By definition, binomial models are those that assume the data - * is drawn from a binomial distribution independently across arms. - * This class further assumes that all binomials have common size n. - * The default eta transformation is the identity function, - * so it assumes grid-points lie in the natural parameter space. - */ -template -struct SimGlobalStateFixedNDefault : SimGlobalStateBase { - struct SimState; - - using base_t = SimGlobalStateBase; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - using gen_t = GenType; - using grid_range_t = GridRangeType; - - using sim_state_t = SimState; - - private: - using binom_t = distribution::Binomial; - using vec_t = colvec_type; - using uvec_t = colvec_type; - using mat_t = mat_type; - using umat_t = mat_type; - - const size_t n_arm_samples_; // number of samples for each arm - const grid_range_t& grid_range_; // save reference to original grid range - std::vector probs_unique_; // probs_unique_[i] = unique prob vector - // sorted (ascending) for arm i. - uvec_t strides_; // strides_[i] = number of unique probs for arm i-1 with 0 - // for arm -1. - umat_t gbits_; // jth grid-point's ith coordinate is given by - // probs_unique_[i][gbits_(i,j)] - size_t n_total_uniques_ = 0; // total number of unique probability values - - IMPRINT_STRONG_INLINE - auto n_params() const { return grid_range_.n_params(); } - - /* - * Populates the private members. - */ - void construct() { - const auto n_params = grid_range_.n_params(); - - // resize all other internal quantities - probs_unique_.resize(n_params); - strides_.resize(n_params + 1); - gbits_.resize(n_params, grid_range_.n_gridpts()); - - const auto& thetas = grid_range_.thetas(); - - // populate set of unique theta values for each arm - std::unordered_map pu_to_idx; - std::set prob_set; - colvec_type prob; - auto& bits = gbits_; - - strides_[0] = 0; // initialize stride to arm 0. - - for (size_t i = 0; i < n_params; ++i) { - pu_to_idx.clear(); - prob_set.clear(); - - // insert all prob values in arm i into the set - prob = binom_t::natural_to_mean(thetas.row(i).array()); - for (int j = 0; j < prob.size(); ++j) { - prob_set.insert(prob[j]); - } - - // create a mapping from unique prob values to order idx - { - int j = 0; - for (auto p : prob_set) { - pu_to_idx[p] = j++; - } - } - - // increment number of total uniques - n_total_uniques_ += prob_set.size(); - - // copy number of uniques - strides_[i + 1] = strides_[i] + prob_set.size(); - - // copy unique prob values into vector - probs_unique_[i].resize(prob_set.size()); - std::copy(prob_set.begin(), prob_set.end(), - probs_unique_[i].data()); - - // populate bits for current arm - auto bits_i = bits.row(i); - for (int j = 0; j < bits_i.size(); ++j) { - bits_i(j) = pu_to_idx[prob(j)]; - } - } - } - - public: - SimGlobalStateFixedNDefault(size_t n_arm_samples, - const grid_range_t& grid_range) - : n_arm_samples_(n_arm_samples), grid_range_(grid_range) { - construct(); - } - - IMPRINT_STRONG_INLINE - const auto& bits() const { return gbits_; } - - IMPRINT_STRONG_INLINE - const auto& grid_range() const { return grid_range_; } - - IMPRINT_STRONG_INLINE - auto stride(size_t i) const { return strides_[i]; } - - IMPRINT_STRONG_INLINE - const auto& probs_unique_arm(size_t i) const { return probs_unique_[i]; } -}; - -/* - * This class is the corresponding simulation state - * for the fixed-n default case. - * Assuming everything in the global state, - * this class assumes some default behavior of - * - generating data given the whole grid-range - * - computing sufficient statistics - * - computing score - */ -template -struct SimGlobalStateFixedNDefault::SimState - : SimGlobalStateFixedNDefault::base_t::sim_state_t { - private: - using outer_t = SimGlobalStateFixedNDefault; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - using uniform_t = distribution::Uniform; - - const outer_t& outer_; - uniform_t uniform_; - mat_type uniform_randoms_; // uniform rng - colvec_type - sufficient_stat_; // sufficient statistic table for each - // arm and prob value sufficient_stat_(i,j) = - // suff stat at unique prob i at arm j. - gen_t gen_; - - template - IMPRINT_STRONG_INLINE auto sufficient_stats_arm(size_t j) const { - using vec_t = std::conditional_t, - colvec_type>; - auto& ss_casted = const_cast(sufficient_stat_); - return Eigen::Map(ss_casted.data() + outer_.strides_[j], - outer_.strides_[j + 1] - outer_.strides_[j]); - } - - public: - SimState(const outer_t& outer, size_t seed) - : outer_(outer), uniform_(0., 1.), gen_(seed) {} - - /* - * Returns a reference to the RNG. - */ - auto& rng() { return gen_; } - - /* - * Returns a read-only reference to the uniform randoms. - * Note that if generate_sufficient_stats has been called before, - * each column will be sorted uniform randoms. - */ - IMPRINT_STRONG_INLINE - auto& uniform_randoms() { return uniform_randoms_; } - - IMPRINT_STRONG_INLINE - const auto& uniform_randoms() const { return uniform_randoms_; } - - /* - * Creates a view of jth arm sufficient stats counts. - * Note that 0 <= j < n_arms. - */ - IMPRINT_STRONG_INLINE - auto sufficient_stats_arm(size_t j) const { - return sufficient_stats_arm(j); - } - - /* - * Generate uniform random variables of shape (n_arm_samples, n_params). - */ - IMPRINT_STRONG_INLINE - void generate_data() { - const auto n_arm_samples = outer_.n_arm_samples_; - const auto n_params = outer_.n_params(); - uniform_.sample(n_arm_samples, n_params, gen_, uniform_randoms_); - } - - /* - * Generates sufficient statistic for each arm - * and for each unique probability. - */ - IMPRINT_STRONG_INLINE - void generate_sufficient_stats() { - const auto n_params = outer_.n_params(); - const auto n_total_uniques = outer_.n_total_uniques_; - - // sort each column of the uniforms - sort_cols(uniform_randoms_); - - sufficient_stat_.resize(n_total_uniques); - - // output cumulative count of uniforms < p - // for each unique probability value p. - for (size_t i = 0; i < n_params; ++i) { - auto ss_i = sufficient_stats_arm(i); - - accum_count(uniform_randoms_.col(i), outer_.probs_unique_[i], ss_i); - } - } - - /* - * Computes the score of a binomial distribution at gridpt_idx. - */ - void score(size_t gridpt_idx, - Eigen::Ref> out) const override { - assert(out.size() == outer_.n_params()); - for (int k = 0; k < out.size(); ++k) { - auto ss_a = sufficient_stats_arm(k); - auto unique_idx = outer_.gbits_(k, gridpt_idx); - out[k] = binom_t::score(ss_a(unique_idx), outer_.n_arm_samples_, - outer_.probs_unique_arm(k)[unique_idx]); - } - } -}; - -/* - * This class represents the default imprint bound state for all binomial - * models. See the assumptions of binomial model in global state class above. - */ -template -struct ImprintBoundStateFixedNDefault - : ImprintBoundStateBase { - using grid_range_t = GridRangeType; - using base_t = ImprintBoundStateBase; - using typename base_t::interface_t; - using typename base_t::value_t; - - private: - using binom_t = distribution::Binomial; - - const grid_range_t& grid_range_; - size_t n_arm_samples_; - colvec_type p_buffer_; - - template - auto p_slice(size_t slice) const { - using mat_t = std::conditional_t, - mat_type>; - using vec_t = std::conditional_t, - colvec_type>; - auto& p_buffer_cast = const_cast(p_buffer_); - const auto mat_size = grid_range_.n_params() * grid_range_.n_gridpts(); - return Eigen::Map(p_buffer_cast.data() + mat_size * slice, - grid_range_.n_params(), - grid_range_.n_gridpts()); - } - - auto p_lower() const { return p_slice(0); } - auto p() const { return p_slice(1); } - auto p_upper() const { return p_slice(2); } - - public: - ImprintBoundStateFixedNDefault(size_t n_arm_samples, - const grid_range_t& grid_range) - : grid_range_(grid_range), - n_arm_samples_(n_arm_samples), - p_buffer_(grid_range.n_params() * grid_range.n_gridpts() * 3) { - const auto& thetas = grid_range.thetas(); - const auto& radii = grid_range.radii(); - p_slice(0) = - binom_t::natural_to_mean(thetas.array() - radii.array()); - p_slice(1) = binom_t::natural_to_mean(thetas.array()); - p_slice(2) = - binom_t::natural_to_mean(thetas.array() + radii.array()); - } - - /* - * Note that grid-point information is not used. - */ - void apply_eta_jacobian(size_t, - const Eigen::Ref>& v, - Eigen::Ref> out) override { - assert(v.size() == n_natural_params()); - assert(v.size() == out.size()); - out = v; - } - - value_t covar_quadform( - size_t gridpt_idx, - const Eigen::Ref>& v) override { - assert(v.size() == n_natural_params()); - return binom_t::covar_quadform(n_arm_samples_, - p().col(gridpt_idx).array(), v.array()); - } - - /* - * Note that tile information is not used in this bound. - */ - value_t hessian_quadform_bound( - size_t gridpt_idx, size_t, - const Eigen::Ref>& v) override { - assert(v.size() == n_natural_params()); - - auto p_lower_ = p_lower().col(gridpt_idx); - auto p_upper_ = p_upper().col(gridpt_idx); - - value_t hess_bd = 0; - for (int k = 0; k < v.size(); ++k) { - auto v_sq = v[k] * v[k]; - if (p_lower_[k] <= 0.5 && 0.5 <= p_upper_[k]) { - hess_bd += 0.25 * v_sq; - } else { - auto lower = p_lower_[k] - 0.5; // shift away center - auto upper = p_upper_[k] - 0.5; // shift away center - // max of p(1-p) occurs for whichever p is closest to 0.5. - bool max_at_upper = (std::abs(upper) < std::abs(lower)); - auto max_endpt = max_at_upper ? p_upper_[k] : p_lower_[k]; - hess_bd += max_endpt * (1. - max_endpt) * v_sq; - } - } - return hess_bd * n_arm_samples_; - } - - size_t n_natural_params() const override { return grid_range_.n_params(); } -}; - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/binomial/direct_bayes.hpp b/imprint/include/imprint_bits/model/binomial/direct_bayes.hpp deleted file mode 100644 index 0c705bec..00000000 --- a/imprint/include/imprint_bits/model/binomial/direct_bayes.hpp +++ /dev/null @@ -1,386 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -template -struct DirectBayes : FixedSingleArmSize, ModelBase { - using arm_base_t = FixedSingleArmSize; - using base_t = ModelBase; - using typename base_t::value_t; - - private: - using vec_t = colvec_type; - using mat_t = mat_type; - - static constexpr int n_integration_points = 16; - static constexpr value_t alpha_prior = 0.0005; - static constexpr value_t beta_prior = 0.000005; - const vec_t efficacy_thresholds_; - - public: - template - struct SimGlobalState; - - template - using sim_global_state_t = - SimGlobalState<_GenType, _ValueType, _UIntType, _GridRangeType>; - - template - using imprint_bound_state_t = - ImprintBoundStateFixedNDefault<_GridRangeType>; - - DirectBayes( - size_t n_arms, size_t n_arm_size, - const Eigen::Ref>& cv, - const Eigen::Ref>& efficacy_thresholds) - : arm_base_t(n_arms, n_arm_size), - base_t(), - efficacy_thresholds_(efficacy_thresholds) { - assert(efficacy_thresholds.size() == n_arms); - critical_values(cv); - } - - using arm_base_t::n_arm_samples; - using arm_base_t::n_arms; - - using base_t::critical_values; - void critical_values(const Eigen::Ref>& cv) { - auto& cv_ = base_t::critical_values(); - cv_ = cv; - std::sort(cv_.begin(), cv_.end(), std::greater()); - } - - template - auto make_sim_global_state(const _GridRangeType& grid_range) const { - return sim_global_state_t<_GenType, _ValueType, _UIntType, - _GridRangeType>(*this, grid_range); - } - - template - auto make_imprint_bound_state(const _GridRangeType& gr) const { - return imprint_bound_state_t<_GridRangeType>(n_arm_samples(), gr); - } -}; - -template -template -struct DirectBayes::SimGlobalState - : SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType> { - struct SimState; - - using base_t = SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType>; - using typename base_t::gen_t; - using typename base_t::grid_range_t; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - - using sim_state_t = SimState; - - private: - using model_t = DirectBayes; - const model_t& model_; - vec_t quadrature_points_; - vec_t weighted_density_logspace_; - Eigen::Tensor, 4> posterior_exceedance_cache_; - const double mu_sig_sq_ = 100; - - public: - SimGlobalState(const model_t& model, const grid_range_t& grid_range) - : base_t(model.n_arm_samples(), grid_range), model_(model) { - const int n_arm_size = model_.n_arm_samples(); - const auto n_params = grid_range.n_params(); - std::tie(quadrature_points_, weighted_density_logspace_) = - get_quadrature(model.alpha_prior, model.beta_prior, - model.n_integration_points, n_arm_size); - // Under the current cache design, the number of arms must be known at - // compile time - assert(n_params == 4); - posterior_exceedance_cache_.resize(n_arm_size, n_arm_size, n_arm_size, - n_arm_size); - vec_t suff_stats(n_params); - posterior_exceedance_cache_.setConstant( - Eigen::Vector::Constant(NAN)); - // Must start at 1 because DB is undefined at zero! - for (int i = 1; i < n_arm_size - 1; ++i) { - suff_stats[0] = i; - for (int j = 1; j < n_arm_size - 1; ++j) { - suff_stats[1] = j; - for (int k = 1; k < n_arm_size - 1; ++k) { - suff_stats[2] = k; - for (int l = 1; l < n_arm_size - 1; ++l) { - suff_stats[3] = l; - posterior_exceedance_cache_(i, j, k, l) = - get_posterior_exceedance_probs( - suff_stats.array() / n_arm_size, - quadrature_points_, weighted_density_logspace_, - model_.efficacy_thresholds_, - model_.n_arm_samples(), mu_sig_sq_); - } - } - } - } - } - - static std::pair get_quadrature( - const value_t alpha_prior, const value_t beta_prior, - const int n_integration_points, const int n_arm_size) { - // Shared for a given prior - // TODO: consider constexpr - const value_t a = std::log(1e-8); - const value_t b = std::log(1e3); - auto pair = leggauss(n_integration_points); - // TODO: transpose this in leggauss for efficiency - vec_t quadrature_points = pair.row(0); - vec_t quadrature_weights = pair.row(1); - quadrature_points = - ((quadrature_points.array() + 1) * ((b - a) / 2) + a).exp(); - // sum(wts) = b-a so it averages to 1 over space - quadrature_weights = quadrature_weights * ((b - a) / 2); - // TODO: remove second alloc here - vec_t density_logspace = - invgamma_pdf(quadrature_points, alpha_prior, beta_prior) - .template cast(); - density_logspace.array() *= quadrature_points.array(); - auto weighted_density_logspace = - density_logspace.array() * quadrature_weights.array(); - return {quadrature_points, weighted_density_logspace}; - } - - static mat_t faster_invert(const vec_t& D_inverse, value_t O) { - //(1) compute multiplier on the new rank-one component - auto multiplier = -O / (1 + O * D_inverse.sum()); - mat_t M = multiplier * D_inverse * D_inverse.transpose(); - M.diagonal() += D_inverse; - return M; - } - - static value_t faster_determinant(const vec_t D_inverse, const value_t O) { - // This function uses "Sherman-Morrison for determinants" - // https://en.wikipedia.org/wiki/Matrix_determinant_lemma - // Note: this can be embedded inside of faster_invert to take advantage - // of partial existing computations. If only I knew how to coveniently - // return multiple objects...lol - auto detD_inverse = (1. / D_inverse.array()).prod(); - auto newdeterminant = detD_inverse * (1 + O * D_inverse.sum()); - return newdeterminant; - } - - static vec_t conditional_exceed_prob_given_sigma( - const value_t sigma_sq, const value_t mu_sig_sq, const vec_t& sample_I, - const vec_t& thetahat, const vec_t& logit_thresholds, const vec_t& mu_0, - const bool use_fast_inverse = true) { - const int d = sample_I.size(); - // TODO: precompute sigma_sq_inv, V_0, shift - // TODO: minimize the heap allocations in this function - vec_t sigma_sq_inv = vec_t::Constant(d, 1. / sigma_sq); - mat_t V_0 = sigma_sq_inv.asDiagonal(); - auto shift = -1 * (mu_sig_sq / sigma_sq) / (sigma_sq + d * mu_sig_sq); - V_0.array() += shift; - mat_t Sigma_posterior; - // TODO template this and use if constexpr - if (use_fast_inverse) { - vec_t V_0 = 1. / (sigma_sq_inv + sample_I).array(); - Sigma_posterior = faster_invert(V_0, shift); - } else { - mat_t precision_posterior = sample_I.asDiagonal(); - precision_posterior += V_0; - Sigma_posterior = - precision_posterior.llt().solve(mat_t::Identity(d, d)); - } - ASSERT_GOOD(Sigma_posterior); - ASSERT_GOOD(sample_I); - ASSERT_GOOD(thetahat); - const vec_t mu_posterior = - Sigma_posterior * - (sample_I.array() * thetahat.array() + (V_0 * mu_0).array()) - .matrix(); - ASSERT_GOOD(mu_posterior); - - vec_t z_scores = (mu_posterior - logit_thresholds).array(); - z_scores.array() /= Sigma_posterior.diagonal().array().sqrt(); - // James suggestion: - // vec_t some_vec = (sample_I.array() * thetahat.array() + - // (V_0.matrix() - // * mu_0).array()).matrix(); vec_t z_scores = Sigma_posterior * - // some_vec; z_scores.array() = (z_scores.array()-thresholds[0]) / - // Sigma_posterior.diagonal().array().sqrt(); - ASSERT_GOOD(z_scores); - return normal_cdf(z_scores); - } - - static vec_t get_posterior_exceedance_probs( - const vec_t& phat, const vec_t& quadrature_points, - const vec_t& weighted_density_logspace, - const vec_t& efficacy_thresholds, const size_t n_arm_size, - const value_t mu_sig_sq, bool use_optimized = true) { - assert((phat.array() >= 0).all()); - assert((phat.array() <= 1).all()); - // Shared for a given thetahat - const int n_arms = phat.size(); - const vec_t thetahat = logit(phat.array()); - ASSERT_GOOD(thetahat); - const vec_t sample_I = n_arm_size * phat.array() * (1 - phat.array()); - const int n_integration_points = quadrature_points.size(); - - // TODO: make this a user-specified parameter - const vec_t mu_0 = vec_t::Constant(n_arms, -1.34); - - vec_t sample_I_inv = 1.0 / sample_I.array(); - vec_t posterior_reweight(n_integration_points); - for (int i = 0; i < n_integration_points; ++i) { - // TODO: template this and use if constexpr - if (use_optimized) { - auto sigma_sq = quadrature_points[i]; - vec_t diaginv = 1.0 / (sample_I_inv.array() + sigma_sq); - auto totalvar_inv = faster_invert(diaginv, mu_sig_sq); - auto meandiff = thetahat - mu_0; - auto exponent = - -0.5 * - (meandiff.transpose().dot((totalvar_inv * meandiff))); - auto determinant_piece = - 1. / std::sqrt(faster_determinant(diaginv, mu_sig_sq)); - posterior_reweight(i) = determinant_piece * std::exp(exponent); - } else { - mat_t total_var = - (vec_t::Constant(n_arms, quadrature_points[i]) + - sample_I_inv) - .asDiagonal(); - total_var.array() += mu_sig_sq; - auto determinant = total_var.determinant(); - posterior_reweight(i) = - 1. / std::sqrt(determinant) * - std::exp(-0.5 * (((thetahat - mu_0).transpose() * - total_var.inverse()) * - (thetahat - mu_0)) - .sum()); - } - } - vec_t final_reweight = - (posterior_reweight.array() * weighted_density_logspace.array()); - final_reweight /= final_reweight.sum(); - - const vec_t logit_efficacy_thresholds = - logit(efficacy_thresholds.array()); - mat_t exceed_probs(n_arms, n_integration_points); - for (int i = 0; i < n_integration_points; ++i) { - exceed_probs.col(i) = conditional_exceed_prob_given_sigma( - quadrature_points[i], - mu_sig_sq, // TODO: integrate over this too - sample_I, thetahat, logit_efficacy_thresholds, mu_0); - } - - const auto posterior_exceedance_probs = - exceed_probs * final_reweight.matrix(); - return posterior_exceedance_probs; - } - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -template -struct DirectBayes::SimGlobalState<_GenType, _ValueType, _UIntType, - _GridRangeType>::SimState - : base_t::sim_state_t { - private: - using outer_t = SimGlobalState; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - const outer_t& outer_; - - public: - SimState(const outer_t& sgs, size_t seed) - : base_t(sgs, seed), outer_(sgs) {} - - void simulate(Eigen::Ref> rej_len) override { - base_t::generate_data(); - base_t::generate_sufficient_stats(); - - const auto& bits = outer_.bits(); - const auto& gr_view = outer_.grid_range(); - - const auto n_params = gr_view.n_params(); // same as n_arms - const auto& critical_values = outer_.model_.critical_values(); - - size_t pos = 0; - - for (size_t grid_i = 0; grid_i < gr_view.n_gridpts(); ++grid_i) { - auto bits_i = bits.col(grid_i); - - Eigen::array suff_stats; - for (int i = 0; i < n_params; ++i) { - const auto& ss_i = base_t::sufficient_stats_arm(i); - suff_stats[i] = ss_i(bits_i[i]); - } - const Eigen::Vector& posterior_exceedance_probs = - outer_.posterior_exceedance_cache_(suff_stats); - assert(posterior_exceedance_probs.array().sum() != 0); - - // assuming critical_values is sorted in descending order - bool do_optimized_update = - (posterior_exceedance_probs.array() <= - critical_values[critical_values.size() - 1]) - .all(); - if (do_optimized_update) { - rej_len.segment(pos, gr_view.n_tiles(grid_i)).array() = 0; - pos += gr_view.n_tiles(grid_i); - continue; - } - - for (size_t n_t = 0; n_t < gr_view.n_tiles(grid_i); ++n_t, ++pos) { - value_t max_null_prob_exceed = 0; - for (int arm_i = 0; arm_i < n_params; ++arm_i) { - if (gr_view.check_null(pos, arm_i)) { - max_null_prob_exceed = - std::max(max_null_prob_exceed, - posterior_exceedance_probs[arm_i]); - } - } - - int cv_i = 0; - for (; cv_i < critical_values.size(); ++cv_i) { - if (max_null_prob_exceed > critical_values[cv_i]) { - break; - } - } - rej_len(pos) = critical_values.size() - cv_i; - } - } - - assert(rej_len.size() == pos); - } - - using base_t::score; -}; - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/binomial/simple_selection.hpp b/imprint/include/imprint_bits/model/binomial/simple_selection.hpp deleted file mode 100644 index ece72db9..00000000 --- a/imprint/include/imprint_bits/model/binomial/simple_selection.hpp +++ /dev/null @@ -1,280 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -template -struct SimpleSelection : FixedSingleArmSize, ModelBase { - using arm_base_t = FixedSingleArmSize; - using base_t = ModelBase; - using typename base_t::value_t; - - private: - const size_t n_phase2_samples_; - - /* - * Returns total number of parameters. - * Simply an alias for n_arms() since there is 1 parameter per arm. - */ - IMPRINT_STRONG_INLINE auto n_params() const { return n_arms(); } - - public: - template - struct SimGlobalState; - - template - using sim_global_state_t = - SimGlobalState<_GenType, _ValueType, _UIntType, _GridRangeType>; - - template - using imprint_bound_state_t = - ImprintBoundStateFixedNDefault<_GridRangeType>; - - SimpleSelection(size_t n_arms, size_t n_arm_samples, - size_t n_phase2_samples, - const Eigen::Ref>& cv) - : arm_base_t(n_arms, n_arm_samples), - base_t(), - n_phase2_samples_(n_phase2_samples) { - assert(n_phase2_samples <= n_arm_samples); - critical_values(cv); - } - - using arm_base_t::n_arm_samples; - using arm_base_t::n_arms; - - IMPRINT_STRONG_INLINE - constexpr size_t n_phase2_samples() const { return n_phase2_samples_; } - - using base_t::critical_values; - void critical_values(const Eigen::Ref>& cv) { - auto& cv_ = base_t::critical_values(); - cv_ = cv; - std::sort(cv_.data(), cv_.data() + cv_.size(), std::greater()); - } - - template - auto make_sim_global_state(const _GridRangeType& grid_range) const { - return sim_global_state_t<_GenType, _ValueType, _UIntType, - _GridRangeType>(*this, grid_range); - } - - template - auto make_imprint_bound_state(const _GridRangeType& gr) const { - return imprint_bound_state_t<_GridRangeType>(n_arm_samples(), gr); - } -}; - -template -template -struct SimpleSelection::SimGlobalState - : SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType> { - struct SimState; - - using base_t = SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType>; - using typename base_t::gen_t; - using typename base_t::grid_range_t; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - - using sim_state_t = SimState; - - private: - using model_t = SimpleSelection; - const model_t& model_; - - public: - SimGlobalState(const model_t& model, const grid_range_t& grid_range) - : base_t(model.n_arm_samples(), grid_range), model_(model) {} - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -template -struct SimpleSelection::SimGlobalState< - _GenType, _ValueType, _UIntType, _GridRangeType>::SimState - : base_t::sim_state_t { - private: - using outer_t = SimGlobalState; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - const outer_t& outer_; - colvec_type - phase2_counts_; // sufficient statistic table only looking at phase 2 - // and treatment arms phase2_counts_(i,j) = phase2 suff - // stat at unique prob i at arm j. - - /* - * Creates a view of jth arm Phase II counts. - * Note that 1 <= j < n_arms. - */ - template - IMPRINT_STRONG_INLINE auto phase2_counts_arm(size_t j) const { - using vec_t = std::conditional_t, - colvec_type>; - auto& ph2_casted = const_cast(phase2_counts_); - const auto& sgs = outer_; - return Eigen::Map( - ph2_casted.data() + sgs.stride(j) - sgs.stride(1), - sgs.stride(j + 1) - sgs.stride(j)); - } - - protected: - IMPRINT_STRONG_INLINE - auto phase2_counts_arm(size_t j) const { - return phase2_counts_arm(j); - } - - IMPRINT_STRONG_INLINE - auto phase2_counts_arm(size_t j) { return phase2_counts_arm(j); } - - /* - * Generates sufficient statistic for each arm under all possible grid - * points. - * Note that this technically does extra computations than necessary, - * but benchmarking shows it makes no difference from the more optimized - * one. For simplicity and readability, we choose this version. - */ - void generate_sufficient_stats() { - // generate sufficient stats only for phase II - const auto& sgs = outer_; - const auto& model = sgs.model_; - - auto& uniform_randoms = base_t::uniform_randoms(); - const auto n_params = uniform_randoms.cols(); - - // grab the block of uniforms associated with Phase II/III for - // treatments. - const size_t phase2_size = model.n_phase2_samples(); - auto phase2_unif = - uniform_randoms.block(0, 1, phase2_size, n_params - 1); - - // sort each column of each block. - sort_cols(phase2_unif); - - const auto phase2_counts_size = sgs.stride(n_params) - sgs.stride(1); - phase2_counts_.resize(phase2_counts_size); - - for (size_t i = 1; i < n_params; ++i) { - auto phase2_counts_i = phase2_counts_arm(i); - accum_count(phase2_unif.col(i - 1), sgs.probs_unique_arm(i), - phase2_counts_i); - } - - // generate full sufficient stats - base_t::generate_sufficient_stats(); - } - - template - IMPRINT_STRONG_INLINE auto phase_III_internal( - size_t a_star, const BitsType& bits_i) const { - const auto& sgs = outer_; - const auto& model = sgs.model_; - - auto n = model.n_arm_samples(); - auto ss_astar = base_t::sufficient_stats_arm(a_star); - auto ss_0 = base_t::sufficient_stats_arm(0); - - // unpaired z-test with binomial approximation - int x_s = static_cast(ss_astar(bits_i[a_star])); - int x_0 = static_cast(ss_0(bits_i[0])); - auto z = stat::UnpairedTest::binom_stat(x_s, x_0, n); - - const auto& cv = model.critical_values(); - int i = 0; - for (; i < cv.size(); ++i) { - if (z > cv[i]) break; - } - return outer_.model_.n_models() - i; - }; - - public: - SimState(const outer_t& sgs, size_t seed) - : base_t(sgs, seed), outer_(sgs) {} - - void simulate(Eigen::Ref> rej_len) override { - // sample binomial data for the whole grid-range - base_t::generate_data(); - generate_sufficient_stats(); - - const auto& sgs = outer_; - const auto& bits = sgs.bits(); - const auto& gr_view = sgs.grid_range(); - - size_t pos = 0; - for (int i = 0; i < gr_view.n_gridpts(); ++i) { - const auto bits_i = bits.col(i); - - // Phase II - int a_star = - -1; // selected arm with highest Phase II response count. - int max_count = -1; // maximum Phase II response count. - for (int j = 1; j < bits_i.size(); ++j) { - int prev_count = max_count; - auto phase2_counts_v = phase2_counts_arm(j); - max_count = - std::max(static_cast(prev_count), - static_cast(phase2_counts_v(bits_i[j]))); - a_star = (max_count != prev_count) ? j : a_star; - } - - // Phase III - - size_t rej = 0; - - // if current gridpt is regular, do an optimized routine. - if (gr_view.is_regular(i)) { - if (gr_view.check_null(pos, a_star - 1)) { - rej = phase_III_internal(a_star, bits_i); - } - rej_len[pos] = rej; - ++pos; - continue; - } - - // else, do a slightly different routine: - // compute the phase3 test statistic first and loop through each - // tile to check if it's a false rejection. - bool rej_computed = false; - const auto n_ts = gr_view.n_tiles(i); - for (size_t n_t = 0; n_t < n_ts; ++n_t, ++pos) { - bool is_null = gr_view.check_null(pos, a_star - 1); - if (!rej_computed && is_null) { - rej = phase_III_internal(a_star, bits_i); - rej_computed = true; - } - rej_len[pos] = is_null ? rej : 0; - } - } - assert(rej_len.size() == pos); - } - - using base_t::score; -}; - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/binomial/thompson.hpp b/imprint/include/imprint_bits/model/binomial/thompson.hpp deleted file mode 100644 index 09cedc21..00000000 --- a/imprint/include/imprint_bits/model/binomial/thompson.hpp +++ /dev/null @@ -1,268 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -template -struct Thompson : FixedSingleArmSize, ModelBase { - using arm_base_t = FixedSingleArmSize; - using base_t = ModelBase; - using typename base_t::value_t; - - private: - const value_t alpha_prior_; - const value_t beta_prior_; - const value_t p_thresh_; - - public: - template - struct SimGlobalState; - - template - using sim_global_state_t = - SimGlobalState<_GenType, _ValueType, _UIntType, _GridRangeType>; - - template - using imprint_bound_state_t = - ImprintBoundStateFixedNDefault<_GridRangeType>; - - /* - * @param n_arm_samples max number of patients in each arm. - */ - Thompson(size_t n_arm_samples, value_t alpha_prior, value_t beta_prior, - value_t p_thresh, const Eigen::Ref>& cv) - : arm_base_t(2, n_arm_samples), - base_t(), - alpha_prior_(alpha_prior), - beta_prior_(beta_prior), - p_thresh_(p_thresh) { - critical_values(cv); - } - - using arm_base_t::n_arm_samples; - using arm_base_t::n_arms; - - using base_t::critical_values; - void critical_values(const Eigen::Ref>& cv) { - auto& cv_ = base_t::critical_values(); - cv_ = cv; - std::sort(cv_.data(), cv_.data() + cv_.size(), std::greater()); - } - - value_t alpha_prior() const { return alpha_prior_; } - value_t beta_prior() const { return beta_prior_; } - value_t p_threshold() const { return p_thresh_; } - - template - auto make_sim_global_state(const _GridRangeType& grid_range) const { - return sim_global_state_t<_GenType, _ValueType, _UIntType, - _GridRangeType>(*this, grid_range); - } - - template - auto make_imprint_bound_state(const _GridRangeType& gr) const { - return imprint_bound_state_t<_GridRangeType>(n_arm_samples(), gr); - } -}; - -template -template -struct Thompson::SimGlobalState - : SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType> { - struct SimState; - - using base_t = SimGlobalStateFixedNDefault<_GenType, _ValueType, _UIntType, - _GridRangeType>; - using typename base_t::gen_t; - using typename base_t::grid_range_t; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - - using sim_state_t = SimState; - - private: - using binom_t = distribution::Binomial; - using model_t = Thompson; - const model_t& model_; - - const model_t& model() const { return model_; } - - public: - SimGlobalState(const model_t& model, const grid_range_t& grid_range) - : base_t(model.n_arm_samples(), grid_range), model_(model) {} - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -template -struct Thompson::SimGlobalState<_GenType, _ValueType, _UIntType, - _GridRangeType>::SimState - : base_t::sim_state_t { - private: - using outer_t = SimGlobalState; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - using unif_t = distribution::Uniform; - const outer_t& outer_; - colvec_type g_sums_; // g_sums_[i] = sum of i iid Gamma(1,1). - std::gamma_distribution gamma_a_; // Gamma(a,1) - std::gamma_distribution gamma_b_; // Gamma(b,1) - std::gamma_distribution gamma_1_; // Gamma(1,1) - value_t end_left_ = 0; // end left gamma posterior - value_t end_right_ = 0; // end right gamma posterior - - IMPRINT_STRONG_INLINE - auto compute_posterior(uint_t n, uint_t s) { - return (g_sums_(s) + end_left_) / (g_sums_(n) + end_left_ + end_right_); - } - - IMPRINT_STRONG_INLINE - void generate_data() { - // generate uniforms - base_t::generate_data(); - - // get rng - auto& gen = base_t::rng(); - - // cache gamma values - end_left_ = gamma_a_(gen); - end_right_ = gamma_b_(gen); - g_sums_(0) = 0; - for (int i = 1; i < g_sums_.size(); ++i) { - g_sums_(i) = g_sums_(i - 1) + gamma_1_(gen); - } - } - - template - void internal(const BitsType& bits, - colvec_type& posterior_exceedance_probs) { - // compute alpha, beta posterior parameters - colvec_type n_action_arms; - colvec_type successes; - colvec_type posterior; - - n_action_arms.setZero(); - successes.setZero(); - - const auto& unifs = base_t::uniform_randoms(); - - // iterate through each patient - auto max_iter = outer_.model().n_arm_samples(); - for (uint_t i = 0; i < max_iter; ++i) { - for (uint_t j = 0; j < 2; ++j) { - posterior(j) = - compute_posterior(n_action_arms(j), successes(j)); - } - - bool action = (posterior(1) > posterior(0)); - - for (uint_t j = 0; j < 2; ++j) { - bool action_is_j = (action == j); - successes(j) += - (action_is_j && - (outer_.probs_unique_arm(j)(bits[j]) > unifs(i, j))); - n_action_arms(j) += action_is_j; - } - } - - colvec_type alpha_posterior; - colvec_type beta_posterior; - alpha_posterior.array() = successes.template cast().array() + - outer_.model().alpha_prior(); - beta_posterior.array() = - (n_action_arms - successes).template cast().array() + - outer_.model().beta_prior(); - - // compute posterior exceedance probs - auto p_thresh = outer_.model().p_threshold(); - for (uint_t i = 0; i < posterior_exceedance_probs.size(); ++i) { - posterior_exceedance_probs[i] = boost::math::ibetac( - alpha_posterior[i], beta_posterior[i], p_thresh); - } - } - - public: - SimState(const outer_t& sgs, size_t seed) - : base_t(sgs, seed), - outer_(sgs), - g_sums_(outer_.model().n_arm_samples() + 1), - gamma_a_(sgs.model().alpha_prior()), - gamma_b_(sgs.model().beta_prior()), - gamma_1_() {} - - void simulate(Eigen::Ref> rej_len) override { - // generate all possible gamma outcomes and uniforms - generate_data(); - - const auto& sgs = outer_; - const auto& bits = sgs.bits(); - const auto& gr_view = sgs.grid_range(); - - size_t pos = 0; - for (int i = 0; i < gr_view.n_gridpts(); ++i) { - const auto bits_i = bits.col(i); - - colvec_type posterior_exceedance_probs; - internal(bits_i, posterior_exceedance_probs); - - // get max posterior exceedance prob among all arms - Eigen::Index max_arm; - value_t max_pep = posterior_exceedance_probs.maxCoeff(&max_arm); - - const auto n_ts = gr_view.n_tiles(i); - for (size_t n_t = 0; n_t < n_ts; ++n_t, ++pos) { - // if selected arm is not null - if (!gr_view.check_null(pos, max_arm)) { - rej_len[pos] = 0; - continue; - } - - // find first time when max pep is > critical value - const auto& cvs = outer_.model().critical_values(); - size_t j = 0; - for (; j < cvs.size(); ++j) { - if (max_pep > cvs[j]) break; - } - - rej_len[pos] = cvs.size() - j; - } - } - - // generate sufficient stats - // this is needed for score function to work properly. - // Must come after previous loop since this function - // internally sorts the uniforms. - base_t::generate_sufficient_stats(); - - assert(rej_len.size() == pos); - } - - using base_t::score; -}; - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/exponential/common/fixed_n_log_hazard_rate.hpp b/imprint/include/imprint_bits/model/exponential/common/fixed_n_log_hazard_rate.hpp deleted file mode 100644 index 504d70b9..00000000 --- a/imprint/include/imprint_bits/model/exponential/common/fixed_n_log_hazard_rate.hpp +++ /dev/null @@ -1,284 +0,0 @@ -#pragma once -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace exponential { - -/* - * This class represents the cache for all exponential models - * with 2 arms and with eta transformation - * - * (\log(\lambda_c), \log(h)) \mapsto (\lambda_c, \lambda_c * h) - * - * By definition, exponential models are those that assume the data - * is drawn from an exponential distribution independently across arms. - * This class further assumes that each arm has the same, fixed number of - * samples. This class is intended for models that are easily expressable, or - * even fully described by, hazard rates rather than hazards themselves. - */ -template -struct SimGlobalStateFixedNLogHazardRate - : SimGlobalStateBase { - struct SimState; - - using base_t = SimGlobalStateBase; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - using gen_t = GenType; - using grid_range_t = GridRangeType; - - using sim_state_t = SimState; - - private: - size_t n_arm_samples_; - mat_type - buff_; // buff_(0,j) = lambda of control at jth gridpoint. - // buff_(1,j) = hazard rate at jth gridpoint. - - protected: - IMPRINT_STRONG_INLINE - auto lmda_control(size_t j) const { return buff_(0, j); } - - IMPRINT_STRONG_INLINE - auto hzrd_rate(size_t j) const { return buff_(1, j); } - - IMPRINT_STRONG_INLINE - constexpr size_t n_params() const { return 2; } - IMPRINT_STRONG_INLINE - constexpr size_t n_arm_samples() const { return n_arm_samples_; } - - public: - SimGlobalStateFixedNLogHazardRate(size_t n_arm_samples, - const grid_range_t& grid_range) - : n_arm_samples_(n_arm_samples), - buff_(grid_range.n_params(), grid_range.n_gridpts()) { - buff_.array() = grid_range.thetas().array().exp(); - } -}; - -/* - * This class is the corresponding simulation state - * for the fixed-n default case. - * Assuming everything in the global state, - * this class assumes some default behavior of - * - generating data given the whole grid-range - * - computing sufficient statistics - * - computing score - */ -template -struct SimGlobalStateFixedNLogHazardRate::SimState - : SimGlobalStateFixedNLogHazardRate::base_t::sim_state_t { - private: - using outer_t = SimGlobalStateFixedNLogHazardRate; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - using exp_t = distribution::Exponential; - - const outer_t& outer_; - exp_t exp_; // exponential distribution object - value_t hzrd_rate_ = - 1; // current hazard rate parameter for the exponential samples. - mat_type - exp_randoms_; // exp_randoms_(i,j) = - // Exp(1) draw for patient i in group j=0 (and - // sorted) Exp(hzrd_rate) draw for patient i in - // group j=1 (and sorted) This class assumes - // scale-invariance in that only the ratio of scales - // matter, so it suffices to save relative - // information. - - mat_type - sufficient_stats_; // sufficient statistic for each arm - // - sum of Exp(1) for group 0 (control) - // - sum of Exp(hzrd_rate_) for group 1 (treatment) - gen_t gen_; - - public: - SimState(const outer_t& outer, size_t seed) - : outer_(outer), - exp_(1.0), - exp_randoms_(outer.n_arm_samples(), outer.n_params()), - gen_(seed) {} - - IMPRINT_STRONG_INLINE - auto control() { return exp_randoms_.col(0); } - IMPRINT_STRONG_INLINE - auto control() const { return exp_randoms_.col(0); } - IMPRINT_STRONG_INLINE - auto treatment() { return exp_randoms_.col(1); } - IMPRINT_STRONG_INLINE - auto treatment() const { return exp_randoms_.col(1); } - IMPRINT_STRONG_INLINE - auto hzrd_rate() const { return hzrd_rate_; } - - /* - * Generates exponential randoms - * The control arm will be Exp(1) draws of size given in outer class. - * The treatment arm will be Exp(current hazard rate) draws of size given in - * outer class. If hazard rate was never explicitly set, it is by default - * set to 1. - */ - IMPRINT_STRONG_INLINE - void generate_data() { - exp_.sample(outer_.n_arm_samples(), outer_.n_params(), gen_, - exp_randoms_); - if (hzrd_rate_ != 1) exp_randoms_.col(1) *= (1. / hzrd_rate_); - } - - /* - * Generates the sufficient statistics, which is - * the sum of the samples for each arm. - * The control arm will be sum of Exp(1) draws. - * The treatment arm will be sum of Exp(current hazard rate) draws. - * This call is undefined if generate_exponentials was not called before. - */ - IMPRINT_STRONG_INLINE - void generate_sufficient_stats() { - sufficient_stats_ = exp_randoms_.colwise().sum(); - } - - /* - * Updates internal hazard rate to hzrd_rate_new. - * This will also update the treatment arm and its sufficient stat. - * It is undefined behavior if hzrd_rate_new <= 0. - */ - IMPRINT_STRONG_INLINE - void update_hzrd_rate(value_t hzrd_rate_new) { - auto hzrd_rate_ratio = (hzrd_rate_ / hzrd_rate_new); - treatment() *= hzrd_rate_ratio; - sufficient_stats_[1] *= hzrd_rate_ratio; - hzrd_rate_ = hzrd_rate_new; - } - - void score(size_t gridpt_idx, - Eigen::Ref> out) const override { - assert(out.size() == outer_.n_params()); - - auto lmda_c = outer_.lmda_control(gridpt_idx); - auto inv_lmda_c = 1. / lmda_c; - auto hzrd_rate_curr = outer_.hzrd_rate(gridpt_idx); - - mat_type lmda; - lmda[0] = lmda_c; - lmda[1] = hzrd_rate_curr * lmda_c; - out.array() = exp_t::score(sufficient_stats_.array() * inv_lmda_c, - outer_.n_arm_samples(), lmda.array()); - } -}; - -template -struct ImprintBoundStateFixedNLogHazardRate - : ImprintBoundStateBase { - using grid_range_t = _GridRangeType; - using base_t = ImprintBoundStateBase; - using typename base_t::interface_t; - using typename base_t::value_t; - - private: - using exp_t = distribution::Exponential; - - const mat_type max_cov_; - const size_t n_arm_samples_; - const value_t max_eta_hess_cov_; - const mat_type lmdas_; - - public: - ImprintBoundStateFixedNLogHazardRate(size_t n_arm_samples, - const grid_range_t& grid_range) - : n_arm_samples_(n_arm_samples), - max_eta_hess_cov_(3 * std::sqrt(n_arm_samples)), - lmdas_(grid_range.n_params(), grid_range.n_gridpts()) { - // temporarily const-cast just to initialize the values - auto& max_cov_nc_ = const_cast&>(max_cov_); - max_cov_nc_.setOnes(); - max_cov_nc_(0, 0) = 2; - max_cov_nc_ *= n_arm_samples; - - auto& lmdas_nc_ = const_cast&>(lmdas_); - lmdas_nc_ = grid_range.thetas(); - lmdas_nc_.row(1) += lmdas_nc_.row(0); - lmdas_nc_.array() = lmdas_nc_.array().exp(); - } - - /* - * \begin{align*} - * D\eta &= - * \begin{bmatrix} - * -\lambda_1 & 0 \\ - * -\lambda_2 & -\lambda_2 - * \end{bmatrix} - * \end{align*} - */ - void apply_eta_jacobian(size_t gridpt_idx, - const Eigen::Ref>& v, - Eigen::Ref> out) override { - assert(v.size() == n_natural_params()); - assert(out.size() == n_natural_params()); - auto lmdas = lmdas_.col(gridpt_idx); - mat_type deta; - deta(0, 0) = -lmdas[0]; - deta(0, 1) = 0; - deta.row(1).array() = -lmdas[1]; - - out = deta * v; - } - - /* - * Computes the covariance quadratic form of v given by: - * - * v^\top - * \begin{align*} - * \lambda_1^{-1} & 0 \\ - * 0 & \lambda_2^{-1} - * \end{align*} - * v - * - * where $\lambda$ is the mean parameter at grid-point - * given by gridpt_idx. - */ - value_t covar_quadform( - size_t gridpt_idx, - const Eigen::Ref>& v) override { - assert(v.size() == n_natural_params()); - auto lmdas = lmdas_.col(gridpt_idx); - return exp_t::covar_quadform(n_arm_samples_, lmdas.array(), v.array()); - } - - /* - * Computes the (convex) upper bound U(v) given by: - * - * n - * v^\top - * \begin{bmatrix} - * 2 & 1 \\ - * 1 & 1 - * \end{bmatrix} - * v - * + - * ||v||^2 (3 \sqrt{n}) - * - * where n is the number of samples per arm. - */ - value_t hessian_quadform_bound( - size_t, size_t, - const Eigen::Ref>& v) override { - assert(v.size() == n_natural_params()); - return (v.dot(max_cov_ * v)) + v.squaredNorm() * max_eta_hess_cov_; - } - - size_t n_natural_params() const override { return 2; } -}; - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/exponential/simple_log_rank.hpp b/imprint/include/imprint_bits/model/exponential/simple_log_rank.hpp deleted file mode 100644 index 26761e23..00000000 --- a/imprint/include/imprint_bits/model/exponential/simple_log_rank.hpp +++ /dev/null @@ -1,226 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace exponential { - -template -struct SimpleLogRank : FixedSingleArmSize, ModelBase { - using arm_base_t = FixedSingleArmSize; - using base_t = ModelBase; - using typename base_t::value_t; - - private: - const value_t censor_time_; - - /* - * Returns total number of parameters. - * Simply an alias for n_arms() since there is 1 parameter per arm. - */ - IMPRINT_STRONG_INLINE auto n_params() const { return n_arms(); } - - public: - template - struct SimGlobalState; - - template - using sim_global_state_t = - SimGlobalState<_GenType, _ValueType, _UIntType, _GridRangeType>; - - template - using imprint_bound_state_t = - ImprintBoundStateFixedNLogHazardRate<_GridRangeType>; - - SimpleLogRank(size_t n_arm_samples, value_t censor_time, - const Eigen::Ref>& cv) - : arm_base_t(2, n_arm_samples), base_t(), censor_time_(censor_time) { - critical_values(cv); - } - - using arm_base_t::n_arm_samples; - using arm_base_t::n_arms; - - using base_t::critical_values; - void critical_values(const Eigen::Ref>& cv) { - auto& cv_ = base_t::critical_values(); - cv_ = cv; - std::sort(cv_.begin(), cv_.end(), std::greater()); - } - - template - auto make_sim_global_state(const _GridRangeType& grid_range) const { - return sim_global_state_t<_GenType, _ValueType, _UIntType, - _GridRangeType>(*this, grid_range); - } - - template - auto make_imprint_bound_state(const _GridRangeType& gr) const { - return imprint_bound_state_t<_GridRangeType>(n_arm_samples(), gr); - } - - // Extra model-specific functions - auto censor_time() const { return censor_time_; } -}; - -template -template -struct SimpleLogRank::SimGlobalState - : SimGlobalStateFixedNLogHazardRate<_GenType, _ValueType, _UIntType, - _GridRangeType> { - struct SimState; - - using base_t = SimGlobalStateFixedNLogHazardRate<_GenType, _ValueType, - _UIntType, _GridRangeType>; - using typename base_t::gen_t; - using typename base_t::grid_range_t; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - - using sim_state_t = SimState; - - private: - using model_t = SimpleLogRank; - const model_t& model_; - const grid_range_t& grid_range_; - - public: - SimGlobalState(const model_t& model, const grid_range_t& grid_range) - : base_t(model.n_arm_samples(), grid_range), - model_(model), - grid_range_(grid_range) {} - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -template -struct SimpleLogRank::SimGlobalState<_GenType, _ValueType, _UIntType, - _GridRangeType>::SimState - : SimGlobalState::base_t::sim_state_t { - private: - using outer_t = SimGlobalState; - - public: - using base_t = typename outer_t::base_t::sim_state_t; - using typename base_t::interface_t; - - private: - const outer_t& outer_; - stat::LogRankTest - lrt_; // log-rank test fitter. - // It is initialized with control ~ Exp(1), - // treatment ~ Exp(hzrd_rate) since the test - // only depends on hzrd_rate. - // It views control, treatment vectors in base class. - - IMPRINT_STRONG_INLINE - size_t rej_len_internal(size_t i) { - // If it's the first grid-point, do logrank update. - bool do_logrank_update = (i == 0); - - auto hzrd_rate_prev = - base_t::hzrd_rate(); // previously saved hazard rate - auto hzrd_rate_curr = outer_.hzrd_rate(i); // current hazard rate - - // Since log-rank test only depends on hazard-rate, - // we can reuse the same pre-computed quantities for all control - // lambdas. We only update internal quantities if we see a new hazard - // rate. Performance is best if the gridpoints are grouped by the same - // hazard rate so that the internals are not updated often. Note that - // lrt_ still internally points to the same control and treatment - // storages. This is deliberate - we want lrt_ to reference these - // updated storages. - if (hzrd_rate_curr != hzrd_rate_prev) { - base_t::update_hzrd_rate(hzrd_rate_curr); - do_logrank_update = true; - } - - // compute log-rank information only if needed - if (do_logrank_update) { - lrt_.run(); - } - - // Compute the log-rank statistic given the treatment lambda value. - // Since lrt_ references Exp(1), Exp(hzrd_rate) vectors, - // the censor time must be dilated to be on the same scale. - auto lambda_control = outer_.lmda_control(i); - auto censor_dilated_curr = outer_.model_.censor_time_ * lambda_control; - auto z = lrt_.stat(censor_dilated_curr, false); - - const auto& cvs = outer_.model_.critical_values(); - int cv_i = 0; - for (; cv_i < cvs.size(); ++cv_i) { - if (z > cvs[cv_i]) { - break; - } - } - return cvs.size() - cv_i; - } - - public: - SimState(const outer_t& outer, size_t seed) - : base_t(outer, seed), - outer_(outer), - lrt_(base_t::control(), base_t::treatment()) {} - - void simulate(Eigen::Ref> rej_len) override { - base_t::generate_data(); - base_t::generate_sufficient_stats(); - - // sort the columns to optimize log-rank procedure. - sort_cols(base_t::control()); - sort_cols(base_t::treatment()); - - const auto& gr_view = outer_.grid_range_; - - size_t pos = 0; - for (size_t i = 0; i < gr_view.n_gridpts(); ++i) { - if (gr_view.is_regular(i)) { - rej_len[pos] = (likely(gr_view.check_null(pos, 0))) - ? rej_len_internal(i) - : 0; - ++pos; - continue; - } - - bool internal_called = false; - size_t rej = 0; - for (size_t t = 0; t < gr_view.n_tiles(i); ++t, ++pos) { - bool is_null = gr_view.check_null(pos, 0); - if (!internal_called && is_null) { - rej = rej_len_internal(i); - internal_called = true; - } - rej_len[pos] = is_null ? rej : 0; - } - } - - assert(rej_len.size() == pos); - } - - using base_t::score; -}; - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/fixed_single_arm_size.hpp b/imprint/include/imprint_bits/model/fixed_single_arm_size.hpp deleted file mode 100644 index b49a0e93..00000000 --- a/imprint/include/imprint_bits/model/fixed_single_arm_size.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace model { - -/* - * Base class with each arm having a fixed, common arm size. - */ -struct FixedSingleArmSize { - private: - size_t n_arms_; - size_t n_arm_samples_; - - public: - constexpr size_t n_arms() const { return n_arms_; } - constexpr size_t n_arm_samples() const { return n_arm_samples_; } - - constexpr FixedSingleArmSize(size_t n_arms, size_t n_arm_samples) - : n_arms_(n_arms), n_arm_samples_(n_arm_samples) {} -}; - -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/model/normal/simple.hpp b/imprint/include/imprint_bits/model/normal/simple.hpp deleted file mode 100644 index caea4531..00000000 --- a/imprint/include/imprint_bits/model/normal/simple.hpp +++ /dev/null @@ -1,192 +0,0 @@ -#pragma once -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace normal { - -template -struct Simple : FixedSingleArmSize, ModelBase { - using arm_t = FixedSingleArmSize; - using base_t = ModelBase; - using typename base_t::value_t; - - private: - IMPRINT_STRONG_INLINE - constexpr auto n_params() const { return 1; } - - public: - template - struct SimGlobalState; - - template - struct ImprintBoundState; - - template - using sim_global_state_t = - SimGlobalState<_GenType, _ValueType, _UIntType, _GridRangeType>; - - template - using imprint_bound_state_t = ImprintBoundState<_GridRangeType>; - - Simple(const Eigen::Ref>& cvs) - : arm_t(1, 1), base_t(cvs) {} - - template - auto make_sim_global_state(const _GridRangeType& gr) const { - return sim_global_state_t<_GenType, _ValueType, _UIntType, - _GridRangeType>(*this, gr); - }; - - // grid range is not used, but we keep it as a parameter for consistency. - template - auto make_imprint_bound_state(const _GridRangeType&) const { - return imprint_bound_state_t<_GridRangeType>(); - }; -}; - -template -template -struct Simple::SimGlobalState - : SimGlobalStateBase<_ValueType, _UIntType> { - struct SimState; - - using base_t = SimGlobalStateBase<_ValueType, _UIntType>; - using typename base_t::interface_t; - using typename base_t::uint_t; - using typename base_t::value_t; - using gen_t = _GenType; - using grid_range_t = _GridRangeType; - - using sim_state_t = SimState; - - private: - using model_t = Simple; - - const model_t& model_; - const grid_range_t& grid_range_; - - // Extra user-defined members only accessed by SimState - const auto& model() const { return model_; } - const auto& grid_range() const { return grid_range_; } - - public: - SimGlobalState(const model_t& model, const grid_range_t& grid_range) - : model_(model), grid_range_(grid_range) { - // nothing to further compute about grid_range other than - // the grid-points themselves - } - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -template -struct Simple::SimGlobalState<_GenType, _ValueType, _UIntType, - _GridRangeType>::SimState - : SimGlobalState::interface_t::sim_state_t { - private: - using outer_t = SimGlobalState; - - public: - using base_t = typename outer_t::interface_t::sim_state_t; - using interface_t = typename base_t::interface_t; - - private: - using normal_t = distribution::Normal; - - const outer_t& outer_; // global state - normal_t normal_; // standard normal object - value_t std_normal_ = - std::numeric_limits::infinity(); // standard normal r.v. - gen_t gen_; - - public: - SimState(const outer_t& outer, size_t seed) - : outer_(outer), normal_(0., 1.), gen_(seed) {} - - void simulate(Eigen::Ref> rejection_length) override { - // grab global state members - const auto& model = outer_.model(); - const auto& gr = outer_.grid_range(); - - // alias - const auto& cv = model.critical_values(); - - // generate a new standard normal - std_normal_ = normal_.sample(gen_); - - size_t pos = 0; - for (int i = 0; i < gr.n_gridpts(); ++i) { - auto mu_i = gr.thetas()(0, i); - - // get number of models rejected - int j = 0; - for (; j < cv.size(); ++j) { - if ((std_normal_ + mu_i) > cv[j]) { - break; - } - } - uint_t rej_len = cv.size() - j; - - for (int j = 0; j < gr.n_tiles(i); ++j, ++pos) { - rejection_length[pos] = gr.check_null(pos, 0) ? rej_len : 0; - } - } - - assert(rejection_length.size() == pos); - }; - - // Score is simply centered Normal. - // Since we internally only store the standard normal, - // we simply return that and first argument is ignored. - // Second argument is ignored since we assume only 1 arm. - void score(size_t, Eigen::Ref> out) const override { - assert(out.size() == outer_.model_.n_params()); - out[0] = std_normal_; - } -}; - -template -template -struct Simple::ImprintBoundState - : ImprintBoundStateBase { - using grid_range_t = _GridRangeType; - using base_t = ImprintBoundStateBase; - using typename base_t::interface_t; - using typename base_t::value_t; - - void apply_eta_jacobian(size_t, - const Eigen::Ref>& v, - Eigen::Ref> out) override { - out = v; - } - - value_t covar_quadform( - size_t, const Eigen::Ref>& v) override { - return v.squaredNorm(); - } - - value_t hessian_quadform_bound( - size_t, size_t, - const Eigen::Ref>& v) override { - return v.squaredNorm(); - } - - size_t n_natural_params() const override { return 1; } -}; - -} // namespace normal -} // namespace model -} // namespace imprint diff --git a/imprint/include/imprint_bits/stat/log_rank_test.hpp b/imprint/include/imprint_bits/stat/log_rank_test.hpp deleted file mode 100644 index 9af153fe..00000000 --- a/imprint/include/imprint_bits/stat/log_rank_test.hpp +++ /dev/null @@ -1,176 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { -namespace stat { - -template -struct LogRankTest { - using value_t = ValueType; - using uint_t = UIntType; - - private: - Eigen::Map> control_; // sorted control - Eigen::Map> treatment_; // sorted treatment - colvec_type logrank_accum_; - // logrank_accum_[i] = - // log-rank test statistic - // considering only the first i events - // (either in control or treatment). - - public: - /* - * Constructs the object by storing references - * to the control and treatment vector outcomes. - * We assume control and treatment are sorted in ascending order. - */ - template - LogRankTest(const ControlType& control, const TreatmentType& treatment) - : control_(control.data(), control.size()), - treatment_(treatment.data(), treatment.size()), - logrank_accum_(control.size() + treatment.size() + 1) {} - - LogRankTest(const LogRankTest& other) - : control_(other.control_.data(), other.control_.size()), - treatment_(other.treatment_.data(), other.treatment_.size()), - logrank_accum_(other.logrank_accum_) {} - - LogRankTest(LogRankTest&& other) - : control_(other.control_.data(), other.control_.size()), - treatment_(other.treatment_.data(), other.treatment_.size()), - logrank_accum_(std::move(other.logrank_accum_)) {} - - LogRankTest& operator=(const LogRankTest& other) { - new (&control_) Eigen::Map>( - other.control_.data(), other.control_.size()); - new (&treatment_) Eigen::Map>( - other.treatment_.data(), other.treatment_.size()); - logrank_accum_ = other.logrank_accum_; - } - - LogRankTest& operator=(LogRankTest&& other) { - new (&control_) Eigen::Map>( - other.control_.data(), other.control_.size()); - new (&treatment_) Eigen::Map>( - other.treatment_.data(), other.treatment_.size()); - logrank_accum_ = std::move(other.logrank_accum_); - } - - /* - * Runs the log-rank test and stores the cumulative log-rank test - * statistics. - */ - void run() { - value_t logrank_cum_sum = 0.0; - value_t v_cum_sum = 0.0; - logrank_accum_[0] = 0.0; - - mat_type N_j; - N_j[0] = control_.size(); - N_j[1] = treatment_.size(); - - mat_type O_j; - - int cr_idx = 0, tr_idx = 0, - cs_idx = 0; // control, treatment, and cum_sum index - - auto count_outcomes = [](const auto& v, auto& idx, auto& counter) { - auto idx_old = idx; - auto v_old = v[idx_old]; - for (++idx; (idx < v.size()) && (v[idx] == v_old); ++idx) - ; - counter += idx - idx_old; - }; - - while (cr_idx < control_.size() && tr_idx < treatment_.size()) { - // Reset current number of outcomes. - O_j.array() = 0; - - // save these values since the next if-blocks - // may advance the indices. - auto c_val = control_[cr_idx]; - auto t_val = treatment_[tr_idx]; - - // Computes the number of outcomes for treatment arm - // and moves forward the indexer - // if an outcome came first or at the same time as control arm. - if (t_val <= c_val) { - count_outcomes(treatment_, tr_idx, O_j[1]); - } - - // Computes the number of outcomes for control arm - // and moves forward the indexer - // if an outcome came first or at the same time as treatment arm. - if (t_val >= c_val) { - count_outcomes(control_, cr_idx, O_j[0]); - } - - // Compute accumulations - // Note that this logic only well-defined if N > 1. - // We do not have to check for if N > 1 since if - // * N == 0: no one "at risk" - // * N == 1: one "at risk" so one arm has no one "at risk" - // In both cases, we would already be outside the loop from previous - // iteration. - uint_t N = N_j.sum(); - uint_t O = O_j.sum(); - value_t O_div_N = O / static_cast(N); - value_t E_0j = N_j[0] * O_div_N; - logrank_cum_sum += (O_j[0] - E_0j); - v_cum_sum += - E_0j * (1 - O_div_N) * (static_cast(N_j[1]) / (N - 1)); - - // Note that this may leave some values of logrank_accum_ - // uninitialized if there are repeat outcomes at a distinct time. We - // just need to be careful when get the stat given a censor time. - logrank_accum_[cs_idx + O] = - (v_cum_sum <= 0.0) - ? std::copysign(1., logrank_cum_sum) * - std::numeric_limits::infinity() - : logrank_cum_sum / std::sqrt(v_cum_sum); - - // Update number of subjects "at risk" - N_j.array() -= O_j.array(); - - // Increment accumulation indexer - cs_idx += O; - } - - // Optimization: the rest of the log-rank stats - // are the same as the previous value. - // This is because O_{ij} - E_{ij} = 0 - // for the distinct times j starting now, - // so nothing accumulates anymore. - size_t tot = logrank_accum_.size(); - logrank_accum_.tail(tot - cs_idx).array() = logrank_accum_[cs_idx]; - } - - /* - * Returns the log-rank statistic given censor time as censor_time. - * If an observation is exactly at censor_time, - * it is counted towards the log-rank statistic. - * See https://www.ncbi.nlm.nih.gov/pmc/articles/PMC403858/, - * which uses this convention. - */ - IMPRINT_STRONG_INLINE - value_t stat(value_t censor_time, bool control_based) const { - // computes the number of observations in v <= censor_time - auto n_observed = [&](const auto& v) { - // find first time v outcome > censor_time - auto it = - std::upper_bound(v.data(), v.data() + v.size(), censor_time); - return (it - v.data()); - }; - - auto n_c_observed = n_observed(control_); - auto n_t_observed = n_observed(treatment_); - - size_t idx = n_c_observed + n_t_observed; - auto lr_stat = logrank_accum_[idx]; - return control_based ? lr_stat : -lr_stat; - } -}; - -} // namespace stat -} // namespace imprint diff --git a/imprint/include/imprint_bits/stat/unpaired_test.hpp b/imprint/include/imprint_bits/stat/unpaired_test.hpp deleted file mode 100644 index 4b2e7b46..00000000 --- a/imprint/include/imprint_bits/stat/unpaired_test.hpp +++ /dev/null @@ -1,56 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace stat { - -template -struct UnpairedTest { - using value_t = ValueType; - - /* - * Unpaired test for binomial data from 2 groups with - * binomial statistics x1, x2. This assumes that both groups - * have the same size n, which allows for a more optimized computation. - * It computes: - * - * \frac{x_1 - x_2}{\sqrt{(x_1(n-x_1) + x_2(n-x_2)) / n}} - * - * If the variance is non-positive, it is set to $\pm \infty$ depending - * on the sign of $x_1-x_2$. - * Note that x1, x2 must be signed integer types. - */ - template - IMPRINT_STRONG_INLINE static value_t binom_stat(IntType x1, IntType x2, - NType n) { - IntType dx = x1 - x2; - auto v = (x1 * (n - x1) + x2 * (n - x2)); - return (v <= 0) ? std::copysign(1, dx) * - std::numeric_limits::infinity() - : (dx * std::sqrt(n)) / std::sqrt(v); - } - - /* - * Unpaired z-test for a general two group comparison. - * This test assumes z1, z2 are the normal values from the two groups - * with variance v1, v2. It computes - * - * \frac{z_1-z_2}{\sqrt{v_1+v_2}} - * - * If the variance is non-positive, it is set to $\pm \infty$ depending - * on the sign of $z_1-z_2$. - */ - IMPRINT_STRONG_INLINE - static value_t z_stat(value_t z1, value_t z2, value_t v1, value_t v2) { - auto v = v1 + v2; - auto dz = (z1 - z2); - return (v <= 0) ? std::copysign(1.0, dz) * - std::numeric_limits::infinity() - : dz / std::sqrt(v); - } -}; - -} // namespace stat -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/algorithm.hpp b/imprint/include/imprint_bits/util/algorithm.hpp deleted file mode 100644 index 290084b8..00000000 --- a/imprint/include/imprint_bits/util/algorithm.hpp +++ /dev/null @@ -1,72 +0,0 @@ -#pragma once -#include - -namespace imprint { - -/* - * Sort columns of a matrix m. - * Assumed that m is column-wise matrix. - */ -template -inline void sort_cols(MatType&& m) { - auto r = m.rows(); - for (int i = 0; i < m.cols(); ++i) { - auto m_i = m.col(i); - std::sort(m_i.data(), m_i.data() + r); - } -} - -/* - * Sort columns of a matrix m. - * Assumed that m is column-wise matrix. - * Uses a custom comparator. - */ -template -inline void sort_cols(MatType&& m, Comp comp) { - auto r = m.rows(); - for (int i = 0; i < m.cols(); ++i) { - auto m_i = m.col(i); - std::sort(m_i.data(), m_i.data() + r, comp); - } -} - -/* - * Stores counts of x < elements of p into counts. - * - * @param x matrix with each column sorted. - * @param p vector of sorted thresholds to check against each column of - * x. - * @param counts matrix of size (p.size(), x.cols()) where (i,j) entry is - * the number of values of x[,j] < p[i]. - */ -template -inline void accum_count(const XType& x, const PType& p, DestType&& counts) { - for (int i = 0; i < x.cols(); ++i) { - auto x_i = x.col(i); - auto counts_i = counts.col(i); - - auto begin = x_i.data(); - auto end = begin + x_i.size(); - size_t prev_count = 0; - int j = 0; - while (j < p.size()) { - auto it = std::lower_bound(begin, end, p[j]); - if (it == end) break; - auto n_x_less_than_pj = std::distance(begin, it) + prev_count; - counts_i[j] = n_x_less_than_pj; - ++j; - for (; (j < p.size()) && (p[j] < *it); ++j) { - counts_i[j] = n_x_less_than_pj; - } - begin = it; - prev_count = n_x_less_than_pj; - } - - // fill the rest of the counts - if (j < p.size()) { - counts_i.tail(p.size() - j).array() = x_i.size(); - } - } -} - -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/d_ary_int.hpp b/imprint/include/imprint_bits/util/d_ary_int.hpp deleted file mode 100644 index beb50cf8..00000000 --- a/imprint/include/imprint_bits/util/d_ary_int.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { - -struct dAryInt { - // @param d base d - // @param k number of bits - dAryInt(size_t d, size_t k) : d_(d), bits_(k), n_unique_(ipow(d_, k)) { - bits_.setZero(); - } - - dAryInt& operator++() { - for (int i = bits_.size() - 1; i >= 0; --i) { - auto& b = bits_(i); - ++b; - if (b < d_) break; - b = 0; - } - return *this; - } - - void setZero() { bits_.setZero(); } - - const auto& operator()() const { return bits_; } - - /* - * Returns the number of unique values that the d-ary integer - * can represent. - */ - auto n_unique() const { return n_unique_; } - - private: - size_t d_; - Eigen::Matrix bits_; - size_t n_unique_; -}; - -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/exceptions.hpp b/imprint/include/imprint_bits/util/exceptions.hpp deleted file mode 100644 index 79bca64d..00000000 --- a/imprint/include/imprint_bits/util/exceptions.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { - -struct imprint_error : std::exception {}; - -struct min_lmda_reached_error : imprint_error { - min_lmda_reached_error() - : msg_("Min lmda reached. Try a grid of lambda with lower values.") {} - - const char* what() const noexcept override { return msg_.data(); } - - private: - std::string msg_; -}; - -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/legendre.hpp b/imprint/include/imprint_bits/util/legendre.hpp deleted file mode 100644 index 884d5490..00000000 --- a/imprint/include/imprint_bits/util/legendre.hpp +++ /dev/null @@ -1,216 +0,0 @@ -/* -From https://github.com/haranjackson/LegendreGauss -Under MIT license -*/ -#include -#include -#include -namespace imprint { - -typedef Eigen::MatrixXd Mat; -typedef Eigen::VectorXd Vec; -typedef Eigen::ArrayXd Arr; - -inline Arr legval( - Vec x, - Vec c) { /* - Evaluate a Legendre series at points x. - If `c` is of length `n + 1`, this function returns the value: - - p(x) = c_0 * L_0(x) + c_1 * L_1(x) + ... + c_n * L_n(x) - - `p(x)` has the same shape as `x`. - Trailing zeros in the coefficients will be used in the evaluation, - so they should be avoided if efficiency is a concern. - - Input - ---------- - x : array - - c : array - Array of coefficients ordered so that the coefficients for - terms of degree n are contained in c[n]. - - Output - ------- - values : array - - Notes - ----- - The evaluation uses Clenshaw recursion, aka synthetic division. - */ - - int nc = c.size(); - int n = x.size(); - Arr ret(n); - ret.setZero(n); - - if (nc == 1) { - ret += c(0); - } else if (nc == 2) { - ret = c(0) + c(1) * x.array(); - } else { - int nd = nc - 1; - double c0 = c(nc - 3) - (c(nc - 1) * (nd - 1)) / nd; - Arr c10 = c(nc - 2) + (c(nc - 1) * x.array() * (2 * nd - 1)) / nd; - - if (nc == 3) { - ret = c0 + c10 * x.array(); - } else { - nd -= 1; - Arr c00 = c(nc - 4) - (c10 * (nd - 1)) / nd; - Arr c11 = c0 + (c10 * x.array() * (2 * nd - 1)) / nd; - - for (int i = 5; i < nc + 1; i++) { - Arr tmp = c00; - nd -= 1; - c00 = c(nc - i) - (c11 * (nd - 1)) / nd; - c11 = tmp + (c11 * x.array() * (2 * nd - 1)) / nd; - } - ret = c00 + c11 * x.array(); - } - } - return ret; -} - -inline Mat legcompanion( - Vec c) { /* - Return the scaled companion matrix of c. - The basis polynomials are scaled so that the companion matrix is - symmetric when `c` is an Legendre basis polynomial. This provides - better eigenvalue estimates than the unscaled case and for basis - polynomials the eigenvalues are guaranteed to be real if - `numpy.linalg.eigvalsh` is used to obtain them. - - Input - ---------- - c : array - 1-D array of Legendre series coefficients ordered from low to - high degree. - - Output - ------- - mat : array - Scaled companion matrix of dimensions (deg, deg). - */ - - int n = c.size() - 1; - Mat mat(n, n); - mat.setZero(n, n); - Vec scl(n); - for (int i = 0; i < n; i++) { - scl(i) = 1. / sqrt(2 * i + 1); - } - for (int i = 0; i < n - 1; i++) { - double tmp = (i + 1) * scl(i) * scl(i + 1); - mat(1 + i * (n + 1)) = tmp; - mat(n + i * (n + 1)) = tmp; - } - return mat; -} - -inline Vec legder( - Vec c) { /* - Differentiate a Legendre series. - Returns the Legendre series coefficients `c` differentiated once. - he argument `c` is an array of coefficients from low to high - degree, e.g. [1,2,3] represents the series ``1*L_0 + 2*L_1 + - 3*L_2``. - - Input - ---------- - c : array - Array of Legendre series coefficients. - - Output - ------- - der : array - Legendre series of the derivative. - - Notes - ----- - In general, the result of differentiating a Legendre series does - not resemble the same operation on a power series. Thus the result - of this function may be "unintuitive," albeit correct. - */ - - int n = c.size() - 1; - Vec der(n); - der.setZero(n); - for (int j = n; j > 2; j--) { - der(j - 1) = (2 * j - 1) * c(j); - c(j - 2) += c(j); - } - if (n > 1) { - der(1) = 3 * c(2); - } - der(0) = c(1); - return der; -} - -inline Mat leggauss( - int deg) { /* - Computes the nodes and weights for Gauss-Legendre - quadrature. These nodes and weights will correctly integrate - polynomials of degree < 2*deg over the interval [-1, 1] with - the weight function w(x) = 1. - - Input - ---------- - deg : int - Number of sample points and weights (must be >= 1) - - Output - ------- - x : array - 1D array containing the nodes - w : array - 1D array containing the weights - - Notes - ----- - The results have only been tested up to degree 100, higher - degrees may be problematic. The weights are determined by - using the fact that w_k = c / (L'_n(x_k) * L_{n-1}(x_k)) - where c is a constant independent of k and x_k is the kth - root of L_n, and then scaling the results to get the right - value when integrating 1. - */ - - // First approximation of roots. We use the fact that the companion - // matrix is symmetric in this case in order to obtain better zeros. - Vec c(deg + 1); - c.setZero(deg + 1); - c(deg) = 1; - - Mat m = legcompanion(c); - Eigen::SelfAdjointEigenSolver eigs(m); - Vec x = eigs.eigenvalues(); - - // Improve roots by one application of Newton. - Arr dy = legval(x, c); - Arr df = legval(x, legder(c)); - x -= (dy / df).matrix(); - - // Compute the weights. Factor is scaled to avoid numerical overflow. - Arr fm = legval(x, c.tail(deg)); - fm /= fm.matrix().lpNorm(); - df /= df.matrix().lpNorm(); - Vec w(deg); - w = (1. / (fm * df)).matrix(); - - // Symmetrize - w = (w + w.reverse()) / 2; - x = (x - x.reverse()) / 2; - - // Scale w to get the right value - w *= 2. / w.sum(); - - Mat ret(2, deg); - for (int i = 0; i < deg; i++) { - ret(0, i) = x(i); - ret(1, i) = w(i); - } - return ret; -} -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/macros.hpp b/imprint/include/imprint_bits/util/macros.hpp deleted file mode 100644 index 8bbc4ac7..00000000 --- a/imprint/include/imprint_bits/util/macros.hpp +++ /dev/null @@ -1,48 +0,0 @@ -#pragma once -#include -#include - -/* - * likely/unlikely forces branch prediction to predict true/false. - * This forcing behavior is only enabled if compiler is GCC or Clang. - * Otherwise, they are simply identity macros. - * - * This is the Linux kernel way: - * https://stackoverflow.com/questions/20916472/why-use-condition-instead-of-condition/20916491#20916491 - */ -#ifndef likely -#if defined(__GNUC__) || defined(__clang__) -#define likely(x) __builtin_expect(!!(x), 1) -#define unlikely(x) __builtin_expect(!!(x), 0) -#else -#define likely(x) (x) -#define unlikely(x) (x) -#endif -#endif - -/* - * IMPRINT_STRONG_INLINE is a stronger version of the inline, - * using __forceinline on MSVC, always_inline on GCC/clang, and otherwise just - * use inline. - */ -#ifndef IMPRINT_STRONG_INLINE -#if defined(_MSC_VER) -#define IMPRINT_STRONG_INLINE __forceinline -#elif defined(__GNUC__) || defined(__clang__) -#define IMPRINT_STRONG_INLINE __attribute__((always_inline)) inline -#else -#define IMPRINT_STRONG_INLINE inline -#endif -#endif - -#ifndef PRINT -#define PRINT(t) \ - (std::cout << std::setprecision(9) << __LINE__ << ": " << #t << '\n' \ - << t << "\n" \ - << std::endl) -#endif - -#ifndef ASSERT_GOOD -#define ASSERT_GOOD(t) \ - assert(!t.array().isNaN().any() && !t.array().isInf().any()) -#endif diff --git a/imprint/include/imprint_bits/util/math.hpp b/imprint/include/imprint_bits/util/math.hpp deleted file mode 100644 index 8e67e1d8..00000000 --- a/imprint/include/imprint_bits/util/math.hpp +++ /dev/null @@ -1,163 +0,0 @@ -#pragma once -#define _USE_MATH_DEFINES -#include -#include -#include -#include -#include - -namespace imprint { -namespace details { - -template -constexpr inline ValueType ipow_pos(ValueType base, IntType exp) { - if (exp == 1) return base; - if (exp % 2 == 0) { - auto t = ipow_pos(base, exp / 2); - return t * t; - } else { - return ipow_pos(base, exp - 1) * base; - } -} - -} // namespace details - -template -constexpr inline auto sigmoid(T x) { - using Eigen::exp; - using std::exp; - return 1. / (1. + exp(-x)); -} - -template -constexpr inline auto logit(T p) { - using Eigen::log; - using std::log; - return log(p / (1 - p)); -} - -template -inline Eigen::VectorXd invgamma_pdf(const T& x, double alpha, double beta) { - // https://github.com/scipy/scipy/blob/b5d8bab88af61d61de09641243848df63380a67f/scipy/stats/_continuous_distns.py#L3666 - const auto xd = x.template cast(); - auto lbeta = std::log(beta); - auto logpdf = ((-1 - alpha) * xd.array().log()) - - (lgamma(alpha) - lbeta * alpha) - (beta / xd.array()); - return logpdf.exp(); -} - -template -constexpr inline auto ipow(ValueType base, IntType exp) { - if (exp == 0) return ValueType(1); - if (exp < 0) return ValueType(1) / ipow(base, -exp); - return details::ipow_pos(base, exp); -}; - -// Compile-time log2 of integer. -// Only meaningful when x is truly a power of 2. -template -struct Log2 { - static constexpr size_t value = Log2::value + 1; -}; - -template <> -struct Log2<1> { - static constexpr size_t value = 0; -}; - -// =================================================================== -// Stats Routines -// =================================================================== - -template -IMPRINT_STRONG_INLINE auto ibeta_inv(T1 a, T2 b, T3 p) { - using out_t = std::common_type_t; - if (a == 0 && b == 0) { - throw std::runtime_error("Both a, b cannot be 0."); - } - if (a == 0) return out_t(0); - if (b == 0) return out_t(1); - return boost::math::ibeta_inv(a, b, p); -} - -template -auto normal_cdf(const T& x) { - // TODO constexpr - auto x2 = (x.array() / std::sqrt(2)); - auto x3 = x2.array().erf(); - return 0.5 * (1 + x3.array()); -} - -// Inverse Normal CDF (Acklam's algorithm) -// https://stackedboxes.org/2017/05/01/acklams-normal-quantile-function/ -template -constexpr inline auto qnorm(ValueType p) { - constexpr double a1 = -39.69683028665376; - constexpr double a2 = 220.9460984245205; - constexpr double a3 = -275.9285104469687; - constexpr double a4 = 138.3577518672690; - constexpr double a5 = -30.66479806614716; - constexpr double a6 = 2.506628277459239; - - constexpr double b1 = -54.47609879822406; - constexpr double b2 = 161.5858368580409; - constexpr double b3 = -155.6989798598866; - constexpr double b4 = 66.80131188771972; - constexpr double b5 = -13.28068155288572; - - constexpr double c1 = -0.007784894002430293; - constexpr double c2 = -0.3223964580411365; - constexpr double c3 = -2.400758277161838; - constexpr double c4 = -2.549732539343734; - constexpr double c5 = 4.374664141464968; - constexpr double c6 = 2.938163982698783; - - constexpr double d1 = 0.007784695709041462; - constexpr double d2 = 0.3224671290700398; - constexpr double d3 = 2.445134137142996; - constexpr double d4 = 3.754408661907416; - - constexpr double sqrt_2 = 1.4142135623730951455; - constexpr double sqrt_2_pi = 2.5066282746310002416; - - // Define break-points. - constexpr double p_low = 0.02425; - constexpr double p_high = 1 - p_low; - long double q = 0, r = 0, e = 0, u = 0; - long double x = 0.0; - - // Rational approximation for lower region. - if (0 < p && p < p_low) { - q = std::sqrt(-2 * std::log(p)); - x = (((((c1 * q + c2) * q + c3) * q + c4) * q + c5) * q + c6) / - ((((d1 * q + d2) * q + d3) * q + d4) * q + 1); - } - - // Rational approximation for central region. - if (p_low <= p && p <= p_high) { - q = p - 0.5; - r = q * q; - x = (((((a1 * r + a2) * r + a3) * r + a4) * r + a5) * r + a6) * q / - (((((b1 * r + b2) * r + b3) * r + b4) * r + b5) * r + 1); - } - - // Rational approximation for upper region. - if (p_high < p && p < 1) { - q = std::sqrt(-2 * std::log(1 - p)); - x = -(((((c1 * q + c2) * q + c3) * q + c4) * q + c5) * q + c6) / - ((((d1 * q + d2) * q + d3) * q + d4) * q + 1); - } - - // Pseudo-code algorithm for refinement - if ((0 < p) && (p < 1)) { - e = 0.5 * std::erfc(-x / sqrt_2) - p; - u = e * sqrt_2_pi * std::exp(x * x / 2); - x -= u / (1 + x * u / 2); - } - - return x; -} - -} // namespace imprint - -#undef _USE_MATH_DEFINES diff --git a/imprint/include/imprint_bits/util/progress_bar.hpp b/imprint/include/imprint_bits/util/progress_bar.hpp deleted file mode 100644 index d49aa749..00000000 --- a/imprint/include/imprint_bits/util/progress_bar.hpp +++ /dev/null @@ -1,241 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include - -namespace imprint { - -struct ProgressBar { - ProgressBar(ProgressBar const&) = delete; - ProgressBar& operator=(ProgressBar const&) = delete; - ProgressBar(ProgressBar&&) = delete; - ProgressBar& operator=(ProgressBar&&) = delete; - - ProgressBar() : ProgressBar(0) {} - - ProgressBar(int n, int bar_length = 50, bool show_time = true) - : n_total_(n), - bar_length_(bar_length), - incr_size_(100. / bar_length_), - show_time_(show_time) {} - - void reset() { - prev_perc_ = 0; - n_finished_ = 0; - n_iter_ = 0; - bar_created_ = false; - } - - void set_n_total(int n) { - check_n_(n); - n_total_ = n; - } - - void set_finish_char(char c) { finish_char_ = c; } - void set_remain_char(char c) { remain_char_ = c; } - void set_begin_char(char c) { begin_char_ = c; } - void set_end_char(char c) { end_char_ = c; } - void set_show_time(bool b) { show_time_ = b; } - - template - void initialize(OStreamType& os) { - // create the bar if not created yet - if (!bar_created_) { - os << begin_char_; - for (int i = 0; i < bar_length_; ++i) { - os << remain_char_; - } - os << end_char_ << " 0% "; - if (show_time_) os << "[00:00:00]"; - os.flush(); - bar_created_ = true; - tp_ = clck_t::now(); - } - } - - template - void finish(OStreamType& os) { - n_iter_ = n_total_ - 1; - update(os); - } - - template - void update(OStreamType& os, size_t amt = 1) { - // check that n is positive - check_n_(n_total_); - - auto new_tp = clck_t::now(); - - // create bar if wasn't created already - if (!bar_created_) initialize(os); - - // increase number of iterations - n_iter_ += amt; - - double perc = - (n_iter_ == n_total_) ? 100. : (n_iter_ * 100.) / n_total_; - int new_n_finished = perc / incr_size_; - int extra_n_finished = new_n_finished - n_finished_; - - // delete space + [ + ] + the time characters - if (show_time_) os << "\b\b\b\b\b\b\b\b\b\b\b"; - - // delete the space and percentage sign - os << "\b\b"; - - // delete the actual percentage number - if (prev_perc_ < 10) - os << "\b"; - else if (prev_perc_ >= 10 && prev_perc_ < 100) - os << "\b\b"; - else if (prev_perc_ == 100) - os << "\b\b\b"; - - // Update the bar if necessary - if (extra_n_finished > 0) { - // delete end_char_ - os << '\b'; - - // delete some remaining chars, add extra finish chars, add back - // remaining chars - for (int j = 0; j < bar_length_ - n_finished_; ++j) os << '\b'; - for (int j = 0; j < extra_n_finished; ++j) os << finish_char_; - for (int j = 0; j < bar_length_ - new_n_finished; ++j) - os << remain_char_; - - // add back end_char_ - os << end_char_; - } - - os << ' ' << static_cast(perc) << '%'; - - if (show_time_) { - os << " ["; - - size_t dur = - std::chrono::duration_cast(new_tp - tp_) - .count(); - format_time(dur, os); - - os << ']'; - } - - // add a newline at the last iteration - if (n_iter_ == n_total_) os << '\n'; - - // leave invariants - prev_perc_ = perc; - n_finished_ = new_n_finished; - - os.flush(); - } - - private: - using clck_t = std::chrono::steady_clock; - - static void check_n_(int n) { - if (n <= 0) - throw std::invalid_argument( - "Number of iterations must be positive."); - } - - template - static void format_time(size_t dur, OStreamType& os) { - int hours = (dur / 3600) % 24; - dur %= 3600; - int minutes = dur / 60; - dur %= 60; - int seconds = dur; - - auto formatter = [&](int x) { - if (x < 10) - os << '0' << x; - else if (x < 100) - os << x; - }; - - formatter(hours); - os << ':'; - formatter(minutes); - os << ':'; - formatter(seconds); - } - - // configurable only at construction - int n_total_; - int bar_length_; - - // invariant - int prev_perc_ = 0; - int n_finished_ = 0; - int n_iter_ = 0; - bool bar_created_ = false; - - // configurable dynamically - unsigned char finish_char_ = '='; - char remain_char_ = ' '; - char begin_char_ = '['; - char end_char_ = ']'; - - double incr_size_; - bool show_time_; - - std::chrono::time_point tp_; -}; - -template -struct ProgressBarOSWrapper : ProgressBar { - using base_t = ProgressBar; - using base_t::base_t; - - ProgressBarOSWrapper(OStreamType& os) : os_(os) {} - - void initialize() { base_t::initialize(os_); } - void finish() { base_t::finish(os_); } - void update(size_t amt = 1) { base_t::update(os_, amt); } - - private: - using base_t::finish; - using base_t::initialize; - using base_t::update; - - OStreamType& os_; -}; - -// add deduction guide -template -ProgressBarOSWrapper(OStreamType&) - -> ProgressBarOSWrapper >; - -// helper alias for progress bar that wraps an std::ostream -using pb_ostream = ProgressBarOSWrapper; - -// Dummy ostream used to suck in all inputs. -// Constructing a ProgressBarOSWrapper with void_ostream will nullify all -// progress bar operations. -struct void_ostream {}; - -template <> -struct ProgressBarOSWrapper { - ProgressBarOSWrapper() = default; - - // Just to keep same interface as primary definition. - template - ProgressBarOSWrapper(T&) {} - - void reset() {} - void set_n_total(int) {} - void set_finish_char(char) {} - void set_remain_char(char) {} - void set_begin_char(char) {} - void set_end_char(char) {} - void set_show_time(bool) {} - void initialize() {} - void finish() {} - void update(size_t = 1) {} -}; - -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/serializer.hpp b/imprint/include/imprint_bits/util/serializer.hpp deleted file mode 100644 index c0fa7b2e..00000000 --- a/imprint/include/imprint_bits/util/serializer.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { - -struct Serializer { - Serializer(const char* fname) - : f_(fname, std::ios_base::out | std::ios_base::binary | - std::ios_base::trunc) {} - - std::ofstream& get() { return f_; } - - private: - std::ofstream f_; -}; - -struct UnSerializer { - UnSerializer(const char* fname) - : f_(fname, std::ios_base::in | std::ios_base::binary) {} - - std::ifstream& get() { return f_; } - - private: - std::ifstream f_; -}; - -// Arithmetic type -template -inline std::enable_if_t>, - Serializer&> -operator<<(Serializer& s, ValueType v) { - auto& f = s.get(); - f.write(reinterpret_cast(&v), sizeof(ValueType)); - f.flush(); - return s; -} - -template -inline std::enable_if_t>, - UnSerializer&> -operator>>(UnSerializer& us, ValueType& v) { - auto& f = us.get(); - f.read(reinterpret_cast(&v), sizeof(ValueType)); - return us; -} - -// Eigen matrices (TODO: NOT PORTABLE RIGHT NOW DUE TO ENDIANNESS) -template -inline Serializer& operator<<( - Serializer& s, const Eigen::Matrix& m) { - using value_t = ValueType; - uint32_t r = m.rows(); - uint32_t c = m.cols(); - auto& f = s.get(); - f.write(reinterpret_cast(&r), sizeof(uint32_t)); - f.write(reinterpret_cast(&c), sizeof(uint32_t)); - f.write(reinterpret_cast(m.data()), - sizeof(value_t) * m.size()); - f.flush(); - return s; -} - -template -inline UnSerializer& operator>>(UnSerializer& us, - Eigen::Matrix& m) { - using value_t = ValueType; - uint32_t r = 0; - uint32_t c = 0; - auto& f = us.get(); - f.read(reinterpret_cast(&r), sizeof(uint32_t)); - f.read(reinterpret_cast(&c), sizeof(uint32_t)); - m.resize(r, c); - f.read(reinterpret_cast(m.data()), sizeof(value_t) * m.size()); - return us; -} - -} // namespace imprint diff --git a/imprint/include/imprint_bits/util/trace_malloc.hpp b/imprint/include/imprint_bits/util/trace_malloc.hpp deleted file mode 100644 index ac9861a4..00000000 --- a/imprint/include/imprint_bits/util/trace_malloc.hpp +++ /dev/null @@ -1,32 +0,0 @@ -// Utility for counting calls to malloc -// Usage: include as first header -#include - -#include - -static long numOfHeapAllocations = 0; -namespace std { -void *traced_malloc(size_t t) { - ++numOfHeapAllocations; - return malloc(t); -} -} // namespace std -void *traced_malloc(size_t t) { - ++numOfHeapAllocations; - return malloc(t); -} - -#ifndef malloc -#define malloc(t) traced_malloc(t) -#endif - -class AllocCounter { - const long startAllocations_; - - public: - AllocCounter() : startAllocations_(numOfHeapAllocations) {} - ~AllocCounter() { - std::cout << "Numer of allocations: " - << numOfHeapAllocations - startAllocations_ << '\n'; - } -}; diff --git a/imprint/include/imprint_bits/util/types.hpp b/imprint/include/imprint_bits/util/types.hpp deleted file mode 100644 index b098dec9..00000000 --- a/imprint/include/imprint_bits/util/types.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#pragma once -#include - -namespace imprint { - -template -using colvec_type = Eigen::Matrix; - -template -using rowvec_type = Eigen::Matrix; - -template -using mat_type = Eigen::Matrix; - -/* - * Orientation type definitions. - * In general, we will have a notion of a curve/surface - * that splits a given space into 3 regions: "positive", "negative", "boundary". - * The user can define which of the 3 regions correspond to the three labels. - * For example, the hyperplane class would associate positive side as - * the side in the same direction as the normal vector; - * negative side as the opposite direction as the normal vector; - * and boundary as the hyperplane itself. - * - * pos = positive side. - * neg = negative side. - * on = boundary side. - * non_pos = non-positive side, i.e. either neg or on. - * non_neg = non-negative side, i.e. either pos or on. - * non_on = non-boundary side, i.e. either neg or pos. - * none = no relationship with any side. - */ -enum class orient_type : unsigned char { - non_pos = 0, - non_neg, - non_on, - pos, - neg, - on, - none, - // Iterators for enum class - // these MUST come last - end, // end iterator - begin = 0, // begin iterator -}; - -inline constexpr orient_type& operator++(orient_type& x) { - x = static_cast(static_cast(x) + 1); - return x; -} - -inline constexpr bool operator<(orient_type x, orient_type y) { - switch (y) { - case orient_type::non_pos: - return (x == orient_type::neg) || (x == orient_type::on); - case orient_type::non_neg: - return (x == orient_type::pos) || (x == orient_type::on); - case orient_type::non_on: - return (x == orient_type::pos) || (x == orient_type::neg); - default: - return false; - } -} - -inline constexpr bool operator<=(orient_type x, orient_type y) { - return (x == y) || (x < y); -} - -} // namespace imprint diff --git a/research/berry/fast_inla.py b/imprint/models/basket.py similarity index 89% rename from research/berry/fast_inla.py rename to imprint/models/basket.py index 09dedc14..57a05754 100644 --- a/research/berry/fast_inla.py +++ b/imprint/models/basket.py @@ -14,6 +14,39 @@ config.update("jax_enable_x64", True) +class BayesianBasket: + def __init__(self, seed, K, *, n_arm_samples=35): + self.n_arm_samples = n_arm_samples + np.random.seed(seed) + self.samples = np.random.uniform(size=(K, n_arm_samples, 3)) + self.fi = FastINLA(n_arms=3, critical_value=0.95) + self.family = "binomial" + self.family_params = {"n": n_arm_samples} + + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + # 1. Calculate the binomial count data. + # The sufficient statistic for binomial is just the number of uniform draws + # above the threshold probability. But the `p_tiles` array has shape (n_tiles, + # n_arms). So, we add empty dimensions to broadcast and then sum across + # n_arm_samples to produce an output `y` array of shape: (n_tiles, + # sim_size, n_arms) + + p = jax.scipy.special.expit(theta) + y = jnp.sum(self.samples[None, begin_sim:end_sim] < p[:, None, None], axis=2) + + # 2. Determine if we rejected each simulated sample. + # rejection_fnc expects inputs of shape (n, n_arms) so we must flatten + # our 3D arrays. We reshape exceedance afterwards to bring it back to 3D + # (n_tiles, sim_size, n_arms) + y_flat = y.reshape((-1, 3)) + n_flat = jnp.full_like(y_flat, self.n_arm_samples) + data = jnp.stack((y_flat, n_flat), axis=-1) + test_stat_per_arm = self.fi.test_inference(data).reshape(y.shape) + return jnp.min( + jnp.where(null_truth[:, None, :], test_stat_per_arm, jnp.inf), axis=-1 + ) + + @dataclass class QuadRule: pts: np.ndarray @@ -183,10 +216,12 @@ def rejection_inference(self, data, method="jax"): _, exceedance, _, _ = self.inference(data, method) return exceedance > self.critical_value + def test_inference(self, data, method="jax"): + _, exceedance, _, _ = self.inference(data, method) + return 1 - exceedance + def inference(self, data, method="jax"): - fncs = dict( - numpy=self.numpy_inference, jax=self.jax_inference, cpp=self.cpp_inference - ) + fncs = dict(numpy=self.numpy_inference, jax=self.jax_inference) return fncs[method](data)[:4] def numpy_inference(self, data, thresh_theta=None): @@ -345,38 +380,6 @@ def jax_inference(self, data): return sigma2_post, exceedances, theta_max, theta_sigma - def cpp_inference(self, data): - """ - See the numpy implementation for comments explaining the steps. The - series of operations is almost identical in the C++ implementation. - """ - import cppimport - - ext = cppimport.imp("berrylib.fast_inla_ext") - sigma2_post = np.empty((data.shape[0], self.sigma2_n)) - exceedances = np.empty((data.shape[0], self.n_arms)) - theta_max = np.empty((data.shape[0], self.sigma2_n, self.n_arms)) - theta_sigma = np.empty((data.shape[0], self.sigma2_n, self.n_arms)) - ext.inla_inference( - sigma2_post, - exceedances, - theta_max, - theta_sigma, - data[..., 0], - data[..., 1], - self.sigma2_rule.pts, - self.sigma2_rule.wts, - self.log_prior, - self.neg_precQ, - self.cov, - self.logprecQdet, - self.mu_0, - self.logit_p1, - self.opt_tol, - self.thresh_theta, - ) - return sigma2_post, exceedances, theta_max, theta_sigma - def jax_opt(y, n, cov, neg_precQ, sigma2, logit_p1, mu_0, tol): def step(args): diff --git a/imprint/models/binom1d.py b/imprint/models/binom1d.py new file mode 100644 index 00000000..57e80239 --- /dev/null +++ b/imprint/models/binom1d.py @@ -0,0 +1,38 @@ +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd + + +@jax.jit +def _sim(samples, theta, null_truth): + p = jax.scipy.special.expit(theta) + stats = jnp.sum(samples[None, :] < p[:, None], axis=2) / samples.shape[1] + return jnp.where( + null_truth[:, None, 0], + 1 - stats, + jnp.inf, + ) + + +def unifs(seed, *, shape, dtype): + samples = jax.random.uniform( + jax.random.PRNGKey(seed), shape=shape, dtype=dtype + ).ravel() + return pd.DataFrame(dict(data=[samples.tobytes()])) + + +class Binom1D: + def __init__(self, seed, max_K, *, n, store=lambda x: x): + self.family = "binomial" + self.family_params = {"n": n} + self.dtype = jnp.float32 + + samples_bytes = store(unifs)(seed, shape=(max_K, n), dtype=self.dtype) + # NOTE: reshape before converting to jax because jax copies on reshape + self.samples = jnp.asarray( + np.frombuffer(samples_bytes["data"].iloc[0], self.dtype).reshape((max_K, n)) + ) + + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + return _sim(self.samples[begin_sim:end_sim], theta, null_truth) diff --git a/imprint/models/fisher_exact.py b/imprint/models/fisher_exact.py new file mode 100644 index 00000000..66574c24 --- /dev/null +++ b/imprint/models/fisher_exact.py @@ -0,0 +1,103 @@ +import jax +import jax.numpy as jnp +import numpy as np +import scipy + + +# We reimplement the hypergeometric PDF and CDF in JAX for performance. +def hypergeom_logpmf(k, M, n, N): + # Copied from scipy.stats.hypergeom + tot, good = M, n + bad = tot - good + betaln = jax.scipy.special.betaln + result = ( + betaln(good + 1, 1) + + betaln(bad + 1, 1) + + betaln(tot - N + 1, N + 1) + - betaln(k + 1, good - k + 1) + - betaln(N - k + 1, bad - N + k + 1) + - betaln(tot + 1, 1) + ) + return result + + +def hypergeom_logcdf(k, M, n, N): + return jax.lax.fori_loop( + 1, + k + 1, + lambda i, acc: jax.scipy.special.logsumexp( + jnp.array([acc, hypergeom_logpmf(i, M, n, N)]) + ), + hypergeom_logpmf(0, M, n, N), + ) + + +def hypergeom_cdf(k, M, n, N): + return jnp.exp(hypergeom_logcdf(k, M, n, N)) + + +def scipy_fisher_exact(tbl): + return scipy.stats.fisher_exact(tbl, alternative="less")[1] + + +def _sim_scipy(samples, theta, null_truth, f=None): + if f is None: + f = scipy_fisher_exact + + p = scipy.special.expit(theta) + successes = np.sum(samples[None, :] < p[:, None, None], axis=2) + tbl2by2 = np.concatenate( + (successes[:, :, None, :], samples.shape[1] - successes[:, :, None, :]), + axis=2, + ) + stats = np.array( + [ + [f(tbl2by2[i, j]) for j in range(tbl2by2.shape[1])] + for i in range(tbl2by2.shape[0]) + ] + ) + return stats + + +@jax.jit +def _sim_jax(samples, theta, null_truth): + n = samples.shape[1] + p = jax.scipy.special.expit(theta) + successes = jnp.sum(samples[None, :] < p[:, None, None], axis=2) + cdfvv = jax.vmap( + jax.vmap(hypergeom_cdf, in_axes=(0, None, 0, None)), + in_axes=(0, None, 0, None), + ) + cdf = cdfvv(successes[..., 0], 2 * n, successes.sum(axis=-1), n) + return cdf + + +class FisherExact: + def __init__(self, seed, max_K, *, n): + self.family = "binomial" + self.family_params = {"n": n} + self.samples = jax.random.uniform( + jax.random.PRNGKey(seed), shape=(max_K, n, 2), dtype=jnp.float32 + ) + + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + print("starting", theta.shape[0], begin_sim, end_sim) + return _sim_jax(self.samples[begin_sim:end_sim], theta, null_truth) + + +class BoschlooExact(FisherExact): + # NOTE: This is super slow! + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + def f(tbl): + return scipy.stats.boschloo_exact(tbl, alternative="less").pvalue + + return _sim_scipy(self.samples[begin_sim:end_sim], theta, null_truth, f=f) + + +class BarnardExact(FisherExact): + # NOTE: This is super slow! + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + def f(tbl): + return scipy.stats.barnard_exact(tbl, alternative="less").pvalue + + return _sim_scipy(self.samples[begin_sim:end_sim], theta, null_truth, f=f) diff --git a/imprint/models/ztest.py b/imprint/models/ztest.py new file mode 100644 index 00000000..b97dacfe --- /dev/null +++ b/imprint/models/ztest.py @@ -0,0 +1,26 @@ +import jax +import jax.numpy as jnp + + +@jax.jit +def _sim(samples, theta, null_truth): + return jnp.where( + null_truth[:, None, 0], + # negate so that we can do a less than comparison + -(theta[:, None, 0] + samples[None, :]), + jnp.inf, + ) + + +class ZTest1D: + def __init__(self, seed, max_K, store=None): + self.family = "normal" + self.dtype = jnp.float32 + + # sample normals and then compute the CDF to transform into the + # interval [0, 1] + key = jax.random.PRNGKey(seed) + self.samples = jax.random.normal(key, shape=(max_K,), dtype=self.dtype) + + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + return _sim(self.samples[begin_sim:end_sim], theta, null_truth) diff --git a/imprint/nb_util.py b/imprint/nb_util.py new file mode 100644 index 00000000..39a8e088 --- /dev/null +++ b/imprint/nb_util.py @@ -0,0 +1,72 @@ +""" +Tools for setting up nice Jupyter notebooks. +""" +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd + + +def magic(text): + from IPython import get_ipython + + ipy = get_ipython() + if ipy is not None: + ipy.magic(text) + + +def configure_mpl_fast(): + """ + No retina and no latex, fast matplotlib. This can be useful for making + lots of complex plots. The "pretty" plots often take 5x longer. + """ + magic("config InlineBackend.figure_format='png'") + + +def configure_mpl_pretty(): + """Retina and Latex matplotlib figures""" + magic("config InlineBackend.figure_format='retina'") + plt.rcParams["text.usetex"] = True + plt.rcParams["text.latex.preamble"] = r"\usepackage{amsmath, amssymb}" + + +def setup_nb(text_size_ratio=1.0, pretty=True, autoreload=True): + """ + This function is handy to call at the top of a Jupyter notebook. It sets up: + 1. autoreload for allowing python modules to be modified without restart the + notebook. + 2. sane matplotlib defaults for making good looking figures including: + - retina mode + - good colors + - solid non-transparent background + - nice text sizes + """ + if autoreload: + magic("load_ext autoreload") + magic("autoreload 2") + + if pretty: + configure_mpl_pretty() + else: + configure_mpl_fast() + + plt.rcParams["axes.facecolor"] = (1.0, 1.0, 1.0, 1.0) + plt.rcParams["figure.facecolor"] = (1.0, 1.0, 1.0, 1.0) + plt.rcParams["savefig.transparent"] = False + plt.rcParams["image.cmap"] = "plasma" + # Use the same font for latex and non-latex text + plt.rcParams["mathtext.fontset"] = "cm" + plt.rcParams["font.family"] = "STIXGeneral" + scale_text(factor=text_size_ratio) + + np.set_printoptions(edgeitems=10, linewidth=100) + pd.options.display.max_columns = None + + +def scale_text(factor=1.0): + plt.rcParams["font.size"] = 15 * factor + plt.rcParams["axes.labelsize"] = 13 * factor + plt.rcParams["axes.titlesize"] = 15 * factor + plt.rcParams["xtick.labelsize"] = 12 * factor + plt.rcParams["ytick.labelsize"] = 12 * factor + plt.rcParams["legend.fontsize"] = 15 * factor + plt.rcParams["figure.titlesize"] = 17 * factor diff --git a/imprint/test/BUILD.bazel b/imprint/test/BUILD.bazel deleted file mode 100644 index dc34727e..00000000 --- a/imprint/test/BUILD.bazel +++ /dev/null @@ -1,33 +0,0 @@ -cc_library( - name = "testutil", - srcs = glob([ - "testutil/**/*.hpp", - "testutil/**/*.cpp", - ]), - hdrs = glob([ - "testutil/**/*.hpp", - ]), - includes = ["."], - deps = [ - "//imprint", - ], -) - -[cc_test( - name = type_, - srcs = glob(["{}/**/*.cpp".format(type_)]), - defines = ["EIGEN_INITIALIZE_MATRICES_BY_NAN"], - deps = [ - ":testutil", - "//imprint", - "@com_google_googletest//:gtest_main", - "@fmtlib//:fmt", - ], -) for type_ in [ - "bound", - "distribution", - "grid", - "model", - "stat", - "util", -]] diff --git a/imprint/test/CMakeLists.txt b/imprint/test/CMakeLists.txt deleted file mode 100644 index 942ca746..00000000 --- a/imprint/test/CMakeLists.txt +++ /dev/null @@ -1,72 +0,0 @@ -# Set compile flags, libs, include for building tests -set(IMPRINT_TEST_CXXFLAGS -g -Wall) -set(IMPRINT_TEST_LIBS - ${PROJECT_NAME} - GTest::gtest_main - Eigen3::Eigen) -set(IMPRINT_TEST_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}) - -if (NOT CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") - set(IMPRINT_TEST_CXXFLAGS - ${IMPRINT_TEST_CXXFLAGS} - -Werror -Wextra -Wpedantic) -endif() -if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set(IMPRINT_TEST_CXXFLAGS ${IMPRINT_TEST_CXXFLAGS} -fopenmp) - set(IMPRINT_TEST_LIBS ${IMPRINT_TEST_LIBS} -fopenmp) -endif() -if (IMPRINT_ENABLE_COVERAGE) - set(IMPRINT_TEST_LIBS ${IMPRINT_TEST_LIBS} gcov) -endif() - -function(imprint_add_test name) - target_compile_options(${name} PRIVATE ${IMPRINT_TEST_CXXFLAGS}) - target_include_directories(${name} PRIVATE ${IMPRINT_TEST_INCLUDES}) - target_link_libraries(${name} ${IMPRINT_TEST_LIBS}) - add_test(${name} ${name}) -endfunction() - -######################################################################## -# Utility TEST -######################################################################## - -add_executable(utility_unittest - ${CMAKE_CURRENT_SOURCE_DIR}/util/algorithm_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/util/d_ary_int_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/util/math_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/util/progress_bar_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/util/types_unittest.cpp - ) -imprint_add_test(utility_unittest) - -######################################################################## -# Grid TEST -######################################################################## - -add_executable(grid_unittest - ${CMAKE_CURRENT_SOURCE_DIR}/grid/gridder_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/grid/grid_range_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/grid/tile_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/grid/hyperplane_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/grid/utils_unittest.cpp - ) -imprint_add_test(grid_unittest) - -######################################################################## -# Model TEST -######################################################################## - -add_executable(model_unittest - ${CMAKE_CURRENT_SOURCE_DIR}/model/binomial_control_k_treatment_unittest.cpp - ) -imprint_add_test(model_unittest) - -######################################################################## -# Stats TEST -######################################################################## - -add_executable(stats_unittest - ${CMAKE_CURRENT_SOURCE_DIR}/stats/inter_sum_unittest.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/stats/upper_bound_unittest.cpp - ) -imprint_add_test(stats_unittest) diff --git a/imprint/test/bound/accumulator/typeI_error_accum_unittest.cpp b/imprint/test/bound/accumulator/typeI_error_accum_unittest.cpp deleted file mode 100644 index e3ed767d..00000000 --- a/imprint/test/bound/accumulator/typeI_error_accum_unittest.cpp +++ /dev/null @@ -1,143 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { -namespace bound { - -struct MockGen {}; - -template -struct MockSimState { - MockSimState(size_t n_models, size_t n_gridpts, size_t n_params, - const GridRangeType& grid_range) - : n_models_(n_models), - n_gridpts_(n_gridpts), - n_params_(n_params), - gr_(grid_range) {} - - void simulate(MockGen, colvec_type& v) { - for (size_t i = 0; i < n_gridpts_; ++i) { - v[i] = i % n_models_; - } - } - - void score(colvec_type& v, const colvec_type&) const { - Eigen::Map > vm(v.data(), n_params_, n_gridpts_); - for (int j = 0; j < vm.rows(); ++j) { - for (int k = 0; k < vm.cols(); ++k) { - vm(j, k) = static_cast(j) * k - n_params_; - } - } - } - - void score(size_t j, colvec_type& out) const { - for (size_t k = 0; k < n_params_; ++k) { - out[k] = static_cast(k) * j - n_params_; - } - } - - auto n_gridpts() const { return n_gridpts_; } - auto n_tiles(size_t) const { return 1; } - const auto& grid_range() const { return gr_; } - - private: - size_t n_models_; - size_t n_gridpts_; - size_t n_params_; - const GridRangeType& gr_; -}; - -struct MockGridRange { - MockGridRange(size_t d, size_t n) : d_{d}, n_{n} {} - - auto n_gridpts() const { return n_; } - auto n_params() const { return d_; } - bool is_regular(size_t) const { return true; } - auto n_tiles(size_t) const { return 1; } - auto n_tiles() const { return n_; } - - private: - size_t d_; - size_t n_; -}; - -bool null_hypo() { return true; } - -struct intersum_fixture : base_fixture { - protected: - using value_t = double; - using uint_t = uint32_t; - using accum_t = TypeIErrorAccum; -}; - -TEST_F(intersum_fixture, default_ctor) { accum_t is; } - -TEST_F(intersum_fixture, ctor) { accum_t is(0, 0, 0); } - -struct test_update_fixture - : intersum_fixture, - testing::WithParamInterface > { - protected: - using gr_t = MockGridRange; - using state_t = MockSimState; - using gen_t = MockGen; // dummy generator object -}; - -TEST_P(test_update_fixture, test_update) { - size_t n_models; - size_t n_gridpts; - size_t n_params; - - std::tie(n_models, n_gridpts, n_params) = GetParam(); - - gen_t gen; - gr_t gr(n_params, n_gridpts); - state_t mms(n_models, n_gridpts, n_params, gr); - accum_t accum(n_models, gr.n_tiles(), n_params); - colvec_type rej_len(gr.n_tiles()); - mms.simulate(gen, rej_len); - accum.update(rej_len, mms, gr); - - colvec_type v(n_gridpts); - mms.simulate(gen, v); - colvec_type s(n_params * n_gridpts); - mms.score(s, v); - - // check Type I sums - auto& tis = accum.typeI_sum(); - mat_type expected_tis(n_models, n_gridpts); - for (int j = 0; j < tis.cols(); ++j) { - for (int i = 0; i < tis.rows(); ++i) { - expected_tis(i, j) = (static_cast(tis.rows() - i) <= v[j]); - } - } - expect_eq_mat(tis, expected_tis); - - // check score sums - colvec_type expected_score(n_models * n_params * n_gridpts); - Eigen::Map > sm(s.data(), n_params, n_gridpts); - for (size_t j = 0; j < n_gridpts; ++j) { - Eigen::Map > expected_score_j( - expected_score.data() + j * n_models * n_params, n_models, - n_params); - for (size_t k = 0; k < n_params; ++k) { - for (size_t i = 0; i < n_models; ++i) { - expected_score_j(i, k) = sm(k, j) * (tis.rows() - i <= v[j]); - } - } - } - auto& score_sum = accum.score_sum(); - expect_eq_vec(score_sum, expected_score); -} - -INSTANTIATE_TEST_SUITE_P( - TestUpdateSuite, test_update_fixture, - - // combination of inputs: (n_models, n_gridpts, n_params) - testing::Combine(testing::Values(1, 10), testing::Values(1, 5, 15), - testing::Values(1, 3, 7, 18))); - -} // namespace bound -} // namespace imprint diff --git a/imprint/test/bound/typeI_error_bound_unittest.cpp b/imprint/test/bound/typeI_error_bound_unittest.cpp deleted file mode 100644 index ee907c61..00000000 --- a/imprint/test/bound/typeI_error_bound_unittest.cpp +++ /dev/null @@ -1,164 +0,0 @@ -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace bound { - -struct MockImprintBoundState { - using value_t = double; - using tile_t = grid::Tile; - - MockImprintBoundState(size_t n_nat_params, size_t n_models) - : n_nat_params_(n_nat_params), n_models_{n_models} {} - - /* - * The imprint bound we will assume is: - * - * \sup\limits_{v \in R-\theta} - * v^\top \widehat{\nabla f} + - * \sqrt{||v||^2 \cdots} + - * \frac{1}{2} \norm{v}^2 - * - * We will test whether the upper bound computation - * is truly invariant to directions on a rectangle R. - * Since the sup occurs at the corners, - * and for the corners, $||v||^2$ is constant, - * it should simply be sup of $v^\top \widehat{\nabla f}$. - * And the sup is achieved with $|v|^\top |\widehat{\nabla f}|$, - * where the absolute value is element-wise. - */ - - value_t covar_quadform(size_t, - const Eigen::Ref>& v) { - return v.squaredNorm(); - } - - value_t hessian_quadform_bound( - size_t, size_t, const Eigen::Ref>& v) { - return v.squaredNorm(); - } - - void apply_eta_jacobian(size_t, - const Eigen::Ref>& v, - Eigen::Ref> out) { - out = v; - } - - size_t n_models() const { return n_models_; } - size_t n_natural_params() const { return n_nat_params_; } - - private: - size_t n_nat_params_; - size_t n_models_; -}; - -struct typeI_error_bound_fixture : base_fixture { - void SetUp() override { - gr = gr_t(n_params, n_gridpts); - - gr.thetas().setRandom(); - gr.radii().array() = radius; - gr.sim_sizes().array() = sim_size; - - std::vector> vhp; - gr.create_tiles(vhp); - - // mock-update of acc_o - // set Type I sum, score sum, and n_updates - acc_o.reset(n_models, gr.n_tiles(), n_params); - acc_o.typeI_sum__().setRandom(); - auto scale = std::max(acc_o.typeI_sum().maxCoeff() / sim_size, 1uL); - acc_o.typeI_sum__() /= scale; - acc_o.typeI_sum__().array() = - acc_o.typeI_sum().array().max(0.0).min(sim_size); - acc_o.score_sum__().setRandom(); - - // create upper bound - ub.create(kbs, acc_o, gr, delta); - } - - protected: - struct MockAccum; - - using value_t = value_t; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using accum_t = TypeIErrorAccum; - using kb_t = TypeIErrorBound; - - value_t delta = 0.025; - value_t radius = 0.25; - size_t sim_size = 100; - size_t n_models = 2; - size_t n_gridpts = 20; - size_t n_params = 3; - kb_t ub; - MockImprintBoundState kbs; - accum_t acc_o; - gr_t gr; - - typeI_error_bound_fixture() : kbs(n_params, n_models) {} -}; - -TEST_F(typeI_error_bound_fixture, default_ctor) {} - -TEST_F(typeI_error_bound_fixture, delta_0) { - auto actual = ub.delta_0(); - auto expected = acc_o.typeI_sum().template cast() / sim_size; - expect_double_eq_mat(actual, expected); -} - -TEST_F(typeI_error_bound_fixture, delta_0_u) { - auto d0 = ub.delta_0().array(); - const auto& actual = ub.delta_0_u(); - Eigen::MatrixXd expected = - Eigen::MatrixXd::NullaryExpr(d0.rows(), d0.cols(), [&](auto i, auto j) { - return ibeta_inv(acc_o.typeI_sum()(i, j) + 1, - sim_size - acc_o.typeI_sum()(i, j), - 1 - 0.5 * delta) - - d0(i, j); - }); - expect_double_eq_mat(actual, expected); -} - -TEST_F(typeI_error_bound_fixture, delta_1) { - const auto& actual = ub.delta_1(); - Eigen::MatrixXd expected(n_models, n_gridpts); - for (size_t i = 0; i < n_gridpts; ++i) { - Eigen::Map> score_sum_i( - acc_o.score_sum__().data() + n_models * n_params * i, n_models, - n_params); - expected.col(i) = - score_sum_i.array().abs().rowwise().sum() * radius / sim_size; - } - expect_double_eq_mat(actual, expected); -} - -TEST_F(typeI_error_bound_fixture, delta_1_u) { - const auto& actual = ub.delta_1_u(); - mat_type expected(actual.rows(), actual.cols()); - for (int j = 0; j < expected.cols(); ++j) { - expected.col(j).array() = - std::sqrt(kbs.covar_quadform(0, gr.radii().col(j)) / sim_size * - (2. / delta - 1)); - } - expect_double_eq_mat(actual, expected); -} - -TEST_F(typeI_error_bound_fixture, delta_2_u) { - const auto& actual = ub.delta_2_u(); - mat_type expected(actual.rows(), actual.cols()); - for (int j = 0; j < expected.cols(); ++j) { - expected.col(j).array() = - 0.5 * kbs.hessian_quadform_bound(0, 0, gr.radii().col(j)); - } - expect_double_eq_mat(actual, expected); -} - -} // namespace bound -} // namespace imprint diff --git a/imprint/test/distribution/binomial_unittest.cpp b/imprint/test/distribution/binomial_unittest.cpp deleted file mode 100644 index 15813614..00000000 --- a/imprint/test/distribution/binomial_unittest.cpp +++ /dev/null @@ -1,106 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { -namespace distribution { - -struct binomial_fixture : base_fixture { - protected: - using dist_t = Binomial; -}; - -// ============================================== -// TEST score -// ============================================== - -using binomial_score_input_t = std::tuple; - -struct binomial_score_fixture - : binomial_fixture, - ::testing::WithParamInterface {}; - -TEST_P(binomial_score_fixture, score_test) { - auto [t, n, p, e] = GetParam(); - auto actual = dist_t::score(t, n, p); - EXPECT_DOUBLE_EQ(actual, e); - - // test array-like inputs also - colvec_type tv(3); - colvec_type pv(3); - tv.array() = t; - pv.array() = p; - colvec_type actual_v = - dist_t::score(tv.template cast(), n, pv); - colvec_type expected_v(3); - expected_v.array() = e; - expect_double_eq_vec(actual_v, expected_v); -} - -INSTANTIATE_TEST_SUITE_P( - BinomialScoreTest, binomial_score_fixture, - testing::Values(binomial_score_input_t({3, 10, 0.5, -2}), - binomial_score_input_t({3, 5, 0.5, 0.5}), - binomial_score_input_t({5, 2, 0.3, 4.4}))); - -// ============================================== -// TEST Covariance quadratic form -// ============================================== - -using binomial_covquad_input_t = - std::tuple, colvec_type, double>; - -struct binomial_covquad_fixture - : binomial_fixture, - ::testing::WithParamInterface {}; - -TEST_P(binomial_covquad_fixture, covar_quadform_test) { - auto [n, p, v, e] = GetParam(); - auto actual = dist_t::covar_quadform(n, p.array(), v.array()); - EXPECT_DOUBLE_EQ(actual, e); - - // test if n is a vector also - colvec_type nv(p.size()); - nv.array() = n; - actual = dist_t::covar_quadform(nv.array(), p.array(), v.array()); - EXPECT_DOUBLE_EQ(actual, e); -} - -INSTANTIATE_TEST_SUITE_P( - BinomialCovarQuadformTest, binomial_covquad_fixture, - testing::Values(binomial_covquad_input_t(250, make_colvec({0.3, 0.4, 0.5}), - make_colvec({1., 1., 1.}), 175), - binomial_covquad_input_t(30, make_colvec({0.1, 0.1}), - make_colvec({0.3, 0.5}), 0.918))); - -// ============================================== -// TEST Natural parameter to mean parameter -// ============================================== - -using binomial_natural_to_mean_input_t = - std::tuple, colvec_type >; - -struct binomial_natural_to_mean_fixture - : binomial_fixture, - ::testing::WithParamInterface {}; - -TEST_P(binomial_natural_to_mean_fixture, covar_quadform_test) { - auto [t, e] = GetParam(); - colvec_type actual = dist_t::natural_to_mean(t.array()); - expect_double_eq_vec(actual, e); - - // test if n is a scalar also - auto actual_s = dist_t::natural_to_mean(t[0]); - EXPECT_DOUBLE_EQ(actual_s, e[0]); -} - -INSTANTIATE_TEST_SUITE_P(BinomialNatToMeanTest, - binomial_natural_to_mean_fixture, - testing::Values(binomial_natural_to_mean_input_t( - make_colvec({-0.5, 0., 0.5}), - make_colvec({0.3775406687981454353611, 0.5, - 0.6224593312018545646389})))); - -} // namespace distribution -} // namespace imprint diff --git a/imprint/test/distribution/exponential_unittest.cpp b/imprint/test/distribution/exponential_unittest.cpp deleted file mode 100644 index d086a042..00000000 --- a/imprint/test/distribution/exponential_unittest.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { -namespace distribution { - -struct exponential_fixture : base_fixture { - protected: - using dist_t = Exponential; -}; - -// ============================================== -// TEST score -// ============================================== - -using exponential_score_input_t = std::tuple; - -struct exponential_score_fixture - : exponential_fixture, - ::testing::WithParamInterface {}; - -TEST_P(exponential_score_fixture, score_test) { - auto [t, n, l, e] = GetParam(); - auto actual = dist_t::score(t, n, l); - EXPECT_DOUBLE_EQ(actual, e); - - // test array-like inputs also - colvec_type tv(3); - colvec_type lv(3); - tv.array() = t; - lv.array() = l; - colvec_type actual_v = - dist_t::score(tv.template cast().array(), n, lv.array()); - colvec_type expected_v(3); - expected_v.array() = e; - expect_double_eq_vec(actual_v, expected_v); -} - -INSTANTIATE_TEST_SUITE_P( - ExponentialScoreTest, exponential_score_fixture, - testing::Values(exponential_score_input_t({3., 10, 0.3, - -30.333333333333336}), - exponential_score_input_t({3., 5, 0.2, -22.}), - exponential_score_input_t({5., 2, 5., 4.6}))); - -// ============================================== -// TEST Covariance quadratic form -// ============================================== - -using exponential_covquad_input_t = - std::tuple, colvec_type, double>; - -struct exponential_covquad_fixture - : exponential_fixture, - ::testing::WithParamInterface {}; - -TEST_P(exponential_covquad_fixture, covar_quadform_test) { - auto [n, l, v, e] = GetParam(); - auto actual = dist_t::covar_quadform(n, l.array(), v.array()); - EXPECT_DOUBLE_EQ(actual, e); - - // test if n is a vector also - colvec_type nv(l.size()); - nv.array() = n; - actual = dist_t::covar_quadform(nv.array(), l.array(), v.array()); - EXPECT_DOUBLE_EQ(actual, e); -} - -INSTANTIATE_TEST_SUITE_P( - ExponentialCovarQuadformTest, exponential_covquad_fixture, - testing::Values(exponential_covquad_input_t(250, - make_colvec({0.3, 0.4, 0.5}), - make_colvec({1., 1., 1.}), - 5340.2777777777774), - exponential_covquad_input_t(30, make_colvec({0.1, 0.1}), - make_colvec({0.3, 0.5}), - 1020))); - -// ============================================== -// TEST Natural parameter to mean parameter -// ============================================== - -using exponential_natural_to_mean_input_t = - std::tuple, colvec_type >; - -struct exponential_natural_to_mean_fixture - : exponential_fixture, - ::testing::WithParamInterface {}; - -TEST_P(exponential_natural_to_mean_fixture, covar_quadform_test) { - auto [t, e] = GetParam(); - colvec_type actual = dist_t::natural_to_mean(t.array()); - expect_double_eq_vec(actual, e); - - // test if n is a scalar also - auto actual_s = dist_t::natural_to_mean(t[0]); - EXPECT_DOUBLE_EQ(actual_s, e[0]); -} - -INSTANTIATE_TEST_SUITE_P(ExponentialNatToMeanTest, - exponential_natural_to_mean_fixture, - testing::Values(exponential_natural_to_mean_input_t( - make_colvec({1., 2., 3.}), - make_colvec({-1., -2., -3.})))); - -} // namespace distribution -} // namespace imprint diff --git a/imprint/test/grid/grid_range_unittest.cpp b/imprint/test/grid/grid_range_unittest.cpp deleted file mode 100644 index bb733050..00000000 --- a/imprint/test/grid/grid_range_unittest.cpp +++ /dev/null @@ -1,431 +0,0 @@ -#include -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -struct grid_range_fixture : base_fixture { - protected: - using value_t = double; - using uint_t = uint32_t; - using tile_t = Tile; - using hp_t = HyperPlane; - using bits_t = unsigned char; - using gr_t = GridRange; - using vec_surf_t = std::vector; - - template - bool is_null(const BitType& bit, size_t j) { - return (bit & (1 << j)) == 0; - } -}; - -TEST_F(grid_range_fixture, default_ctor) { gr_t gr; } - -TEST_F(grid_range_fixture, ctor) { - size_t d = 3, n = 10; - gr_t gr(d, n); - - // make sure internal metadata is stored correctly - EXPECT_EQ(gr.n_gridpts(), n); - EXPECT_EQ(gr.n_params(), d); -} - -TEST_F(grid_range_fixture, create_tiles) { - size_t d = 2, n = 4; - gr_t gr(d, n); - gr.thetas().col(0) << -0.5, -0.5; - gr.thetas().col(1) << -0.5, 0.5; - gr.thetas().col(2) << 0.5, -0.5; - gr.thetas().col(3) << 0.5, 0.5; - gr.radii().fill(0.5); - - colvec_type normal(d); - - vec_surf_t vs; - normal << 1, -1; - normal /= normal.norm(); - vs.emplace_back(normal, 0); - normal << 1, 1; - normal /= normal.norm(); - vs.emplace_back(normal, -1); - - gr.create_tiles(vs); - - size_t pos = 0; - - const auto& tiles = gr.tiles(); - colvec_type buff(d); - std::vector expected; - std::vector bits; - - // check tiles for bottom left gridpt - EXPECT_EQ(gr.n_tiles(0), 4); - - // lower left tile splits: - - // (T, T) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << 0, -1; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 0 << 1); - - // (F, T) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << -1, 0; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(1 << 0 | 0 << 1); - - // (T, F) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << 0, -1; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 1 << 1); - - // (F, F) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << -1, 0; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(1 << 0 | 1 << 1); - - // check each of the expected tiles - for (auto it = tiles.begin(); it != std::next(tiles.begin(), gr.n_tiles(0)); - ++it) { - EXPECT_NE(std::find(expected.begin(), expected.end(), *it), - expected.end()); - } - for (size_t i = 0; i < bits.size(); ++i) { - for (size_t j = 0; j < sizeof(bits_t) * 8; ++j) { - EXPECT_EQ(is_null(bits[i], j), gr.check_null(i, j)); - } - } - - // check tiles for top left gridpt - pos += gr.n_tiles(0); - EXPECT_EQ(gr.n_tiles(1), 1); - EXPECT_TRUE(tiles[pos].is_regular()); - EXPECT_FALSE(gr.check_null(pos, 0)); - EXPECT_TRUE(gr.check_null(pos, 1)); - - // check tiles for bottom right gridpt - pos += gr.n_tiles(1); - EXPECT_EQ(gr.n_tiles(2), 1); - EXPECT_TRUE(tiles[pos].is_regular()); - EXPECT_TRUE(gr.check_null(pos, 0)); - EXPECT_TRUE(gr.check_null(pos, 1)); - - // check tiles for top right gridpt - pos += gr.n_tiles(2); - EXPECT_EQ(gr.n_tiles(3), 2); - expected.clear(); - bits.clear(); - - // (T, T) tile - expected.emplace_back(gr.thetas().col(3), gr.radii().col(3)); - buff << 0, 0; - expected.back().emplace_back(buff); - buff << 1, 0; - expected.back().emplace_back(buff); - buff << 1, 1; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 0 << 1); - - // (F, T) tile - expected.emplace_back(gr.thetas().col(3), gr.radii().col(3)); - buff << 0, 0; - expected.back().emplace_back(buff); - buff << 0, 1; - expected.back().emplace_back(buff); - buff << 1, 1; - expected.back().emplace_back(buff); - bits.emplace_back(1 << 0 | 0 << 1); - - // check each of the expected tiles - auto beg = std::next(tiles.begin(), pos); - for (auto it = beg; it != std::next(beg, gr.n_tiles(3)); ++it) { - EXPECT_NE(std::find(expected.begin(), expected.end(), *it), - expected.end()); - } - for (size_t i = 0; i < bits.size(); ++i) { - for (size_t j = 0; j < (sizeof(bits_t) * 8); ++j) { - EXPECT_EQ(is_null(bits[i], j), gr.check_null(pos + i, j)); - } - } -} - -TEST_F(grid_range_fixture, prune_points) { - // COPIED SETTING FROM create_tiles TEST - - size_t d = 2, n = 4; - gr_t gr(d, n); - gr.thetas().col(0) << -0.5, -0.5; - gr.thetas().col(1) << -0.5, 0.5; - gr.thetas().col(2) << 0.5, -0.5; - gr.thetas().col(3) << 0.5, 0.5; - gr.radii().fill(0.5); - - colvec_type normal(d); - - vec_surf_t vs; - normal << 1, -1; - normal /= normal.norm(); - vs.emplace_back(normal, 0); - normal << 1, 1; - normal /= normal.norm(); - vs.emplace_back(normal, -1); - - gr.create_tiles(vs); - gr.prune(); - - size_t pos = 0; - - const auto& tiles = gr.tiles(); - colvec_type buff(d); - std::vector expected; - std::vector bits; - - // check tiles for bottom left gridpt - EXPECT_EQ(gr.n_tiles(0), 3); - - // lower left tile splits: - - // (T, T) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << 0, -1; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 0 << 1); - - // (F, T) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << -1, 0; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(1 << 0 | 0 << 1); - - // (T, F) - expected.emplace_back(gr.thetas().col(0), gr.radii().col(0)); - buff << -1, -1; - expected.back().emplace_back(buff); - buff << 0, -1; - expected.back().emplace_back(buff); - buff << 0, 0; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 1 << 1); - - // check each of the expected tiles - for (auto it = tiles.begin(); it != std::next(tiles.begin(), gr.n_tiles(0)); - ++it) { - EXPECT_NE(std::find(expected.begin(), expected.end(), *it), - expected.end()); - } - for (size_t i = 0; i < bits.size(); ++i) { - for (size_t j = 0; j < sizeof(bits_t) * 8; ++j) { - EXPECT_EQ(is_null(bits[i], j), gr.check_null(i, j)); - } - } - - // check tiles for top left gridpt - pos += gr.n_tiles(0); - EXPECT_EQ(gr.n_tiles(1), 1); - EXPECT_TRUE(tiles[pos].is_regular()); - EXPECT_FALSE(gr.check_null(pos, 0)); - EXPECT_TRUE(gr.check_null(pos, 1)); - - // check tiles for bottom right gridpt - pos += gr.n_tiles(1); - EXPECT_EQ(gr.n_tiles(2), 1); - EXPECT_TRUE(tiles[pos].is_regular()); - EXPECT_TRUE(gr.check_null(pos, 0)); - EXPECT_TRUE(gr.check_null(pos, 1)); - - // check tiles for top right gridpt - pos += gr.n_tiles(2); - EXPECT_EQ(gr.n_tiles(3), 2); - expected.clear(); - bits.clear(); - - // (T, T) tile - expected.emplace_back(gr.thetas().col(3), gr.radii().col(3)); - buff << 0, 0; - expected.back().emplace_back(buff); - buff << 1, 0; - expected.back().emplace_back(buff); - buff << 1, 1; - expected.back().emplace_back(buff); - bits.emplace_back(0 << 0 | 0 << 1); - - // (F, T) tile - expected.emplace_back(gr.thetas().col(3), gr.radii().col(3)); - buff << 0, 0; - expected.back().emplace_back(buff); - buff << 0, 1; - expected.back().emplace_back(buff); - buff << 1, 1; - expected.back().emplace_back(buff); - bits.emplace_back(1 << 0 | 0 << 1); - - // check each of the expected tiles - auto beg = std::next(tiles.begin(), pos); - for (auto it = beg; it != std::next(beg, gr.n_tiles(3)); ++it) { - EXPECT_NE(std::find(expected.begin(), expected.end(), *it), - expected.end()); - } - for (size_t i = 0; i < bits.size(); ++i) { - for (size_t j = 0; j < (sizeof(bits_t) * 8); ++j) { - EXPECT_EQ(is_null(bits[i], j), gr.check_null(pos + i, j)); - } - } -} - -TEST_F(grid_range_fixture, prune_off_gridpt) { - size_t d = 2, n = 1; - gr_t gr(d, n); - gr.thetas().col(0) << -0.5, -0.5; - gr.radii().fill(0.5); - - colvec_type normal(d); - - vec_surf_t vs; - normal << 1, 1; - normal /= normal.norm(); - vs.emplace_back(normal, 0); - - gr.create_tiles(vs); - gr.prune(); - - EXPECT_EQ(gr.thetas().size(), 0); - EXPECT_EQ(gr.radii().size(), 0); - EXPECT_EQ(gr.sim_sizes().size(), 0); - EXPECT_EQ(gr.n_tiles(), 0); - EXPECT_EQ(gr.n_gridpts(), 0); - EXPECT_EQ(gr.n_params(), d); // should not have changed -} - -TEST_F(grid_range_fixture, prune_is_regular) { - size_t d = 2, n = 1; - gr_t gr(d, n); - gr.thetas().col(0) << 0.0, 0.0; - gr.radii().fill(0.5); - - colvec_type normal(d); - - vec_surf_t vs; - normal << 1, 1; - normal /= normal.norm(); - vs.emplace_back(normal, 0); - - gr.create_tiles(vs); - - EXPECT_EQ(gr.n_tiles(), 2); - EXPECT_FALSE(gr.is_regular(0)); - gr.prune(); - EXPECT_EQ(gr.n_tiles(), 1); - EXPECT_FALSE(gr.is_regular(0)); -} - -TEST_F(grid_range_fixture, prune_no_surfaces) { - size_t d = 2, n = 10; - gr_t gr(d, n); - gr.thetas().setRandom(); - gr.radii().fill(0.5); - - vec_surf_t vs; - gr.create_tiles(vs); - gr.prune(); - - EXPECT_EQ(gr.thetas().cols(), n); - EXPECT_EQ(gr.radii().cols(), n); - EXPECT_EQ(gr.sim_sizes().size(), n); - EXPECT_EQ(gr.n_tiles(), n); - EXPECT_EQ(gr.n_gridpts(), n); - EXPECT_EQ(gr.n_params(), d); - - for (size_t i = 0; i < gr.n_tiles(); ++i) { - for (size_t j = 0; j < gr.max_bits(); ++j) { - EXPECT_TRUE(gr.check_null(i, j)); - } - } -} - -TEST_F(grid_range_fixture, prune_twice_invariance) { - size_t d = 3, n = 100; - - gr_t gr(d, n); - gr.thetas().setRandom(); - auto& r = gr.radii(); - r.setRandom(); - r.array() = (r.array() + 1) * 0.5 + 1; - auto& ss = gr.sim_sizes(); - ss.setRandom(); - ss.array() = ss.array().max(1).min(100); - - colvec_type normal(d); - normal.setZero(); - vec_surf_t vs; - normal << 1, -1, 0; - normal /= normal.norm(); - vs.emplace_back(normal, 0); - normal << 1, 1, 0; - normal /= normal.norm(); - vs.emplace_back(normal, -1); - normal << 1, 0, -1; - normal /= normal.norm(); - vs.emplace_back(normal, 0.5); - - gr.create_tiles(vs); - - // first prune - gr.prune(); - - auto old_thetas = gr.thetas(); - auto old_radii = gr.radii(); - auto old_ss = gr.sim_sizes(); - auto old_tiles = gr.tiles(); - - // second prune - gr.prune(); - auto& new_thetas = gr.thetas(); - auto& new_radii = gr.radii(); - auto& new_ss = gr.sim_sizes(); - auto& new_tiles = gr.tiles(); - - expect_double_eq_mat(old_thetas, new_thetas); - expect_double_eq_mat(old_radii, new_radii); - expect_eq_vec(old_ss, new_ss); - - // only check for the vertices - EXPECT_EQ(old_tiles.size(), new_tiles.size()); - for (size_t i = 0; i < old_tiles.size(); ++i) { - if (old_tiles[i].is_regular()) continue; - EXPECT_TRUE(check_vertices(new_tiles[i], new_tiles[i])); - } -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/grid/gridder_unittest.cpp b/imprint/test/grid/gridder_unittest.cpp deleted file mode 100644 index 9640a074..00000000 --- a/imprint/test/grid/gridder_unittest.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include - -namespace imprint { -namespace grid { - -// TEST grid -struct grid_fixture : base_fixture, - testing::WithParamInterface< - std::tuple > > { - void SetUp() override { - auto&& sub_param = std::tie(lower, upper); - std::tie(n, sub_param) = GetParam(); - } - - protected: - using grid_t = Gridder; - static constexpr double tol = 2e-15; - - size_t n; - double lower, upper; -}; - -TEST_P(grid_fixture, radius_test) { - auto r = grid_t::radius(n, lower, upper); - EXPECT_DOUBLE_EQ(upper - lower, 2 * r * n); -} - -TEST_P(grid_fixture, make_grid_test) { - Eigen::VectorXd grid = grid_t::make_grid(n, lower, upper); - EXPECT_EQ(grid.size(), n); - auto r = grid[0] - lower; - for (int i = 1; i < grid.size(); ++i) { - auto diam = grid[i] - grid[i - 1]; - EXPECT_NEAR(diam, 2. * r, tol); - } - EXPECT_NEAR(r, upper - grid[grid.size() - 1], tol); -} - -TEST_P(grid_fixture, make_endpts_test) { - Eigen::MatrixXd endpts = grid_t::make_endpts(n, lower, upper); - EXPECT_EQ(endpts.rows(), 2); - EXPECT_EQ(endpts.cols(), n); - auto r = (endpts(1, 0) - lower) / 2; - - EXPECT_NEAR(endpts(0, 0), lower, tol); - EXPECT_NEAR(endpts(1, endpts.cols() - 1), upper, tol); - for (int i = 1; i < endpts.cols(); ++i) { - for (int k = 0; k < endpts.rows(); ++k) { - auto diam = endpts(k, i) - endpts(k, i - 1); - EXPECT_NEAR(diam, 2 * r, tol); - } - } -} - -INSTANTIATE_TEST_SUITE_P( - GridSuite, grid_fixture, - testing::Combine(testing::Values(1, 2, 3, 5, 10), - testing::Values(std::make_pair(-2., 1.), - std::make_pair(-3., 0.), - std::make_pair(1., 1.3), - std::make_pair(0., 0.001), - std::make_pair(-10., -0.3)))); - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/grid/hyperplane_unittest.cpp b/imprint/test/grid/hyperplane_unittest.cpp deleted file mode 100644 index 894f770f..00000000 --- a/imprint/test/grid/hyperplane_unittest.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include -#include - -namespace imprint { -namespace grid { - -struct hyperplane_fixture : base_fixture { - void SetUp() override { - normal.resize(d); - normal.fill(1); - shift = 0.23124; - } - - protected: - using value_t = double; - using hp_t = HyperPlane; - - size_t d = 6; - colvec_type normal; - value_t shift; -}; - -TEST_F(hyperplane_fixture, find_orient) { - hp_t hp(normal, shift); - - value_t eps = 1e-14; - colvec_type x(d); - - x = shift * normal / normal.squaredNorm(); - auto ori = hp.find_orient(x); - EXPECT_EQ(ori, orient_type::on); - - x += eps * normal; - ori = hp.find_orient(x); - EXPECT_EQ(ori, orient_type::pos); - - x -= 2 * eps * normal; - ori = hp.find_orient(x); - EXPECT_EQ(ori, orient_type::neg); -} - -TEST_F(hyperplane_fixture, intersect) { - colvec_type normal(3); - normal << 0, 0, 1; - - hp_t hp(normal, 0.5); - - colvec_type v(3); - v << 1, 0, 0; - colvec_type dir(3); - dir << 0, 0, 3; - value_t expected = 0.5 / 3.0; - value_t actual = hp.intersect(v, dir); - EXPECT_DOUBLE_EQ(actual, expected); -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/grid/tile_unittest.cpp b/imprint/test/grid/tile_unittest.cpp deleted file mode 100644 index ccbdb877..00000000 --- a/imprint/test/grid/tile_unittest.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include - -namespace imprint { -namespace grid { - -struct tile_fixture : base_fixture { - void SetUp() override { - d = 3; - center.setRandom(d); - radius.setRandom(d); - radius.array() = 0.5 * (radius.array() + 1) + 0.0001; - } - - protected: - using value_t = double; - using tile_t = Tile; - - size_t d; - colvec_type center; - colvec_type radius; -}; - -TEST_F(tile_fixture, ctor) { tile_t tile(center, radius); } - -TEST_F(tile_fixture, is_regular) { - tile_t tile(center, radius); - - EXPECT_TRUE(tile.is_regular()); - - tile.emplace_back(center); // add dummy - EXPECT_FALSE(tile.is_regular()); - - tile.make_regular(); - EXPECT_TRUE(tile.is_regular()); -} - -TEST_F(tile_fixture, full_iter) { - tile_t tile(center, radius); - - dAryInt bits(2, d); - colvec_type expected(d); - - for (auto it = tile.begin_full(); it != tile.end_full(); ++it, ++bits) { - expected = center + ((2 * bits().template cast().array() - 1) * - radius.array()) - .matrix(); - auto& v = *it; - expect_double_eq_vec(v, expected); - } -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/grid/utils_unittest.cpp b/imprint/test/grid/utils_unittest.cpp deleted file mode 100644 index 002fe617..00000000 --- a/imprint/test/grid/utils_unittest.cpp +++ /dev/null @@ -1,354 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -struct utils_fixture : base_fixture { - protected: - using value_t = double; - using tile_t = Tile; - using hp_t = HyperPlane; - - colvec_type center; - colvec_type radius; - colvec_type normal; - value_t shift; - - template - void check_is_oriented(RT run_test) { - size_t d = 2; - center.setZero(d); - radius.resize(d); - radius.fill(1); - normal.setOnes(d); - shift = 0; - - // should cut through along y = -x line - run_test(center, radius, normal, shift, false, orient_type::none); - - // check hyperplane shifted to top right corner - // first, shift slightly below - value_t eps = 1e-14; - value_t n_sq = normal.squaredNorm(); - shift += (1 - eps) * n_sq; - run_test(center, radius, normal, shift, false, orient_type::none); - - // next, shift to exactly the top right corner - // now entering negative orientation - shift += eps * n_sq; - run_test(center, radius, normal, shift, true, orient_type::non_pos); - - // next, go slightly beyond top right corner - // should end up still in negative orientation - shift += 2 * n_sq; - run_test(center, radius, normal, shift, true, orient_type::non_pos); - - // check positive side - shift = -(1 - eps) * n_sq; - run_test(center, radius, normal, shift, false, orient_type::none); - - shift -= eps * n_sq; - run_test(center, radius, normal, shift, true, orient_type::non_neg); - - shift -= 2 * n_sq; - run_test(center, radius, normal, shift, true, orient_type::non_neg); - } - - template - void is_vertices_same(const Tile& t, const Vertices& expected) { - size_t count = 0; - for (auto& x : t) { - auto it = std::find_if( - expected.begin(), expected.end(), - [&](const auto& v) { return (v.array() == x.array()).all(); }); - EXPECT_NE(it, expected.end()); - ++count; - } - EXPECT_EQ(count, expected.size()); - } -}; - -TEST_F(utils_fixture, test_is_oriented_shift_inv) { - // just go through a lot of examples - for (int i = 0; i < 100; ++i) { - size_t d = 6; - center.setRandom(d); - radius.setRandom(d); - radius.array() = 0.5 * (radius.array() + 1) + 1e-8; - normal.setRandom(d); - shift = 0.3897874; - - // perturbation direction - colvec_type pert_dir(d); - pert_dir.setRandom(); - - // get initial output - bool expected; - orient_type expected_ori; - { - tile_t tile(center, radius); - hp_t hp(normal, shift); - expected = is_oriented(tile, hp, expected_ori); - } - - // get output after perturbation - bool actual; - orient_type actual_ori; - { - center += pert_dir; - shift += normal.dot(pert_dir); - tile_t tile(center, radius); - hp_t hp(normal, shift); - actual = is_oriented(tile, hp, actual_ori); - } - - EXPECT_EQ(actual, expected); - EXPECT_EQ(actual_ori, expected_ori); - } -} - -TEST_F(utils_fixture, test_is_oriented_full) { - auto run_test = [](const auto& center, const auto& radius, - const auto& normal, auto shift, bool expected, - orient_type exp_ori) { - tile_t tile(center, radius); - hp_t hp(normal, shift); - orient_type ori; - bool actual = is_oriented(tile, hp, ori); - if (expected) - EXPECT_TRUE(actual); - else - EXPECT_FALSE(actual); - EXPECT_EQ(ori, exp_ori); - }; - - check_is_oriented(run_test); -} - -TEST_F(utils_fixture, test_is_oriented) { - auto run_test = [](const auto& center, const auto& radius, - const auto& normal, auto shift, bool expected, - orient_type exp_ori) { - tile_t tile(center, radius); - for (auto it = tile.begin_full(); it != tile.end_full(); ++it) { - tile.emplace_back(*it); - } - hp_t hp(normal, shift); - orient_type ori; - bool actual = is_oriented(tile, hp, ori); - if (expected) - EXPECT_TRUE(actual); - else - EXPECT_FALSE(actual); - EXPECT_EQ(ori, exp_ori); - }; - - check_is_oriented(run_test); -} - -TEST_F(utils_fixture, test_intersect_d2) { - size_t d = 2; - center.setZero(d); - radius.resize(d); - radius.fill(1); - normal.setOnes(d); - shift = 0; - - colvec_type buff(d); - std::vector> n_expected; - std::vector> p_expected; - - tile_t p_tile(center, radius); - tile_t n_tile(center, radius); - - auto run_test = [&]() { - tile_t tile(center, radius); - hp_t hp(normal, shift); - intersect(tile, hp, p_tile, n_tile); - is_vertices_same(n_tile, n_expected); - is_vertices_same(p_tile, p_expected); - }; - - // test when shift = 0 - - // non-positive region - buff << -1, -1; - n_expected.push_back(buff); - buff << -1, 1; - n_expected.push_back(buff); - buff << 1, -1; - n_expected.push_back(buff); - - // non-negative region - buff << -1, 1; - p_expected.push_back(buff); - buff << 1, -1; - p_expected.push_back(buff); - buff << 1, 1; - p_expected.push_back(buff); - - run_test(); - - // test slightly more non-trivial shift - shift = 0.75 * normal.squaredNorm(); - n_expected.clear(); - p_expected.clear(); - - // non-positive region - buff << -1, -1; - n_expected.push_back(buff); - buff << -1, 1; - n_expected.push_back(buff); - buff << 1, -1; - n_expected.push_back(buff); - buff << 0.5, 1; - n_expected.push_back(buff); - buff << 1, 0.5; - n_expected.push_back(buff); - - // non-negative region - buff << 0.5, 1; - p_expected.push_back(buff); - buff << 1, 0.5; - p_expected.push_back(buff); - buff << 1, 1; - p_expected.push_back(buff); - - run_test(); -} - -TEST_F(utils_fixture, test_intersect_d3) { - size_t d = 3; - center.setZero(d); - radius.resize(d); - radius.fill(1); - normal.setOnes(d); - shift = 0; - - colvec_type buff(d); - std::vector> n_expected; - std::vector> p_expected; - - tile_t p_tile(center, radius); - tile_t n_tile(center, radius); - - auto run_test = [&]() { - tile_t tile(center, radius); - hp_t hp(normal, shift); - intersect(tile, hp, p_tile, n_tile); - is_vertices_same(n_tile, n_expected); - is_vertices_same(p_tile, p_expected); - }; - - // test when shift = 0 - - // non-positive region - buff << 1, -1, -1; - n_expected.push_back(buff); - buff << -1, 1, -1; - n_expected.push_back(buff); - buff << -1, -1, 1; - n_expected.push_back(buff); - buff << -1, -1, -1; - n_expected.push_back(buff); - - // non-negative region - buff << -1, 1, 1; - p_expected.push_back(buff); - buff << 1, -1, 1; - p_expected.push_back(buff); - buff << 1, 1, -1; - p_expected.push_back(buff); - buff << 1, 1, 1; - p_expected.push_back(buff); - - // intersections - buff << 1, 0, -1; - n_expected.push_back(buff); - p_expected.push_back(buff); - buff << 1, -1, 0; - n_expected.push_back(buff); - p_expected.push_back(buff); - buff << 0, 1, -1; - n_expected.push_back(buff); - p_expected.push_back(buff); - buff << -1, 1, 0; - n_expected.push_back(buff); - p_expected.push_back(buff); - buff << 0, -1, 1; - n_expected.push_back(buff); - p_expected.push_back(buff); - buff << -1, 0, 1; - n_expected.push_back(buff); - p_expected.push_back(buff); - - run_test(); -} - -TEST_F(utils_fixture, test_intersect_d2_non_reg) { - size_t d = 2; - center.setZero(d); - radius.resize(d); - radius.fill(1); - normal.setOnes(d); - shift = 0; - - colvec_type buff(d); - std::vector> n_expected; - std::vector> p_expected; - - tile_t p_tile(center, radius); - tile_t n_tile(center, radius); - - auto run_test = [&]() { - tile_t tile(center, radius); - for (auto it = tile.begin_full(); it != tile.end_full(); ++it) { - tile.emplace_back(*it); - } - hp_t hp(normal, shift); - intersect(tile, hp, p_tile, n_tile); - is_vertices_same(n_tile, n_expected); - is_vertices_same(p_tile, p_expected); - }; - - // test when shift = 0 - for (auto it = p_tile.begin_full(); it != p_tile.end_full(); ++it) { - n_expected.push_back(*it); - } - p_expected = n_expected; - - run_test(); - - // test slightly more non-trivial shift - shift = 0.5 * normal.squaredNorm(); - - run_test(); -} - -// EXAMPLES THAT FAILED IN APPLICATION - -TEST_F(utils_fixture, test_is_oriented_full_issue1) { - size_t d = 2; - center.resize(d); - center << -0.5, -0.5; - radius.resize(d); - radius << 0.5, 0.5; - normal.resize(d); - normal << 1, -1; - normal /= normal.norm(); - shift = 0; - - tile_t tile(center, radius); - hp_t hp(normal, shift); - - orient_type ori; - bool actual = is_oriented(tile, hp, ori); - EXPECT_FALSE(actual); - EXPECT_EQ(ori, orient_type::none); -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/model/binomial/common/fixed_n_default_unittest.cpp b/imprint/test/model/binomial/common/fixed_n_default_unittest.cpp deleted file mode 100644 index 1e4eaff8..00000000 --- a/imprint/test/model/binomial/common/fixed_n_default_unittest.cpp +++ /dev/null @@ -1,302 +0,0 @@ -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -/* - * Wrap the class to dummy-implement the virtual functions. - */ -template -struct SimGlobalStateFixedNDefaultWrap - : SimGlobalStateFixedNDefault { - struct SimState; - - using base_t = SimGlobalStateFixedNDefault; - using typename base_t::gen_t; - using typename base_t::interface_t; - using typename base_t::uint_t; - using sim_state_t = SimState; - - using base_t::base_t; - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } -}; - -template -struct SimGlobalStateFixedNDefaultWrap::SimState - : base_t::sim_state_t { - using outer_t = SimGlobalStateFixedNDefaultWrap; - using base_t = typename outer_t::base_t::sim_state_t; - - using base_t::base_t; - void simulate(Eigen::Ref>) override{}; -}; - -// ====================================================== -// TEST SimGlobalState -// ====================================================== - -struct sgs_fixed_n_default_fixture : base_fixture { - protected: - using gen_t = std::mt19937; - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using sgs_t = SimGlobalStateFixedNDefaultWrap; -}; - -TEST_F(sgs_fixed_n_default_fixture, one_arm) { - size_t d = 1; // number of params - size_t n = 5; // number of gridpts - size_t n_arm_samples = 2; - // number of arm size; - // not important for this test - - gr_t gr(d, n); - auto& thetas = gr.thetas(); - thetas.row(0) << -0.5, 0., -0.5, 0.3, .3; - - sgs_t sgs(n_arm_samples, gr); - - // test the unique probs - colvec_type expected_pu(3); - expected_pu << -0.5, 0., 0.3; - expected_pu.array() = sigmoid(expected_pu.array()); - auto& pu = sgs.probs_unique_arm(0); - expect_double_eq_vec(pu, expected_pu); - - // test the bits - colvec_type expected_bits(n); - expected_bits << 0, 1, 0, 2, 2; - auto bits = sgs.bits().row(0); - expect_eq_vec(bits, expected_bits); - - // test the stride - EXPECT_EQ(sgs.stride(0), 0); - EXPECT_EQ(sgs.stride(1), expected_pu.size()); -} - -TEST_F(sgs_fixed_n_default_fixture, two_arms) { - size_t d = 2; // number of params - size_t n = 5; // number of gridpts - size_t n_arm_samples = 2; - // number of arm size; - // not important for this test - - gr_t gr(d, n); - auto& thetas = gr.thetas(); - thetas.row(0) << -0.5, 0., -0.5, 0.3, .3; - thetas.row(1) << 0.1, -0.3, 0.1, -0.3, 0.2; - - sgs_t sgs(n_arm_samples, gr); - - //// Arm 1: - { - // test the unique probs - colvec_type expected_pu(3); - expected_pu << -0.5, 0., 0.3; - expected_pu.array() = sigmoid(expected_pu.array()); - auto& pu = sgs.probs_unique_arm(0); - expect_double_eq_vec(pu, expected_pu); - - // test the bits - colvec_type expected_bits(n); - expected_bits << 0, 1, 0, 2, 2; - auto bits = sgs.bits().row(0); - expect_eq_vec(bits, expected_bits); - - // test the stride - EXPECT_EQ(sgs.stride(0), 0); - EXPECT_EQ(sgs.stride(1), expected_pu.size()); - } - - //// Arm 2: - { - // test the unique probs - colvec_type expected_pu(3); - expected_pu << -0.3, 0.1, 0.2; - expected_pu.array() = sigmoid(expected_pu.array()); - auto& pu = sgs.probs_unique_arm(1); - expect_double_eq_vec(pu, expected_pu); - - // test the bits - colvec_type expected_bits(n); - expected_bits << 1, 0, 1, 0, 2; - auto bits = sgs.bits().row(1); - expect_eq_vec(bits, expected_bits); - - // test the stride - EXPECT_EQ(sgs.stride(2), sgs.stride(1) + expected_pu.size()); - } -} - -// ====================================================== -// TEST SimState -// ====================================================== - -struct ss_fixed_n_default_fixture : sgs_fixed_n_default_fixture { - void SetUp() override { gen.seed(0); } - - protected: - using ss_t = typename sgs_t::sim_state_t; - gen_t gen; -}; - -TEST_F(ss_fixed_n_default_fixture, two_arm_suff_stat_score) { - size_t d = 2; // number of params - size_t n = 5; // number of gridpts - size_t n_arm_samples = 2; - // number of arm size; - // IS important for this test - - gr_t gr(d, n); - auto& thetas = gr.thetas(); - thetas.row(0) << -0.5, 0., -0.5, 0.3, .3; - thetas.row(1) << 0.1, -0.3, 0.1, -0.3, 0.2; - - sgs_t sgs(n_arm_samples, gr); - ss_t ss = *static_cast(sgs.make_sim_state(0).get()); - - ss.generate_data(); - ss.generate_sufficient_stats(); - - std::vector> pu_v(2); - pu_v[0].resize(3); - pu_v[1].resize(3); - pu_v[0] << -0.5, 0., 0.3; - pu_v[1] << -0.3, 0.1, 0.2; - pu_v[0].array() = sigmoid(pu_v[0].array()); - pu_v[1].array() = sigmoid(pu_v[1].array()); - - // test sufficient stats - std::vector> ss_expected(2); - ss_expected[0].resize(3); - ss_expected[1].resize(3); - { - for (size_t i = 0; i < pu_v.size(); ++i) { - auto unifs_i = ss.uniform_randoms().col(i); - auto& pu = pu_v[i]; - for (int j = 0; j < pu.size(); ++j) { - auto actual = (unifs_i.array() < pu[j]).count(); - ss_expected[i](j) = actual; - auto expected = ss.sufficient_stats_arm(i)(j); - EXPECT_EQ(actual, expected); - } - } - } - - // test score - { - mat_type bits(d, n); - bits << 0, 1, 0, 2, 2, 1, 0, 1, 0, 2; - mat_type expected; - expected = expected.NullaryExpr(d, n, [&](auto i, auto j) { - return ss_expected[i][bits(i, j)] - - n_arm_samples * pu_v[i][bits(i, j)]; - }); - - colvec_type out(d); - for (size_t i = 0; i < gr.n_gridpts(); ++i) { - ss.score(i, out); - auto expected_i = expected.col(i); - expect_double_eq_vec(out, expected_i); - } - } -} - -// ====================================================== -// TEST Imprint Bound State -// ====================================================== - -struct kbs_fixed_n_default_fixture : base_fixture { - protected: - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using kbs_t = ImprintBoundStateFixedNDefault; -}; - -TEST_F(kbs_fixed_n_default_fixture, apply_eta_jacobian) { - size_t d = 5; // arbitrary - size_t n_arm_samples = 3; // arbitrary - colvec_type v; - v.setRandom(d); - gr_t gr(d, 1); - gr.thetas() = v; // dummy - kbs_t kbs(n_arm_samples, gr); - colvec_type out(v.size()); - kbs.apply_eta_jacobian(0, v, out); - expect_double_eq_vec(out, v); -} - -TEST_F(kbs_fixed_n_default_fixture, covar_quadform) { - size_t d = 3; // number of params - size_t n_arm_samples = 100; - - // the invariance is that - // the values of theta and v does not matter - - gr_t gr(d, 1); - gr.thetas().setRandom(); - - kbs_t kbs(n_arm_samples, gr); - - colvec_type v; - v.setRandom(d); - - colvec_type prob = sigmoid(gr.thetas().array()); - auto prob_a = prob.array(); - auto v_a = v.array(); - value_t expected = - (n_arm_samples * v_a.square() * prob_a * (1.0 - prob_a)).sum(); - - value_t actual = kbs.covar_quadform(0, v); - EXPECT_DOUBLE_EQ(actual, expected); -} - -TEST_F(kbs_fixed_n_default_fixture, hessian_quadform_bound) { - size_t d = 3; // number of params - size_t n_arm_samples = 250; - - gr_t gr(d, 1); - gr.thetas() << -0.5, 0., 0.5; - gr.radii().array() = 0.25; - // technically, tiles should be initialized, - // but it should not be used. - - kbs_t kbs(n_arm_samples, gr); - - colvec_type v(d); - v.setRandom(); - - value_t actual = kbs.hessian_quadform_bound(0, 0, v); - - // compute the expected bound - auto theta = gr.thetas().col(0); - auto radius = gr.radii().col(0); - value_t expected = 0; - value_t p = 0; - p = sigmoid(theta[0] + radius[0]); - expected += n_arm_samples * p * (1 - p) * v[0] * v[0]; - expected += n_arm_samples * 0.25 * v[1] * v[1]; - p = sigmoid(theta[2] - radius[2]); - expected += n_arm_samples * p * (1 - p) * v[2] * v[2]; - - EXPECT_DOUBLE_EQ(actual, expected); -} - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/test/model/binomial/direct_bayes.cpp b/imprint/test/model/binomial/direct_bayes.cpp deleted file mode 100644 index e8bef8f1..00000000 --- a/imprint/test/model/binomial/direct_bayes.cpp +++ /dev/null @@ -1,194 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { -namespace { - -template -struct MockHyperPlane : grid::HyperPlane { - using base_t = grid::HyperPlane; - using base_t::base_t; -}; - -struct direct_bayes_fixture : base_fixture { - protected: - using gen_t = std::mt19937; - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using hp_t = MockHyperPlane; - using gr_t = grid::GridRange; - - using model_t = DirectBayes; - using sgs_t = - typename model_t::SimGlobalState; - using ss_t = typename sgs_t::sim_state_t; - - using mat_t = mat_type; - using vec_t = colvec_type; - - const value_t mu_sig_sq = 100; - const value_t alpha_prior = 0.0005; - const value_t beta_prior = 0.000005; - const value_t efficacy_threshold = 0.3; - const int n_integration_points = 50; - const int n_arm_size = 15; - const value_t tol = 1e-8; - const size_t n_arms = 4; - const colvec_type critical_values{0.95}; - const size_t n_thetas = 4; - - vec_t get_efficacy_thresholds(int n) const { - Eigen::Vector efficacy_thresholds(n); - efficacy_thresholds.fill(efficacy_threshold); - return efficacy_thresholds; - } - - gr_t get_grid_range() const { - auto theta_1d = grid::Gridder::make_grid(n_thetas, -1., 1.); - auto radius = grid::Gridder::radius(n_thetas, -1., 1.); - - colvec_type normal(n_arms); - std::vector hps; - for (size_t i = 0; i < n_arms; ++i) { - normal.setZero(); - normal(i) = -1; - hps.emplace_back(normal, logit(efficacy_threshold)); - } - - // populate theta as the cartesian product of theta_1d - dAryInt bits(n_thetas, n_arms); - gr_t grid_range(n_arms, bits.n_unique()); - auto& thetas = grid_range.thetas(); - for (size_t j = 0; j < grid_range.n_gridpts(); ++j, ++bits) { - for (size_t i = 0; i < n_arms; ++i) { - thetas(i, j) = theta_1d[bits()[i]]; - } - } - - // populate radii as fixed radius - grid_range.radii().array() = radius; - - // create tile information - grid_range.create_tiles(hps); - grid_range.prune(); - - return grid_range; - } - - model_t get_test_class() const { - model_t b_new(n_arms, n_arm_size, critical_values, - get_efficacy_thresholds(n_arms)); - return b_new; - } -}; - -TEST_F(direct_bayes_fixture, TestConditionalExceedProbGivenSigma) { - Eigen::Vector4d logit_efficacy_thresholds; - logit_efficacy_thresholds.fill(-0.40546511); - for (bool use_fast : {true, false}) { - vec_t got = sgs_t::conditional_exceed_prob_given_sigma( - 1.10517092, 0.1, Eigen::Vector4d{12.32, 10.08, 11.22, 10.08}, - Eigen::Vector4d{0.24116206, -0.94446161, 0.66329422, 0.94446161}, - logit_efficacy_thresholds, Eigen::Vector4d{0, 0, 0, 0}, use_fast); - Eigen::Vector4d want; - want << 0.9892854091921082, 0.0656701203047288, 0.999810960134644, - 0.9999877861068269; - expect_near_vec(got, want, tol); - got = sgs_t::conditional_exceed_prob_given_sigma( - 1.01445965e-8, 0.1, Eigen::Vector4d{12.32, 10.08, 11.22, 10.08}, - Eigen::Vector4d{0.24116206, -0.94446161, 0.66329422, 0.94446161}, - logit_efficacy_thresholds, Eigen::Vector4d{0, 0, 0, 0}, use_fast); - want << 0.9999943915784785, 0.999994391552775, 0.9999943915861994, - 0.9999943915892988; - expect_near_vec(got, want, tol); - } -}; - -TEST_F(direct_bayes_fixture, TestGetPosteriorExcedanceProbs) { - const auto [quadrature_points, weighted_density_logspace] = - sgs_t::get_quadrature(alpha_prior, beta_prior, n_integration_points, - n_arm_size); - vec_t phat = Eigen::Vector4d{3, 8, 5, 4}; - phat.array() /= 15; - Eigen::Vector want{0.64462095, 0.80224266, 0.71778699, - 0.67847136}; - for (bool use_optimized : {true, false}) { - auto got = sgs_t::get_posterior_exceedance_probs( - phat, quadrature_points, weighted_density_logspace, - get_efficacy_thresholds(4), n_arm_size, mu_sig_sq, use_optimized); - expect_near_vec(got, want, tol); - } -}; - -TEST_F(direct_bayes_fixture, TestFasterInvert) { - auto v = Eigen::Vector4d{1, 2, 3, 4}; - double d = 0.5; - const auto got = sgs_t::faster_invert(1. / v.array(), d); - mat_t m = v.asDiagonal(); - m.array() += d; - mat_t want = m.inverse(); - expect_near_mat(got, want, tol); -}; - -TEST_F(direct_bayes_fixture, GetGridRange) { - auto grid_range = get_grid_range(); - EXPECT_EQ(grid_range.n_tiles(0), 1); - EXPECT_EQ(grid_range.n_tiles(1), 1); - EXPECT_EQ(grid_range.n_tiles(2), 1); - EXPECT_EQ(grid_range.n_tiles(3), 2); -}; - -TEST_F(direct_bayes_fixture, TestRejLen) { - size_t seed = 3214; - auto model = get_test_class(); - auto grid_range = get_grid_range(); - auto sgs = model.make_sim_global_state(grid_range); - auto state = sgs.make_sim_state(seed); - colvec_type actual(grid_range.n_tiles()); - state->simulate(actual); - colvec_type expected(grid_range.n_tiles()); - expected << 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, - 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, - 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, - 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, - 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, - 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, - 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, - 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, - 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1; - expect_eq_vec(actual, expected); -}; -} // namespace -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/test/model/binomial/simple_selection_unittest.cpp b/imprint/test/model/binomial/simple_selection_unittest.cpp deleted file mode 100644 index 7bbf827d..00000000 --- a/imprint/test/model/binomial/simple_selection_unittest.cpp +++ /dev/null @@ -1,172 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { - -/* - * To keep consistent with previous implementation, - * the hyperplane object must identify whether - * the tile is oriented w.r.t. the hyperplane if and only if - * the center is in the positive orientation. - */ -struct MockHyperPlane : grid::HyperPlane { - using base_t = grid::HyperPlane; - using base_t::base_t; -}; - -/* - * We overload this function to be compatible with legacy version. - * Legacy version does not distinguish tiles that are split by surfaces. - * In particular, it assumes every tile is on one side of any surface, - * and it is associated with the side where the center of the tile lies. - * Hence, this is overloaded to return true no matter what. - */ -template -inline bool is_oriented(const TileType& tile, const MockHyperPlane& hp, - orient_type& ori) { - const auto& center = tile.center(); - ori = hp.find_orient(center); - if (ori <= orient_type::non_neg) { - ori = orient_type::non_neg; - } else { - ori = orient_type::non_pos; - } - return true; -} - -struct bckt_fixture : base_fixture { - void SetUp() override { - // legacy setup - // MUST BE EVENLY SPACED TO BE COMPATIBLE WITH - // MockHyperPlane and legacy version - theta_1d = grid::Gridder::make_grid(n_thetas, -1., 1.); - radius = grid::Gridder::radius(n_thetas, -1., 1.); - - prob_1d.array() = sigmoid(theta_1d.array()); - prob_endpt_1d.resize(2, theta_1d.size()); - prob_endpt_1d.row(0).array() = sigmoid(theta_1d.array() - radius); - prob_endpt_1d.row(1).array() = sigmoid(theta_1d.array() + radius); - - for (size_t i = 1; i < n_arms; ++i) { - hypos.emplace_back([&, i](const dAryInt& bits) { - return prob_1d[bits()[i]] <= prob_1d[bits()[0]]; - }); - } - - // new setup - - colvec_type normal(n_arms); - normal << 1, -1; // H_0: p[1] <= p[0] - hps.emplace_back(normal, 0); - - // only thetas and radii need to be populated. - - // populate theta as the cartesian product of theta_1d - auto& thetas = grid_range.thetas(); - dAryInt bits(n_thetas, n_arms); - for (size_t j = 0; j < grid_range.n_gridpts(); ++j) { - for (size_t i = 0; i < n_arms; ++i) { - thetas(i, j) = theta_1d[bits()[i]]; - } - ++bits; - } - - // populate radii as fixed radius - grid_range.radii().array() = radius; - - // create tile information - grid_range.create_tiles(hps); - - EXPECT_EQ(grid_range.n_tiles(0), 1); - EXPECT_EQ(grid_range.n_tiles(1), 1); - EXPECT_EQ(grid_range.n_tiles(2), 1); - EXPECT_EQ(grid_range.n_tiles(3), 1); - } - - protected: - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gen_t = std::mt19937; - using hp_t = MockHyperPlane; - using gr_t = grid::GridRange; - using bckt_legacy_t = legacy::BinomialControlkTreatment; - using bckt_t = SimpleSelection; - - // common configuration - - // configuration that may want to be parametrizations - size_t n_arms = 2; - size_t ph2_size = 50; - size_t n_samples = 250; - value_t threshold = 1.96; - value_t radius; - size_t n_thetas = 10; - - // configuration for legacy - colvec_type thresholds; - colvec_type theta_1d; - colvec_type prob_1d; - mat_type prob_endpt_1d; - std::vector > hypos; - - // configuration for new - std::vector hps; - gr_t grid_range; - - bckt_fixture() : thresholds(1), grid_range(n_arms, ipow(n_thetas, n_arms)) { - thresholds[0] = threshold; - } -}; - -struct bckt_state_fixture : bckt_fixture { - protected: - using state_leg_t = bckt_legacy_t::StateType; - - size_t seed = 3214; - std::mt19937 gen; - - template - void state_gen(StateType& s) { - gen.seed(seed); - s.gen_rng(gen); - s.gen_suff_stat(); - } -}; - -TEST_F(bckt_state_fixture, test_rej) { - bckt_t b_new(n_arms, n_samples, ph2_size, thresholds); - bckt_legacy_t b_leg(n_arms, ph2_size, n_samples, prob_1d, prob_endpt_1d, - hypos); - - auto sgs = - b_new.make_sim_global_state(grid_range); - - auto s_new = sgs.make_sim_state(seed); - state_leg_t s_leg(b_leg); - - // get legacy rejections - state_gen(s_leg); - dAryInt bits(n_thetas, n_arms); - colvec_type expected(bits.n_unique()); - for (int i = 0; i < expected.size(); ++i, ++bits) { - expected[i] = (s_leg.test_stat(bits) > threshold); - } - - // get new rejections - colvec_type actual(grid_range.n_tiles()); - s_new->simulate(actual); - - expect_eq_vec(actual, expected); -} - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/test/model/exponential/common/fixed_n_log_hazard_rate_unittest.cpp b/imprint/test/model/exponential/common/fixed_n_log_hazard_rate_unittest.cpp deleted file mode 100644 index c8a17c59..00000000 --- a/imprint/test/model/exponential/common/fixed_n_log_hazard_rate_unittest.cpp +++ /dev/null @@ -1,177 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace exponential { - -// ====================================================== -// TEST SimState -// ====================================================== - -struct ss_fixture : base_fixture { - void SetUp() override { gen.seed(seed); } - - protected: - using gen_t = std::mt19937; - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - - struct SimGlobalStateWrap - : SimGlobalStateFixedNLogHazardRate { - using base_t = - SimGlobalStateFixedNLogHazardRate; - using typename base_t::interface_t; - - struct SimStateWrap : base_t::sim_state_t { - using outer_t = SimGlobalStateWrap; - using base_t = typename outer_t::base_t::sim_state_t; - using base_t::base_t; - void simulate(Eigen::Ref>) override{}; - }; - - using base_t::base_t; - - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } - }; - - using sgs_t = SimGlobalStateWrap; - using ss_t = typename sgs_t::SimStateWrap; - - size_t d = 2; // number of parameters (fixed to be 2) - size_t seed = 123; - gen_t gen; -}; - -TEST_F(ss_fixture, score_test) { - size_t n = 2; // number of gridpts - size_t n_arm_samples = 132; - - gr_t gr(d, n); - auto& thetas = gr.thetas(); - thetas.row(0) << -2, 1; - thetas.row(1) << -2, -1; - - sgs_t sgs(n_arm_samples, gr); - ss_t ss(sgs, seed); - - ss.generate_data(); - ss.generate_sufficient_stats(); - - for (size_t i = 0; i < n; ++i) { - auto hzrd_rate = std::exp(thetas(1, i)); - ss.update_hzrd_rate(hzrd_rate); - colvec_type expected(d); - mat_type lmda_inv; - lmda_inv[0] = std::exp(-thetas(0, i)); - lmda_inv[1] = lmda_inv[0] * std::exp(-thetas(1, i)); - mat_type suff_stat; - suff_stat[0] = ss.control().sum(); - suff_stat[1] = ss.treatment().sum(); - expected = (suff_stat * lmda_inv[0] - n_arm_samples * lmda_inv); - - colvec_type out(d); - ss.score(i, out); - - auto tol = 2e-15 * expected.array().abs().maxCoeff(); - expect_near_vec(out, expected, tol); - } -} - -// ====================================================== -// TEST ImprintBoundState -// ====================================================== - -struct kbs_fixture : base_fixture { - using value_t = double; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using kbs_t = ImprintBoundStateFixedNLogHazardRate; - const size_t d = 2; - static constexpr value_t tol = 2e-15; -}; - -TEST_F(kbs_fixture, apply_eta_jacobian) { - size_t n_arm_samples = 32; - - gr_t gr(d, 1); - gr.thetas() << 1, -2; - - kbs_t kbs(n_arm_samples, gr); - - colvec_type v(d); - v.setRandom(); - - colvec_type nat = gr.thetas().array().exp(); - nat[0] = -nat[0]; - nat[1] *= nat[0]; - mat_type deta(d, d); - deta << nat[0], 0, nat[1], nat[1]; - colvec_type expected = deta * v; - - colvec_type out(d); - kbs.apply_eta_jacobian(0, v, out); - - expect_double_eq_vec(out, expected); -} - -TEST_F(kbs_fixture, covar_quadform) { - size_t n_arm_samples = 32; - - gr_t gr(d, 1); - gr.thetas() << 1, -2; - - kbs_t kbs(n_arm_samples, gr); - - colvec_type v(d); - v.setRandom(); - - colvec_type lmda = gr.thetas().array().exp(); - lmda[1] *= lmda[0]; - value_t expected = - n_arm_samples * - ((1. / lmda.array()).square() * v.array().square()).sum(); - - value_t actual = kbs.covar_quadform(0, v); - - EXPECT_NEAR(actual, expected, expected * tol); -} - -TEST_F(kbs_fixture, hessian_quadform_bound) { - size_t n_arm_samples = 32; - - gr_t gr(d, 1); - - // these values should not matter - // just set them to some dummy values - gr.thetas().setRandom(); - gr.radii().setRandom(); - - kbs_t kbs(n_arm_samples, gr); - - // v is used in this test, - // but any values should make this test work - colvec_type v(d); - v.setRandom(); - - mat_type A; - A << 2, 1, 1, 1; - A *= n_arm_samples; - - value_t expected = - v.dot(A * v) + v.squaredNorm() * 3 * std::sqrt(n_arm_samples); - value_t actual = kbs.hessian_quadform_bound(0, 0, v); - EXPECT_DOUBLE_EQ(actual, expected); -} - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/imprint/test/model/exponential/simple_log_rank_unittest.cpp b/imprint/test/model/exponential/simple_log_rank_unittest.cpp deleted file mode 100644 index 1685b6c8..00000000 --- a/imprint/test/model/exponential/simple_log_rank_unittest.cpp +++ /dev/null @@ -1,73 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace exponential { - -struct slr_fixture : base_fixture { - protected: - using value_t = double; - using gen_t = std::mt19937; - using uint_t = uint32_t; - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using hp_t = grid::HyperPlane; - - using model_t = SimpleLogRank; - using model_legacy_t = legacy::ExpControlkTreatment; - - size_t seed = 382; - gen_t gen; - value_t cv = 1.96; - colvec_type cvs; - const size_t n_params = 2; - const size_t n_gridpts = 2; - gr_t gr; - size_t n_arm_samples = 132; - value_t censor_time = 2; - - slr_fixture() : gen(seed), cvs(1), gr(n_params, n_gridpts) {} - - public: - void SetUp() override { - // set threshold - cvs[0] = cv; - - // initialize grid - gr.thetas().setRandom(); - auto& radii = gr.radii(); - radii.setRandom(); - radii.array() = (radii.array() + 2) / 2; // makes it > 0 - std::vector null_hypos; // no slicing - gr.create_tiles(null_hypos); - } -}; - -TEST_F(slr_fixture, simulate_test) { - // New model - model_t model(n_arm_samples, censor_time, cvs); - auto sgs = model.make_sim_global_state(gr); - auto ss = sgs.make_sim_state(seed); - colvec_type actual(gr.n_tiles()); - ss->simulate(actual); - - // Old model - model_legacy_t model_leg(n_arm_samples, censor_time, cvs); - model_leg.set_grid_range(gr); - auto ss_leg = model_leg.make_sim_state(seed); - colvec_type expected(gr.n_tiles()); - expected.setZero(); - ss_leg->simulate(expected); - - expect_eq_vec(actual, expected); -} - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/imprint/test/stat/log_rank_test_unittest.cpp b/imprint/test/stat/log_rank_test_unittest.cpp deleted file mode 100644 index b862fd09..00000000 --- a/imprint/test/stat/log_rank_test_unittest.cpp +++ /dev/null @@ -1,170 +0,0 @@ -#include -#include -#include - -namespace imprint { -namespace stat { -namespace { - -using value_t = double; -using uint_t = uint32_t; -using stat_t = LogRankTest; - -inline constexpr double tol = 2e-15; - -TEST(LogRankTestSuite, distinct_outcomes) { - size_t n_c = 20; - size_t n_t = 30; - - colvec_type control(n_c); - colvec_type treatment(n_t); - colvec_type censor_times(n_c + n_t); - colvec_type expected(n_c + n_t); - - // initialize data - control << 0.05541601363179369, 0.04387435311767324, 0.04209432757256784, - 0.13130642149327754, 0.87171591010661675, 0.37023849846880258, - 0.16250612466037723, 0.28803598124012464, 0.04427762436132266, - 0.41876998759723877, 0.22945795105994382, 0.37265990687588985, - 1.33210906885963132, 0.31753784020194742, 0.31172657212608890, - 0.56490068425421480, 0.19715345896235326, 0.10145542799901511, - 0.17719955478863020, 0.71198893496646976; - - treatment << 1.0842780206616767, 0.4968249791213689, 0.9558539266534452, - 0.1791767285180253, 0.1004039871544149, 0.9775548367886930, - 6.6873865745987864, 1.9819461246972483, 1.6838056676416289, - 2.4244684854274929, 0.0629535918690365, 0.5473144473570928, - 2.2305201508678905, 0.3437674831614287, 1.7275774954561653, - 0.5096975238867910, 1.2250241611978696, 1.2694977900761568, - 0.3970058291739337, 1.8241235425590265, 1.7369035536317814, - 2.1828744048550002, 2.1167320176576649, 0.9368942528207963, - 0.5089239803625836, 2.1843321894441714, 1.6799928852578678, - 0.8685376622550491, 3.3916087876341243, 0.7132473732093098; - - censor_times << 0.04209432757256784, 0.04387435311767324, - 0.04427762436132266, 0.05541601363179369, 0.06295359186903650, - 0.10040398715441493, 0.10145542799901511, 0.13130642149327754, - 0.16250612466037723, 0.17719955478863020, 0.17917672851802530, - 0.19715345896235326, 0.22945795105994382, 0.28803598124012464, - 0.31172657212608890, 0.31753784020194742, 0.34376748316142869, - 0.37023849846880258, 0.37265990687588985, 0.39700582917393373, - 0.41876998759723877, 0.49682497912136891, 0.50892398036258357, - 0.50969752388679102, 0.54731444735709278, 0.56490068425421480, - 0.71198893496646976, 0.71324737320930975, 0.86853766225504914, - 0.87171591010661675, 0.93689425282079630, 0.95585392665344515, - 0.97755483678869304, 1.08427802066167667, 1.22502416119786961, - 1.26949779007615682, 1.33210906885963132, 1.67999288525786783, - 1.68380566764162887, 1.72757749545616535, 1.73690355363178139, - 1.82412354255902653, 1.98194612469724829, 2.11673201765766494, - 2.18287440485500017, 2.18433218944417140, 2.23052015086789046, - 2.42446848542749294, 3.39160878763412432, 6.68738657459878638; - - expected << 1.500000000000000, 3.078203517587940, 4.742318400765956, - 6.501154647866653, 3.871061000791012, 2.245453063178386, - 3.558817062103615, 5.040798697615941, 6.677732943973894, - 8.467873796335361, 6.738456428063629, 8.479434880700760, - 10.388770496738115, 12.479923795131521, 14.771989940568323, - 17.290235777109910, 15.651207480235721, 18.248911859065245, - 21.131780727684685, 19.721736888718091, 22.773822013620290, - 21.535643959627233, 20.334593845284630, 19.169043515177890, - 18.037469254141662, 20.871625094169453, 24.108790809323697, - 23.355787844066363, 22.598117058655671, 26.111818706466686, - 25.656006567539976, 25.186649057402967, 24.702512233518405, - 24.202172747626026, 23.683975499482813, 23.145978480708962, - 26.771333904241825, 26.771333904241825, 26.771333904241811, - 26.771333904241811, 26.771333904241839, 26.771333904241839, - 26.771333904241811, 26.771333904241811, 26.771333904241811, - 26.771333904241779, 26.771333904241811, 26.771333904241811, - 26.771333904241779, 26.771333904241747; - - // end initialize data - - // Run my logrank test - sort_cols(control); - sort_cols(treatment); - stat_t lrt(control, treatment); - lrt.run(); - - // compare with expected - for (int i = 0; i < censor_times.size(); ++i) { - value_t actual = lrt.stat(censor_times[i], false); - EXPECT_NEAR(actual * actual, expected[i], tol * expected[i]); - } -} - -TEST(LogRankTestSuite, with_repeat_times) { - size_t n_c = 20; - size_t n_t = 30; - size_t n_unique = 39; - - colvec_type control(n_c); - colvec_type treatment(n_t); - colvec_type censor_times(n_unique); - colvec_type expected(n_unique); - - // initialize data - control << 0.04209432757256784, 0.04387435311767324, 0.04387435311767324, - 0.04387435311767324, 0.10145542799901511, 0.13130642149327754, - 0.16250612466037723, 0.16250612466037723, 0.16250612466037723, - 0.16250612466037723, 0.16250612466037723, 0.31172657212608890, - 0.31753784020194742, 0.37023849846880258, 0.37265990687588985, - 0.41876998759723877, 0.49682497912136891, 0.71198893496646976, - 0.87171591010661675, 1.33210906885963132; - - treatment << 0.0629535918690365, 0.1004039871544149, 0.16250612466037723, - 0.3437674831614287, 0.3970058291739337, 0.4968249791213689, - 0.4968249791213689, 0.4968249791213689, 0.4968249791213689, - 0.7132473732093098, 0.8685376622550491, 0.9368942528207963, - 0.9558539266534452, 0.9775548367886930, 1.0842780206616767, - 1.2250241611978696, 1.2694977900761568, 1.6799928852578678, - 1.6838056676416289, 1.7275774954561653, 31.7369035536317814, - 1.8241235425590265, 1.9819461246972483, 2.1167320176576649, - 2.1828744048550002, 2.1843321894441714, 2.2305201508678905, - 2.4244684854274929, 3.3916087876341243, 6.6873865745987864; - - censor_times << 0.04209432757256784, 0.04387435311767324, - 0.06295359186903650, 0.10040398715441493, 0.10145542799901511, - 0.13130642149327754, 0.16250612466037723, 0.31172657212608890, - 0.31753784020194742, 0.34376748316142869, 0.37023849846880258, - 0.37265990687588985, 0.39700582917393373, 0.41876998759723877, - 0.4968249791213689, 0.71198893496646976, 0.71324737320930975, - 0.86853766225504914, 0.87171591010661675, 0.93689425282079630, - 0.95585392665344515, 0.97755483678869304, 1.08427802066167667, - 1.22502416119786961, 1.26949779007615682, 1.33210906885963132, - 1.67999288525786783, 1.68380566764162887, 1.72757749545616535, - 1.73690355363178139, 1.82412354255902653, 1.98194612469724829, - 2.11673201765766494, 2.18287440485500017, 2.18433218944417140, - 2.23052015086789046, 2.42446848542749294, 3.39160878763412432, - 6.68738657459878638; - - expected << 1.500000000000000, 6.436308967534842, 3.796457677824932, - 2.179541174565480, 3.488114424032636, 4.967559009746862, - 12.052353255752125, 14.347605006197698, 16.872129814887373, - 15.225288158872281, 17.828209952644901, 20.719866629570301, - 19.301340421066527, 22.362693766896985, 21.212381923342569, - 24.541159204489787, 23.750182479812096, 22.955575460583653, - 26.568729040321980, 26.090557639595716, 25.598610993042723, - 25.091636662412512, 24.568190450723225, 24.026593614875935, - 23.464877156586645, 27.187653620156468, 27.187653620156468, - 27.187653620156468, 27.187653620156446, 27.187653620156446, - 27.187653620156446, 27.187653620156446, 27.187653620156446, - 27.187653620156446, 27.187653620156446, 27.187653620156478, - 27.187653620156446, 27.187653620156446, 27.187653620156414; - // end initialize data - - // Run my logrank test - sort_cols(control); - sort_cols(treatment); - stat_t lrt(control, treatment); - lrt.run(); - - // compare with expected - for (int i = 0; i < censor_times.size(); ++i) { - value_t actual = lrt.stat(censor_times[i], false); - EXPECT_NEAR(actual * actual, expected[i], tol * expected[i]); - } -} - -} // namespace -} // namespace stat -} // namespace imprint diff --git a/imprint/test/testutil/base_fixture.hpp b/imprint/test/testutil/base_fixture.hpp deleted file mode 100644 index 2a9ef057..00000000 --- a/imprint/test/testutil/base_fixture.hpp +++ /dev/null @@ -1,96 +0,0 @@ -#pragma once -#include - -#include "gtest/gtest.h" - -namespace imprint { - -struct base_fixture : ::testing::Test { - protected: - using value_t = double; - using index_t = Eigen::Index; -}; - -// Useful tools to test vector equality -#define expect_double_eq_vec(v1, v2) \ - { \ - EXPECT_EQ(v1.size(), v2.size()); \ - for (index_t i = 0; i < v1.size(); ++i) { \ - EXPECT_DOUBLE_EQ(v1[i], v2[i]); \ - } \ - } - -#define expect_float_eq_vec(v1, v2) \ - { \ - EXPECT_EQ(v1.size(), v2.size()); \ - for (index_t i = 0; i < v1.size(); ++i) { \ - EXPECT_FLOAT_EQ(static_cast(v1[i]), \ - static_cast(v2[i])); \ - } \ - } - -#define expect_eq_vec(v1, v2) \ - { \ - EXPECT_EQ(v1.size(), v2.size()); \ - for (index_t i = 0; i < v1.size(); ++i) { \ - EXPECT_EQ(v1[i], v2[i]); \ - } \ - } - -#define expect_eq_mat(m1, m2) \ - { \ - EXPECT_EQ(m1.rows(), m2.rows()); \ - EXPECT_EQ(m1.cols(), m2.cols()); \ - for (index_t j = 0; j < m1.cols(); ++j) { \ - for (index_t i = 0; i < m1.rows(); ++i) { \ - EXPECT_EQ(m1(i, j), m2(i, j)); \ - } \ - } \ - } - -#define expect_double_eq_mat(m1, m2) \ - { \ - EXPECT_EQ(m1.rows(), m2.rows()); \ - EXPECT_EQ(m1.cols(), m2.cols()); \ - for (index_t j = 0; j < m1.cols(); ++j) { \ - for (index_t i = 0; i < m1.rows(); ++i) { \ - EXPECT_DOUBLE_EQ(m1(i, j), m2(i, j)); \ - } \ - } \ - } - -#define expect_float_eq_mat(m1, m2) \ - { \ - EXPECT_EQ(m1.rows(), m2.rows()); \ - EXPECT_EQ(m1.cols(), m2.cols()); \ - for (index_t j = 0; j < m1.cols(); ++j) { \ - for (index_t i = 0; i < m1.rows(); ++i) { \ - EXPECT_FLOAT_EQ(static_cast(m1(i, j)), \ - static_cast(m2(i, j))); \ - } \ - } \ - } - -#define expect_near_vec(v1, v2, tol) \ - { \ - EXPECT_EQ(v1.size(), v2.size()); \ - for (index_t i = 0; i < v1.size(); ++i) { \ - if (v1(i) == std::numeric_limits::infinity() && \ - v2(i) == std::numeric_limits::infinity()) \ - continue; \ - EXPECT_NEAR(v1[i], v2[i], tol); \ - } \ - } - -#define expect_near_mat(m1, m2, tol) \ - { \ - EXPECT_EQ(m1.rows(), m2.rows()); \ - EXPECT_EQ(m1.cols(), m2.cols()); \ - for (index_t j = 0; j < m1.cols(); ++j) { \ - for (index_t i = 0; i < m1.rows(); ++i) { \ - EXPECT_NEAR(m1(i, j), m2(i, j), tol); \ - } \ - } \ - } - -} // namespace imprint diff --git a/imprint/test/testutil/eigen_ext.hpp b/imprint/test/testutil/eigen_ext.hpp deleted file mode 100644 index 6d89f612..00000000 --- a/imprint/test/testutil/eigen_ext.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once -#include - -namespace imprint { - -template -auto make_colvec(std::initializer_list l) { - colvec_type out(l.size()); - auto it = l.begin(); - for (int i = 0; i < out.size(); ++i, ++it) { - out[i] = (*it); - } - return out; -} - -} // namespace imprint diff --git a/imprint/test/testutil/grid/tile.hpp b/imprint/test/testutil/grid/tile.hpp deleted file mode 100644 index 3d2f0951..00000000 --- a/imprint/test/testutil/grid/tile.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { -namespace grid { - -template -inline constexpr bool check_vertices(const Tile& t1, const Tile& t2) { - auto it1 = t1.begin(); - auto ed1 = t1.end(); - auto it2 = t2.begin(); - auto ed2 = t2.end(); - - if (std::distance(it1, ed1) != std::distance(it2, ed2)) return false; - for (; it1 != ed1; ++it1) { - if (std::find_if(it2, ed2, [&](const auto& x) { - return (it1->array() == x.array()).all(); - }) == ed2) - return false; - } - - return true; -} - -template -inline constexpr bool operator==(const Tile& t1, const Tile& t2) { - // check center and radius - if ((t1.center().array() != t2.center().array()).any()) return false; - if ((t1.radius().array() != t2.radius().array()).any()) return false; - - return check_vertices(t1, t2); -} - -} // namespace grid -} // namespace imprint diff --git a/imprint/test/testutil/model/base.hpp b/imprint/test/testutil/model/base.hpp deleted file mode 100644 index 57bc04af..00000000 --- a/imprint/test/testutil/model/base.hpp +++ /dev/null @@ -1,38 +0,0 @@ -#pragma once -#include -#include -#include - -namespace imprint { - -/* - * Base class for all control + k treatment designs. - */ -struct ControlkTreatmentBase { - /* - * @param n_arms number of arms (including control). - * @param ph2_size phase II number of patients in each arm. - * @param n_samples number of total patients in each arm (including - * phase II) for phase II and phase III. - */ - ControlkTreatmentBase(size_t n_arms, size_t ph2_size, size_t n_samples) - : n_arms_(n_arms), ph2_size_(ph2_size), n_samples_(n_samples) {} - - constexpr size_t n_samples() const { return n_samples_; } - constexpr size_t n_arms() const { return n_arms_; } - - /* Helper static interface */ - template - static void uniform(size_t m, size_t n, GenType&& gen, UnifType&& unif, - OutType&& out) { - out = Eigen::MatrixXd::NullaryExpr( - m, n, [&](auto, auto) { return unif(gen); }); - } - - protected: - size_t n_arms_; - size_t ph2_size_; - size_t n_samples_; -}; - -} // namespace imprint diff --git a/imprint/test/testutil/model/binomial/simple_selection.hpp b/imprint/test/testutil/model/binomial/simple_selection.hpp deleted file mode 100644 index 1dcf1f0d..00000000 --- a/imprint/test/testutil/model/binomial/simple_selection.hpp +++ /dev/null @@ -1,239 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace binomial { -namespace legacy { - -/* - * Legacy BCKT class for testing purposes. - */ -struct BinomialControlkTreatment : ControlkTreatmentBase { - private: - using base_t = ControlkTreatmentBase; - using static_interface_t = base_t; - - public: - struct StateType { - private: - using outer_t = BinomialControlkTreatment; - const outer_t& outer_; - - public: - StateType(const outer_t& outer) : outer_(outer), unif_dist_(0., 1.) {} - - /* - * Generate RNG for the simulation. - * Generate U(0,1) for each patient in each arm. - */ - template - void gen_rng(GenType&& gen) { - static_interface_t::uniform(outer_.n_samples(), outer_.n_arms(), - gen, unif_dist_, unif_); - } - - /* - * Generates sufficient statistic for each arm under all possible grid - * points. - */ - void gen_suff_stat() { - size_t k = outer_.n_arms() - 1; - size_t n = outer_.n_samples(); - size_t ph2_size = outer_.ph2_size_; - size_t ph3_size = n - ph2_size; - size_t d = outer_.prob_.size(); - - // grab the block of uniforms associated with Phase II/III for - // treatments. - auto ph2_unif = unif_.block(0, 1, ph2_size, k); - auto ph3_unif = unif_.block(ph2_size, 1, ph3_size, k); - - // grab control uniforms - auto control_unif = unif_.col(0); - - // sort each column of each block. - sort_cols(ph2_unif); - sort_cols(ph3_unif); - sort_cols(control_unif); - - suff_stat_.resize(d, k + 1); - Eigen::Map control_counts(suff_stat_.data(), d); - Eigen::Map ph3_counts(suff_stat_.col(1).data(), d, - k); - ph2_counts_.resize(d, k); - - // output cumulative count of uniforms < outer_.prob_[k] into counts - // object. - accum_count(ph2_unif, outer_.prob_, ph2_counts_); - accum_count(ph3_unif, outer_.prob_, ph3_counts); - accum_count(control_unif, outer_.prob_, control_counts); - - suff_stat_.block(0, 1, d, k) += ph2_counts_; - } - - /* - * @param mean_idxer indexer of 1-d grid to get current grid - * point (usually dAryInt). - */ - template - auto test_stat(const MeanIdxerType& mean_idxer) const { - auto& idx = mean_idxer(); - - // Phase II - int a_star = - -1; // selected arm with highest Phase II response count. - int max_count = -1; // maximum Phase II response count. - for (int j = 1; j < idx.size(); ++j) { - int prev_count = max_count; - max_count = std::max(prev_count, ph2_counts_(idx[j], j - 1)); - a_star = (max_count != prev_count) ? j : a_star; - } - - // Phase III - - // Only want false-rejection for Type-I. - // Since the test is one-sided (upper), set to -inf if selected arm - // is not in null. - bool is_selected_arm_in_null = - outer_.hypos_[a_star - 1](mean_idxer); - if (!is_selected_arm_in_null) - return -std::numeric_limits::infinity(); - - // pairwise z-test - auto n = outer_.n_samples(); - auto p_star = - static_cast(suff_stat_(idx[a_star], a_star)) / n; - auto p_0 = static_cast(suff_stat_(idx[0], 0)) / n; - auto z = (p_star - p_0); - auto var = (p_star * (1. - p_star) + p_0 * (1. - p_0)); - z = (var <= 0) ? std::copysign(1.0, z) * - std::numeric_limits::infinity() - : z / std::sqrt(var / n); - - return z; - } - - /* - * Computes the gradient of the log-likelihood ratio: - * T - \nabla_\eta A(\eta) - * where T is the sufficient statistic (vector), A is the log-partition - * function, and \eta is the natural parameter. - * - * @param arm arm index. - * @param mean_idxer indexer of 1-d grid to get current grid - * point (usually dAryInt). - */ - template - auto grad_lr(size_t arm, const MeanIdxerType& mean_idxer) const { - auto& bits = mean_idxer(); - return suff_stat_(bits[arm], arm) - - outer_.n_samples() * outer_.prob_[bits[arm]]; - } - - private: - std::uniform_real_distribution unif_dist_; - Eigen::MatrixXd unif_; // uniform rng - Eigen::MatrixXi suff_stat_; // sufficient statistic table for each - // prob_ value and arm - Eigen::MatrixXi ph2_counts_; // sufficient statistic table only looking - // at phase 2 and treatment arms - }; - - using state_t = StateType; - - // @param n_arms number of arms. - // @param ph2_size phase II size. - // @param n_samples number of patients in each arm. - // @param prob vector of (center) probability param to binomial. - // MUST be sorted ascending. - // @param prob_endpt each column is lower and upper of the grid centered - // at prob. - // @param hypos hypos[i](p) returns true if and only if - // ith arm at prob value p is considered "in the null - // space". - template - BinomialControlkTreatment( - size_t n_arms, size_t ph2_size, size_t n_samples, const ProbType& prob, - const ProbEndptType& prob_endpt, - const std::vector >& hypos) - : base_t(n_arms, ph2_size, n_samples), - prob_(prob.data(), prob.size()), - prob_endpt_(prob_endpt.data(), prob_endpt.rows(), prob_endpt.cols()), - hypos_(hypos) {} - - auto n_means() const { return prob_.size(); } - - constexpr auto n_total_params() const { - return ipow(prob_.size(), n_arms()); - } - - /* - * Computes the trace of the covariance matrix. - * TODO: For now, this is all what upper-bound object requires, but may need - * generalizing. - * - * @param mean_idxer indexer of 1-d grid to get current grid point - * (usually dAryInt). - */ - template - auto tr_cov(const MeanIdxerType& mean_idxer) const { - const auto& bits = mean_idxer(); - const auto& p = prob_; - double var = 0; - std::for_each(bits.data(), bits.data() + bits.size(), - [&](auto k) { var += p[k] * (1. - p[k]); }); - return var * n_samples(); - } - - /* - * Computes the trace of the supremum (in the grid) of covariance matrix. - * TODO: For now, this is all what upper-bound object requires, but may need - * generalizing. - * - * @param mean_idxer indexer of 1-d grid to get current grid point - * (usually dAryInt). - */ - template - auto tr_max_cov(const MeanIdxerType& mean_idxer) const { - double hess_bd = 0; - const auto& bits = mean_idxer(); - std::for_each(bits.data(), bits.data() + bits.size(), [&](auto k) { - auto col_k = prob_endpt_.col(k); - if (col_k[0] <= 0.5 && 0.5 <= col_k[1]) { - hess_bd += 0.25; - } else { - auto lower = col_k[0] - 0.5; // shift away center - auto upper = col_k[1] - 0.5; // shift away center - // max of p(1-p) occurs for whichever p is closest to 0.5. - bool max_at_upper = (std::abs(upper) < std::abs(lower)); - auto max_endpt = col_k[max_at_upper]; - hess_bd += max_endpt * (1. - max_endpt); - } - }); - return hess_bd * n_samples(); - } - - private: - Eigen::Map - prob_; // sorted (ascending) probability values - Eigen::Map - prob_endpt_; // each column is endpt (in p-space) of the grid - // centered at the corresponding value in prob_ - const std::vector >& - hypos_; // list of null-hypothesis checker -}; - -} // namespace legacy -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/imprint/test/testutil/model/exponential/simple_log_rank.hpp b/imprint/test/testutil/model/exponential/simple_log_rank.hpp deleted file mode 100644 index 66de2d1b..00000000 --- a/imprint/test/testutil/model/exponential/simple_log_rank.hpp +++ /dev/null @@ -1,333 +0,0 @@ -#pragma once -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { -namespace exponential { -namespace legacy { - -template -struct ExpControlkTreatment : ControlkTreatmentBase, - ModelBase, - SimGlobalStateBase { - private: - using static_interface_t = ControlkTreatmentBase; - - public: - using value_t = ValueType; - using uint_t = UIntType; - using grid_range_t = GridRangeType; - using base_t = static_interface_t; - using model_base_t = ModelBase; - using gen_t = std::mt19937; - using sgs_t = SimGlobalStateBase; - - struct StateType : sgs_t::sim_state_t { - private: - using outer_t = ExpControlkTreatment; - const outer_t& outer_; - - public: - StateType(const outer_t& outer, size_t seed) - : outer_(outer), - exp_dist_(1.0), - exp_(outer.n_samples(), outer.n_arms()), - logrank_cum_sum_(2 * outer.n_samples() + 1), - v_cum_sum_(2 * outer.n_samples() + 1), - gen_(seed) {} - - void simulate(Eigen::Ref> rej_len) override { - // generate data - exp_ = - exp_.NullaryExpr(outer_.n_samples(), outer_.n_arms(), - [&](auto, auto) { return exp_dist_(gen_); }); - - // generate suff stat - suff_stat_ = exp_.colwise().sum(); - - // sort for log-rank stuff - sort_cols(exp_); - - value_t hzrd_rate_prev = 1.0; // hazard rate used previously - bool do_logrank_update = true; // true iff exp_ changed - const auto& gr_view = outer_.grid_range(); - - size_t pos = 0; - for (size_t i = 0; i < gr_view.n_gridpts(); ++i) { - if (gr_view.is_regular(i)) { - rej_len[pos] = (likely(gr_view.check_null(pos, 0))) - ? rej_len_internal(i, hzrd_rate_prev, - do_logrank_update) - : 0; - ++pos; - continue; - } - - bool internal_called = false; - size_t rej = 0; - for (size_t t = 0; t < gr_view.n_tiles(i); ++t, ++pos) { - bool is_null = gr_view.check_null(pos, 0); - if (!internal_called && is_null) { - rej = rej_len_internal(i, hzrd_rate_prev, - do_logrank_update); - internal_called = true; - } - rej_len[pos] = is_null ? rej : 0; - } - } - } - - void score(size_t gridpt, - Eigen::Ref> out) const override { - auto hazard_rate = outer_.hzrd_rate(gridpt); - for (size_t arm = 0; arm < 2; ++arm) { - auto mean = (arm == 1) ? 1. / hazard_rate : 1.; - auto lambda_control = outer_.lmda_control(gridpt); - out[arm] = (suff_stat_(arm) - outer_.n_samples() * mean) / - lambda_control; - } - } - - private: - IMPRINT_STRONG_INLINE - size_t rej_len_internal(size_t i, value_t& hzrd_rate_prev, - bool& do_logrank_update) { - auto hzrd_rate_curr = outer_.hzrd_rate(i); - auto exp_control = exp_.col(0); // assumed to be sorted - auto exp_treatment = exp_.col(1); // assumed to be sorted - - // Since log-rank test only depends on hazard-rate, - // we can reuse the same pre-computed quantities for all lambdas. - // We only update internal quantities if we see a new hazard rate. - // Performance is best if the gridpoints are grouped by - // the same hazard rate so that the internals are not updated often. - if (hzrd_rate_curr != hzrd_rate_prev) { - auto hzrd_rate_ratio = (hzrd_rate_prev / hzrd_rate_curr); - - // compute treatment ~ Exp(hzrd_rate_curr) - exp_treatment *= hzrd_rate_ratio; - suff_stat_[1] *= hzrd_rate_ratio; - - // if hzrd rate was different from previous run, - // save the current one as the new "previous" - hzrd_rate_prev = hzrd_rate_curr; - - // since exp_ has been updated - do_logrank_update = true; - } - - // compute log-rank information only if exp_ changed - if (do_logrank_update) { - // mark as not needing update - do_logrank_update = false; - - logrank_cum_sum_[0] = 0.0; - v_cum_sum_[0] = 0.0; - - Eigen::Matrix N_j; - value_t O_1j = 0.0; - N_j.array() = outer_.n_samples(); - int cr_idx = 0, tr_idx = 0, - cs_idx = 0; // control, treatment, and cum_sum index - - while (cr_idx < exp_control.size() && - tr_idx < exp_treatment.size()) { - bool failed_in_treatment = - (exp_treatment[tr_idx] < exp_control[cr_idx]); - tr_idx += failed_in_treatment; - cr_idx += (1 - failed_in_treatment); - O_1j = failed_in_treatment; - - auto N = N_j.sum(); - auto E_1j = N_j[1] / N; - logrank_cum_sum_[cs_idx + 1] = - logrank_cum_sum_[cs_idx] + (O_1j - E_1j); - v_cum_sum_[cs_idx + 1] = - v_cum_sum_[cs_idx] + E_1j * (1 - E_1j); - - --N_j[failed_in_treatment]; - O_1j = 0.0; - ++cs_idx; - } - - size_t tot = logrank_cum_sum_.size(); - logrank_cum_sum_.tail(tot - cs_idx).array() = - logrank_cum_sum_[cs_idx]; - v_cum_sum_.tail(tot - cs_idx).array() = v_cum_sum_[cs_idx]; - } - - // compute the log-rank statistic given the treatment lambda value. - - auto lambda_control = outer_.lmda_control(i); - auto censor_dilated_curr = outer_.censor_time_ * lambda_control; - auto it_c = std::upper_bound( - exp_control.data(), exp_control.data() + exp_control.size(), - censor_dilated_curr); - auto it_t = - std::upper_bound(exp_treatment.data(), - exp_treatment.data() + exp_treatment.size(), - censor_dilated_curr); - // Y_1 Y_2 ... - // T C T (censor) T T T C - // idx = (2-1) + (3-1) = 3; - size_t idx = std::distance(exp_control.data(), it_c) + - std::distance(exp_treatment.data(), it_t); - auto z = (v_cum_sum_[idx] <= 0.0) - ? std::copysign(1., logrank_cum_sum_[idx]) * - std::numeric_limits::infinity() - : logrank_cum_sum_[idx] / std::sqrt(v_cum_sum_[idx]); - - auto it = std::find_if(outer_.critical_values().begin(), - outer_.critical_values().end(), - [&](auto t) { return z > t; }); - return std::distance(it, outer_.critical_values().end()); - } - - std::exponential_distribution exp_dist_; - - mat_type - exp_; // exp_(i,j) = - // Exp(1) draw for patient i in group j=0 (and sorted) - // Exp(hzrd_rate) draw for patient i in group j=1 (and - // sorted) - // We do not divide by lambda_control - // because log-rank only depends on the hazard rate. - - Eigen::Matrix - suff_stat_; // sufficient statistic for each arm - // - sum of Exp(1) for group 0 (control) - // - sum of Exp(hzrd_rate) for group 1 (treatment) - colvec_type logrank_cum_sum_; - colvec_type v_cum_sum_; - gen_t gen_; - }; - - using state_t = StateType; - - // default constructor is the base constructor - using base_t::base_t; - - // @param n_samples number of patients in each arm. - // @param censor_time censor time. - ExpControlkTreatment( - size_t n_samples, value_t censor_time, - const Eigen::Ref>& thresholds) - : base_t(2, 0, n_samples), - model_base_t(thresholds), - max_eta_hess_cov_(3 * std::sqrt(n_samples)), - censor_time_(censor_time) { - // temporarily const-cast just to initialize the values - auto& max_cov_nc_ = const_cast&>(max_cov_); - max_cov_nc_.setOnes(); - max_cov_nc_(0, 0) = 2; - max_cov_nc_ *= n_samples; - } - - /* - * Sets the grid range and caches any results - * to speed-up the simulations. - * - * @param grid_range range of grid points. - * 0th dim = log(lambda_control) - * 1st dim = hazard rate (log(lambda_treatment / - * lambda_control)) - * - */ - void set_grid_range(const grid_range_t& grid_range) { - grid_range_ = &grid_range; - - n_gridpts_ = grid_range.n_gridpts(); - - buff_.resize(n_arms(), n_gridpts_); - - buff_.array() = grid_range.thetas().array().exp(); - } - - /* - * Create a state object associated with the current model instance. - */ - std::unique_ptr make_sim_state( - size_t seed) const override { - return std::make_unique(*this, seed); - } - - value_t cov_quad(size_t j, - const Eigen::Ref>& v) const { - auto hr = hzrd_rate(j); - auto mean_1 = 1. / lmda_control(j); - return n_samples() * mean_1 * mean_1 * - (v[1] * v[1] + v[0] * v[0] / (hr * hr)); - } - - value_t max_cov_quad( - size_t, const Eigen::Ref>& v) const { - return v.dot(max_cov_ * v); - } - - /* - * Deta = [ - * [e^{\theta_1} 0] - * [e^{\theta_1 + \theta_2} e^{\theta_1 + \theta_2}] - * ] - * \theta_1 = \log(\lambda_c) - * \theta_2 = \log(\lambda_t / \lambda_c) - */ - void eta_transform(size_t j, - const Eigen::Ref>& v, - colvec_type& out) const { - value_t lmda_c = lmda_control(j); - value_t lmda_t = lmda_c * hzrd_rate(j); - - mat_type deta; - deta(0, 0) = lmda_c; - deta(0, 1) = 0; - deta.row(1).array() = lmda_t; - - out = deta * v; - } - - value_t max_eta_hess_cov(size_t) const { return max_eta_hess_cov_; } - - /* - * Sets the internal structure with the parameters. - * Users should not interact with this method. - * It is exposed purely for internal purposes (pickling). - */ - void set_internal(uint_t n_gridpts, const mat_type& buff) { - n_gridpts_ = n_gridpts; - buff_ = buff; - } - - /* Getter routines mainly for pickling */ - auto censor_time__() const { return censor_time_; } - auto n_gridpts__() const { return n_gridpts_; } - const auto& buff__() const { return buff_; } - - private: - auto lmda_control(size_t j) const { return buff_(0, j); } - auto hzrd_rate(size_t j) const { return buff_(1, j); } - const auto& grid_range() const { return *grid_range_; } - - const grid_range_t* grid_range_; - const value_t max_eta_hess_cov_; // caches max_eta_hess_cov() result - const value_t censor_time_; - uint_t n_gridpts_ = 0; - mat_type - buff_; // buff_(0,j) = lambda of control at jth gridpoint. - // buff_(1,j) = hazard rate at jth gridpoint. - const mat_type max_cov_; -}; - -} // namespace legacy -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/imprint/test/util/algorithm_unittest.cpp b/imprint/test/util/algorithm_unittest.cpp deleted file mode 100644 index cf6f78fd..00000000 --- a/imprint/test/util/algorithm_unittest.cpp +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include - -namespace imprint { - -struct algorithm_fixture - : base_fixture, - testing::WithParamInterface > { - protected: - Eigen::MatrixXd x; - Eigen::VectorXd thr; - - algorithm_fixture() { - size_t seed, n, p, d; - std::tie(seed, n, p, d) = GetParam(); - srand(seed); - x.setRandom(n, p); - thr.setRandom(d); - sort_cols(thr); - } -}; - -TEST_P(algorithm_fixture, sort_cols_test) { - Eigen::MatrixXd expected = x; - for (int i = 0; i < x.cols(); ++i) { - auto expected_i = expected.col(i); - std::sort(expected_i.data(), expected_i.data() + expected_i.size()); - } - sort_cols(x); - expect_double_eq_mat(x, expected); -} - -TEST_P(algorithm_fixture, accum_count_test) { - Eigen::MatrixXi actual(thr.size(), x.cols()); - Eigen::MatrixXi expected(thr.size(), x.cols()); - for (int j = 0; j < expected.cols(); ++j) { - for (int i = 0; i < expected.rows(); ++i) { - expected(i, j) = (x.col(j).array() < thr(i)).count(); - } - } - - sort_cols(x); - accum_count(x, thr, actual); - - expect_eq_mat(actual, expected); -} - -TEST_P(algorithm_fixture, accum_count_map_test) { - Eigen::MatrixXi actual(thr.size(), x.cols()); - Eigen::MatrixXi expected(thr.size(), x.cols()); - for (int j = 0; j < expected.cols(); ++j) { - for (int i = 0; i < expected.rows(); ++i) { - expected(i, j) = (x.col(j).array() < thr(i)).count(); - } - } - - sort_cols(x); - Eigen::Map thr_map(thr.data(), thr.size()); - Eigen::Map actual_map(actual.data(), actual.rows(), - actual.cols()); - accum_count(x, thr_map, actual_map); - - expect_eq_mat(actual, expected); -} - -INSTANTIATE_TEST_SUITE_P( - AlgorithmSuite, algorithm_fixture, - - // combination of inputs: (seed, n, p) - testing::Combine(testing::Values(10, 23, 145, 241, 412, 23968, 31), - testing::Values(1, 5, 10), testing::Values(1, 5, 10), - testing::Values(1, 2, 3, 5, 10, 15, 20))); - -} // namespace imprint diff --git a/imprint/test/util/d_ary_int_unittest.cpp b/imprint/test/util/d_ary_int_unittest.cpp deleted file mode 100644 index df38b02d..00000000 --- a/imprint/test/util/d_ary_int_unittest.cpp +++ /dev/null @@ -1,68 +0,0 @@ -#include -#include -#include // separately unittested -#include - -namespace imprint { - -struct d_ary_int_fixture : base_fixture, - testing::WithParamInterface > { - protected: - int d, k; - - d_ary_int_fixture() { std::tie(d, k) = GetParam(); } -}; - -TEST_P(d_ary_int_fixture, d_ary_int_ctor) { - dAryInt i(d, k); - auto actual = (i().array() == 0).count(); - auto expected = k; - EXPECT_EQ(actual, expected); -} - -TEST_P(d_ary_int_fixture, d_ary_int_overflow) { - dAryInt i(d, k); - for (int j = 0; j < ipow(d, k); ++j) { - ++i; - } - auto actual = (i().array() == 0).count(); - auto expected = k; - EXPECT_EQ(actual, expected); -} - -TEST_P(d_ary_int_fixture, d_ary_int_incr_5) { - dAryInt i(d, k); - if (d <= 5) return; - for (int j = 0; j < d - 5; ++j) { - ++i; - } - auto& actual = i(); - auto expected = actual; - expected.setZero(); - if (expected.size() < 1) return; - expected(expected.size() - 1) = d - 5; - expect_eq_vec(actual, expected); -} - -TEST_P(d_ary_int_fixture, d_ary_int_incr_10) { - dAryInt i(d, k); - if (d <= 10) return; - for (int j = 0; j < d + 10; ++j) { - ++i; - } - auto& actual = i(); - auto expected = actual; - expected.setZero(); - if (expected.size() < 2) return; - expected(expected.size() - 1) = 10; - expected(expected.size() - 2) = 1; - expect_eq_vec(actual, expected); -} - -INSTANTIATE_TEST_SUITE_P(MathSuite, d_ary_int_fixture, - - // combination of inputs: (d, k) - testing::Combine(testing::Values(0, 1, 10, 20), - testing::Values(0, 1, 2, 3, 4))); - -} // namespace imprint diff --git a/imprint/test/util/math_unittest.cpp b/imprint/test/util/math_unittest.cpp deleted file mode 100644 index 77406c01..00000000 --- a/imprint/test/util/math_unittest.cpp +++ /dev/null @@ -1,120 +0,0 @@ -#include -#include -#include -#include - -namespace imprint { - -// TEST ipow -struct ipow_fixture : base_fixture, - testing::WithParamInterface> { - protected: - double base; - int exp; - - ipow_fixture() { std::tie(base, exp) = GetParam(); } -}; - -TEST_P(ipow_fixture, ipow_test) { - auto actual = ipow(base, exp); - auto expected = std::pow(base, static_cast(exp)); - EXPECT_DOUBLE_EQ(actual, expected); -} - -INSTANTIATE_TEST_SUITE_P(MathSuite, ipow_fixture, - - // combination of inputs: (seed, n, p) - testing::Combine(testing::Values(-2., 1., 0., 1., 2.), - testing::Values(-3, -2, -1, 0, 1, 2, - 3))); - -TEST(MathSuite, normal_cdf) { - Eigen::Vector x = {-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5}; - - // scipy.stats.norm.cdf(np.arange(-5, 6, 1)) - Eigen::Vector want = { - 2.86651572e-07, 3.16712418e-05, 1.34989803e-03, 2.27501319e-02, - 1.58655254e-01, 5.00000000e-01, 8.41344746e-01, 9.77249868e-01, - 9.98650102e-01, 9.99968329e-01, 9.99999713e-01}; - auto got = normal_cdf(x); - for (int i = 0; i < 11; ++i) { - EXPECT_NEAR(got(i), want(i), 1e-8); - } -}; -// TEST qnorm -struct qnorm_fixture : base_fixture, - testing::WithParamInterface> { - protected: - static constexpr double tol = 2e-9; -}; - -TEST_P(qnorm_fixture, qnorm_test) { - double p, expected; - std::tie(p, expected) = GetParam(); - double actual = qnorm(p); - EXPECT_NEAR(actual, expected, tol); -} - -INSTANTIATE_TEST_SUITE_P( - MathSuite, qnorm_fixture, - testing::Values(std::make_pair(0.01, -2.3263478740408407575), - std::make_pair(0.1, -1.2815515655446008125), - std::make_pair(0.3, -0.52440051270804066696), - std::make_pair(0.5, 0.), - std::make_pair(0.8, 0.84162123357291440673), - std::make_pair(0.9, 1.2815515655446008125), - std::make_pair(0.99, 2.3263478740408407575))); - -TEST(MathSuite, invgamma_pdf) { - const double alpha_prior = 0.0005; - const double beta_prior = 0.000005; - Eigen::Vector x = { - 1.0144596452884776e-08, 1.0785099797992792e-08, 1.2037950072042833e-08, - 1.4100869129550908e-08, 1.7323663774844695e-08, 2.2304299894494958e-08, - 3.00654659174565e-08, 4.2381479416476284e-08, 6.239305748305179e-08, - 9.578524408624434e-08, 1.530886238340002e-07, 2.5426192914231663e-07, - 4.379872035345178e-07, 7.808532796832305e-07, 1.4375862176725688e-06, - 2.726649565774876e-06, 5.314717722088802e-06, 1.0618548564125005e-05, - 2.16880888901994e-05, 4.515945064572312e-05, 9.55905442322199e-05, - 0.00020509741997061919, 0.00044473545658897185, 0.0009717155249005231, - 0.0021328442340584966, 0.004688574927467345, 0.010291077731853369, - 0.022485277150371356, 0.04875731738328307, 0.10461285768712429, - 0.22143759184428968, 0.461082580887007, 0.9417482944689066, - 1.8815674741178463, 3.6675046641566267, 6.956104529292073, - 12.806503167991673, 22.83171727233327, 39.32952146525543, - 65.32164016866048, 104.40021420205447, 160.27424209362246, - 235.95212195712938, 332.6075181224376, 448.3440434043004, - 577.2450983792908, 709.1761442593054, 830.7062199256145, - 927.2051429566812, 985.7464559032629}; - - Eigen::Vector want = { - 4.386151925929204e-210, 2.1260113143039648e-197, - 1.7150951887795844e-176, 3.5931981000969017e-150, - 1.3016829277868028e-121, 9.89031055009593e-94, - 9.938775676043121e-69, 6.864402811272085e-48, - 1.2641582357022606e-31, 1.1179876666096545e-19, - 2.1404023212123916e-11, 5.677585568252689e-06, - 0.01259848073322265, 1.0617742488988657, - 10.74566054518207, 29.323046023785686, - 36.73031154858327, 29.40143359271028, - 18.299218185268018, 9.903396205257428, - 4.958190464108896, 2.375423489081816, - 1.1095230246358416, 0.5107132797985644, - 0.23323998830413245, 0.10619528098799831, - 0.04839122837587901, 0.02214491275706143, - 0.010209779947518491, 0.004756955900595907, - 0.002246523464732018, 0.0010785230384441366, - 0.0005278622751423179, 0.00026411102450984666, - 0.0001354538297633819, 7.13932489367365e-05, - 3.87668304416398e-05, 2.173836109706042e-05, - 1.2616202875274078e-05, 7.5941662100922005e-06, - 4.750441558540105e-06, 3.0937026089960848e-06, - 2.1010405401837134e-06, 1.4902245259283024e-06, - 1.10536962472565e-06, 8.584278581268307e-07, - 6.986589754076235e-07, 5.963998866518745e-07, - 5.343001778154085e-07, 5.025538816079104e-07}; - auto got = invgamma_pdf(x, alpha_prior, beta_prior); - EXPECT_TRUE(want.isApprox(got)); -}; - -} // namespace imprint diff --git a/imprint/test/util/progress_bar_unittest.cpp b/imprint/test/util/progress_bar_unittest.cpp deleted file mode 100644 index 7450acda..00000000 --- a/imprint/test/util/progress_bar_unittest.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include - -#include - -namespace imprint { - -struct pb_fixture : ::testing::Test { - protected: -}; - -TEST_F(pb_fixture, ctor) { ProgressBar pb(10); } - -TEST_F(pb_fixture, update_test) { - int n = 10000; - ProgressBar pb(n); - for (int i = 0; i < n; ++i) { - pb.update(std::cout); - } -} - -TEST_F(pb_fixture, update_test_bar_length) { - int n = 10000; - ProgressBar pb(n, 38); - for (int i = 0; i < n; ++i) { - pb.update(std::cout); - } -} - -} // namespace imprint diff --git a/imprint/test/util/types_unittest.cpp b/imprint/test/util/types_unittest.cpp deleted file mode 100644 index 1879622f..00000000 --- a/imprint/test/util/types_unittest.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include - -namespace imprint { - -struct types_fixture : ::testing::Test { - protected: - template - void check_op(const TrueTab& true_tab, Comp comp) { - for (orient_type it1 = orient_type::begin; it1 != orient_type::end; - ++it1) { - for (orient_type it2 = orient_type::begin; it2 != orient_type::end; - ++it2) { - if ((true_tab.find(it1) != true_tab.end()) && - (true_tab.at(it1).find(it2) != true_tab.at(it1).end())) { - EXPECT_TRUE(comp(it1, it2)); - } else { - EXPECT_FALSE(comp(it1, it2)); - } - } - } - } -}; - -TEST_F(types_fixture, orient_type_le) { - const std::unordered_map> - true_tab = { - {orient_type::pos, {orient_type::non_neg, orient_type::non_on}}, - {orient_type::on, {orient_type::non_neg, orient_type::non_pos}}, - {orient_type::neg, {orient_type::non_pos, orient_type::non_on}}, - }; - - check_op(true_tab, std::less()); -} - -TEST_F(types_fixture, orient_type_leq) { - const std::unordered_map> - true_tab = { - {orient_type::pos, - {orient_type::non_neg, orient_type::non_on, orient_type::pos}}, - {orient_type::on, - {orient_type::non_neg, orient_type::non_pos, orient_type::on}}, - {orient_type::neg, - {orient_type::non_pos, orient_type::non_on, orient_type::neg}}, - {orient_type::non_pos, {orient_type::non_pos}}, - {orient_type::non_neg, {orient_type::non_neg}}, - {orient_type::non_on, {orient_type::non_on}}, - {orient_type::none, {orient_type::none}}, - }; - - check_op(true_tab, std::less_equal()); -} - -} // namespace imprint diff --git a/imprint/testing.py b/imprint/testing.py new file mode 100644 index 00000000..22c4806b --- /dev/null +++ b/imprint/testing.py @@ -0,0 +1,174 @@ +""" +Here you will find tools for snapshot testing. Snapshot testing is a way to +check that the output of a function is the same as it used to be. This is +particularly useful for end to end tests where we don't have a comparison point +for the end result but we want to know when the result changes. Snapshot +testing is very common in numerical computing. + +Usage example: + +``` +def test_foo(snapshot): + K = 8000 + result = scipy.stats.binom.std(n=K, p=np.linspace(0.4, 0.6, 100)) / K + np.testing.assert_allclose(result, snapshot(result)) +``` + +If you run `pytest --snapshot-update test_file.py::test_foo`, the snapshot will +be saved to disk. Then later when you run `pytest test_file.py::test_foo`, the +`snapshot(...)` call will automatically load that object so that you can +compare against the loaded object. + +It's fine to call `snapshot(...)` multiple times in a test. The snapshot +filename will have an incremented counter indicating which call index is next. + +When debugging a snapshot test, you can directly view the snapshot file if you +are using the `TextSerializer`. This is the default. Pandas DataFrame objects +are saved as csv and numpy arrays are saved as txt files. +""" +import glob +import os +import pickle +from pathlib import Path + +import jax.numpy +import numpy as np +import pandas as pd +import pytest + + +def pytest_addoption(parser): + """ + Exposes snapshot plugin configuration to pytest. + https://docs.pytest.org/en/latest/reference.html#_pytest.hookspec.pytest_addoption + """ + parser.addoption( + "--snapshot-update", + action="store_true", + default=False, + dest="update_snapshots", + help="Update snapshots", + ) + + +def path_and_check(filebase, ext): + snapshot_path = filebase + "." + ext + if not os.path.exists(snapshot_path): + raise FileNotFoundError( + f"Snapshot file not found: {snapshot_path}." + " Did you forget to run with --snapshot-update?" + ) + return snapshot_path + + +class Pickler: + @staticmethod + def serialize(filebase, obj): + with open(filebase + ".pkl", "wb") as f: + pickle.dump(obj, f) + + @staticmethod + def deserialize(filebase, obj): + with open(path_and_check(filebase, "pkl"), "rb") as f: + return pickle.load(f) + + +class TextSerializer: + @staticmethod + def serialize(filebase, obj): + if isinstance(obj, pd.DataFrame): + # in all our dataframes, the index is meaningless, so we do not + # save it here. + obj.to_csv(filebase + ".csv", index=False) + elif isinstance(obj, np.ndarray) or isinstance(obj, jax.numpy.DeviceArray): + np.savetxt(filebase + ".txt", obj) + elif np.isscalar(obj): + np.savetxt(filebase + ".txt", np.array([obj])) + else: + raise ValueError( + f"TextSerializer cannot serialize {type(obj)}." + " Try calling snapshot(obj, serializer=Pickler)." + ) + + @staticmethod + def deserialize(filebase, obj): + if isinstance(obj, pd.DataFrame): + return pd.read_csv(path_and_check(filebase, "csv")) + elif isinstance(obj, np.ndarray) or isinstance(obj, jax.numpy.DeviceArray): + return np.loadtxt(path_and_check(filebase, "txt")) + elif np.isscalar(obj): + return np.loadtxt(path_and_check(filebase, "txt")) + else: + raise ValueError( + f"TextSerializer cannot deserialize {type(obj)}." + " Try calling snapshot(obj, serializer=Pickler)." + ) + + +class SnapshotAssertion: + def __init__( + self, + *, + update_snapshots, + request, + default_serializer=TextSerializer, + ): + self.update_snapshots = update_snapshots + self.clear_snapshots = update_snapshots + self.request = request + self.default_serializer = default_serializer + self.calls = 0 + + def _get_filebase(self): + test_folder = Path(self.request.fspath).parent + test_name = self.request.node.name + return test_folder.joinpath("__snapshot__", test_name + f"_{self.calls}") + + def get(self, obj, serializer=None): + if serializer is None: + serializer = self.default_serializer + + return serializer.deserialize(str(self._get_filebase()), obj) + + def __call__(self, obj, serializer=None): + """ + Return the saved copy of the object. If --snapshot-update is passed, + save the object to disk. + + Args: + obj: The object to compare against. This is needed here to + determine the file extension. + serializer: The serializer for loading the snapshot. Defaults to + None which means we will use default_serializer. Unless + default_serializer has been changed, this is TextSerializer, which + will save the object as a .txt or .csv depending on whether it's a + pd.DataFrame or np.ndarray. + + Returns: + The snapshotted object. + """ + if serializer is None: + serializer = self.default_serializer + + # We provide the serializer with a filename without an extension. The + # serializer can choose what extension to use. + filebase = self._get_filebase() + self.calls += 1 + if self.update_snapshots: + filebase.parent.mkdir(exist_ok=True) + str_filebase = str(filebase) + # Delete any existing snapshots with the same name and index + # regardless of the file extension. + delete_files = glob.glob(str_filebase + ".*") + for f in delete_files: + os.remove(f) + serializer.serialize(str_filebase, obj) + return serializer.deserialize(str(filebase), obj) + + +@pytest.fixture +def snapshot(request): + return SnapshotAssertion( + update_snapshots=request.config.option.update_snapshots, + request=request, + ) diff --git a/perf/perf_amd_e_flags.txt b/perf/perf_amd_e_flags.txt deleted file mode 100644 index b7fc6d82..00000000 --- a/perf/perf_amd_e_flags.txt +++ /dev/null @@ -1,140 +0,0 @@ -branch-instructions -branch-misses -cache-misses -cache-references -cpu-cycles -instructions -stalled-cycles-backend -stalled-cycles-frontend -alignment-faults -bpf-output -context-switches -cpu-clock -cpu-migrations -dummy -emulation-faults -major-faults -minor-faults -page-faults -task-clock -bp_l1_btb_correct -bp_l2_btb_correct -bp_l1_tlb_miss_l2_hit -bp_l1_tlb_miss_l2_miss -bp_snp_re_sync -bp_tlb_rel -ic_cache_fill_l2 -ic_cache_fill_sys -ic_cache_inval.fill_invalidated -ic_cache_inval.l2_invalidating_probe -ic_fetch_stall.ic_stall_any -ic_fetch_stall.ic_stall_back_pressure -ic_fetch_stall.ic_stall_dq_empty -ic_fw32 -ic_fw32_miss -l2_cache_req_stat.ic_fill_hit_s -l2_cache_req_stat.ic_fill_hit_x -l2_cache_req_stat.ic_fill_miss -l2_cache_req_stat.ls_rd_blk_c -l2_cache_req_stat.ls_rd_blk_cs -l2_cache_req_stat.ls_rd_blk_l_hit_s -l2_cache_req_stat.ls_rd_blk_l_hit_x -l2_cache_req_stat.ls_rd_blk_x -l2_fill_pending.l2_fill_busy -l2_latency.l2_cycles_waiting_on_fills -l2_request_g1.cacheable_ic_read -l2_request_g1.change_to_x -l2_request_g1.l2_hw_pf -l2_request_g1.ls_rd_blk_c_s -l2_request_g1.other_requests -l2_request_g1.prefetch_l2 -l2_request_g1.rd_blk_l -l2_request_g1.rd_blk_x -l2_request_g2.bus_locks_originator -l2_request_g2.bus_locks_responses -l2_request_g2.group1 -l2_request_g2.ic_rd_sized -l2_request_g2.ic_rd_sized_nc -l2_request_g2.ls_rd_sized -l2_request_g2.ls_rd_sized_nc -l2_request_g2.smc_inval -l2_wcb_req.cl_zero -l2_wcb_req.wcb_close -l2_wcb_req.wcb_write -l2_wcb_req.zero_byte_store -l3_comb_clstr_state.other_l3_miss_typs -l3_comb_clstr_state.request_miss -l3_lookup_state.all_l3_req_typs -l3_request_g1.caching_l3_cache_accesses -ex_div_busy -ex_div_count -ex_ret_brn -ex_ret_brn_far -ex_ret_brn_ind_misp -ex_ret_brn_misp -ex_ret_brn_resync -ex_ret_brn_tkn -ex_ret_brn_tkn_misp -ex_ret_cond -ex_ret_cond_misp -ex_ret_cops -ex_ret_fus_brnch_inst -ex_ret_instr -ex_ret_mmx_fp_instr.mmx_instr -ex_ret_mmx_fp_instr.sse_instr -ex_ret_mmx_fp_instr.x87_instr -ex_ret_near_ret -ex_ret_near_ret_mispred -ex_tagged_ibs_ops.ibs_count_rollover -ex_tagged_ibs_ops.ibs_tagged_ops -ex_tagged_ibs_ops.ibs_tagged_ops_ret -fp_num_mov_elim_scal_op.opt_potential -fp_num_mov_elim_scal_op.optimized -fp_num_mov_elim_scal_op.sse_mov_ops -fp_num_mov_elim_scal_op.sse_mov_ops_elim -fp_ret_sse_avx_ops.all -fp_ret_sse_avx_ops.dp_add_sub_flops -fp_ret_sse_avx_ops.dp_div_flops -fp_ret_sse_avx_ops.dp_mult_add_flops -fp_ret_sse_avx_ops.dp_mult_flops -fp_ret_sse_avx_ops.sp_add_sub_flops -fp_ret_sse_avx_ops.sp_div_flops -fp_ret_sse_avx_ops.sp_mult_add_flops -fp_ret_sse_avx_ops.sp_mult_flops -fp_retired_ser_ops.sse_bot_ret -fp_retired_ser_ops.sse_ctrl_ret -fp_retired_ser_ops.x87_bot_ret -fp_retired_ser_ops.x87_ctrl_ret -fp_retx87_fp_ops.add_sub_ops -fp_retx87_fp_ops.all -fp_retx87_fp_ops.div_sqr_r_ops -fp_retx87_fp_ops.mul_ops -fp_sched_empty -fpu_pipe_assignment.dual -fpu_pipe_assignment.total -ls_dc_accesses -ls_dispatch.ld_dispatch -ls_dispatch.ld_st_dispatch -ls_dispatch.store_dispatch -ls_inef_sw_pref.data_pipe_sw_pf_dc_hit -ls_inef_sw_pref.mab_mch_cnt -ls_l1_d_tlb_miss.all -ls_l1_d_tlb_miss.tlb_reload_1g_l2_hit -ls_l1_d_tlb_miss.tlb_reload_1g_l2_miss -ls_l1_d_tlb_miss.tlb_reload_2m_l2_hit -ls_l1_d_tlb_miss.tlb_reload_2m_l2_miss -ls_l1_d_tlb_miss.tlb_reload_32k_l2_hit -ls_l1_d_tlb_miss.tlb_reload_32k_l2_miss -ls_l1_d_tlb_miss.tlb_reload_4k_l2_hit -ls_l1_d_tlb_miss.tlb_reload_4k_l2_miss -ls_locks.bus_lock -ls_misal_accesses -ls_not_halted_cyc -ls_pref_instr_disp.load_prefetch_w -ls_pref_instr_disp.prefetch_nta -ls_pref_instr_disp.store_prefetch_w -ls_stlf -ls_tablewalker.perf_mon_tablewalk_alloc_dside -ls_tablewalker.perf_mon_tablewalk_alloc_iside -ic_oc_mode_switch.ic_oc_mode_switch -ic_oc_mode_switch.oc_ic_mode_switch diff --git a/perf/perf_list_amd.txt b/perf/perf_list_amd.txt deleted file mode 100644 index a13b3491..00000000 --- a/perf/perf_list_amd.txt +++ /dev/null @@ -1,379 +0,0 @@ - branch-instructions OR branches [Hardware event] - branch-misses [Hardware event] - cache-misses [Hardware event] - cache-references [Hardware event] - cpu-cycles OR cycles [Hardware event] - instructions [Hardware event] - stalled-cycles-backend OR idle-cycles-backend [Hardware event] - stalled-cycles-frontend OR idle-cycles-frontend [Hardware event] - alignment-faults [Software event] - bpf-output [Software event] - context-switches OR cs [Software event] - cpu-clock [Software event] - cpu-migrations OR migrations [Software event] - dummy [Software event] - emulation-faults [Software event] - major-faults [Software event] - minor-faults [Software event] - page-faults OR faults [Software event] - task-clock [Software event] - duration_time [Tool event] - L1-dcache-load-misses [Hardware cache event] - L1-dcache-loads [Hardware cache event] - L1-dcache-prefetches [Hardware cache event] - L1-icache-load-misses [Hardware cache event] - L1-icache-loads [Hardware cache event] - branch-load-misses [Hardware cache event] - branch-loads [Hardware cache event] - dTLB-load-misses [Hardware cache event] - dTLB-loads [Hardware cache event] - iTLB-load-misses [Hardware cache event] - iTLB-loads [Hardware cache event] - amd_iommu_0/cmd_processed/ [Kernel PMU event] - amd_iommu_0/cmd_processed_inv/ [Kernel PMU event] - amd_iommu_0/ign_rd_wr_mmio_1ff8h/ [Kernel PMU event] - amd_iommu_0/int_dte_hit/ [Kernel PMU event] - amd_iommu_0/int_dte_mis/ [Kernel PMU event] - amd_iommu_0/mem_dte_hit/ [Kernel PMU event] - amd_iommu_0/mem_dte_mis/ [Kernel PMU event] - amd_iommu_0/mem_iommu_tlb_pde_hit/ [Kernel PMU event] - amd_iommu_0/mem_iommu_tlb_pde_mis/ [Kernel PMU event] - amd_iommu_0/mem_iommu_tlb_pte_hit/ [Kernel PMU event] - amd_iommu_0/mem_iommu_tlb_pte_mis/ [Kernel PMU event] - amd_iommu_0/mem_pass_excl/ [Kernel PMU event] - amd_iommu_0/mem_pass_pretrans/ [Kernel PMU event] - amd_iommu_0/mem_pass_untrans/ [Kernel PMU event] - amd_iommu_0/mem_target_abort/ [Kernel PMU event] - amd_iommu_0/mem_trans_total/ [Kernel PMU event] - amd_iommu_0/page_tbl_read_gst/ [Kernel PMU event] - amd_iommu_0/page_tbl_read_nst/ [Kernel PMU event] - amd_iommu_0/page_tbl_read_tot/ [Kernel PMU event] - amd_iommu_0/smi_blk/ [Kernel PMU event] - amd_iommu_0/smi_recv/ [Kernel PMU event] - amd_iommu_0/tlb_inv/ [Kernel PMU event] - amd_iommu_0/vapic_int_guest/ [Kernel PMU event] - amd_iommu_0/vapic_int_non_guest/ [Kernel PMU event] - branch-instructions OR cpu/branch-instructions/ [Kernel PMU event] - branch-misses OR cpu/branch-misses/ [Kernel PMU event] - cache-misses OR cpu/cache-misses/ [Kernel PMU event] - cache-references OR cpu/cache-references/ [Kernel PMU event] - cpu-cycles OR cpu/cpu-cycles/ [Kernel PMU event] - instructions OR cpu/instructions/ [Kernel PMU event] - msr/aperf/ [Kernel PMU event] - msr/irperf/ [Kernel PMU event] - msr/mperf/ [Kernel PMU event] - msr/tsc/ [Kernel PMU event] - stalled-cycles-backend OR cpu/stalled-cycles-backend/ [Kernel PMU event] - stalled-cycles-frontend OR cpu/stalled-cycles-frontend/ [Kernel PMU event] - -branch: - bp_l1_btb_correct - [L1 BTB Correction] - bp_l2_btb_correct - [L2 BTB Correction] - -cache: - bp_l1_tlb_miss_l2_hit - [The number of instruction fetches that miss in the L1 ITLB but hit in - the L2 ITLB] - bp_l1_tlb_miss_l2_miss - [The number of instruction fetches that miss in both the L1 and L2 TLBs] - bp_snp_re_sync - [The number of pipeline restarts caused by invalidating probes that hit - on the instruction stream currently being executed. This would happen - if the active instruction stream was being modified by another - processor in an MP system - typically a highly unlikely event] - bp_tlb_rel - [The number of ITLB reload requests] - ic_cache_fill_l2 - [The number of 64 byte instruction cache line was fulfilled from the L2 - cache] - ic_cache_fill_sys - [The number of 64 byte instruction cache line fulfilled from system - memory or another cache] - ic_cache_inval.fill_invalidated - [IC line invalidated due to overwriting fill response] - ic_cache_inval.l2_invalidating_probe - [IC line invalidated due to L2 invalidating probe (external or LS)] - ic_fetch_stall.ic_stall_any - [IC pipe was stalled during this clock cycle for any reason (nothing - valid in pipe ICM1)] - ic_fetch_stall.ic_stall_back_pressure - [IC pipe was stalled during this clock cycle (including IC to OC - fetches) due to back-pressure] - ic_fetch_stall.ic_stall_dq_empty - [IC pipe was stalled during this clock cycle (including IC to OC - fetches) due to DQ empty] - ic_fw32 - [The number of 32B fetch windows transferred from IC pipe to DE - instruction decoder (includes non-cacheable and cacheable fill - responses)] - ic_fw32_miss - [The number of 32B fetch windows tried to read the L1 IC and missed in - the full tag] - l2_cache_req_stat.ic_fill_hit_s - [IC Fill Hit Shared] - l2_cache_req_stat.ic_fill_hit_x - [IC Fill Hit Exclusive Stale] - l2_cache_req_stat.ic_fill_miss - [IC Fill Miss] - l2_cache_req_stat.ls_rd_blk_c - [LS Read Block C S L X Change to X Miss] - l2_cache_req_stat.ls_rd_blk_cs - [LS ReadBlock C/S Hit] - l2_cache_req_stat.ls_rd_blk_l_hit_s - [LsRdBlkL Hit Shared] - l2_cache_req_stat.ls_rd_blk_l_hit_x - [LS Read Block L Hit X] - l2_cache_req_stat.ls_rd_blk_x - [LsRdBlkX/ChgToX Hit X. Count RdBlkX finding Shared as a Miss] - l2_fill_pending.l2_fill_busy - [Total cycles spent with one or more fill requests in flight from L2] - l2_latency.l2_cycles_waiting_on_fills - [Total cycles spent waiting for L2 fills to complete from L3 or memory, - divided by four. Event counts are for both threads. To calculate - average latency, the number of fills from both threads must be used] - l2_request_g1.cacheable_ic_read - [Requests to L2 Group1] - l2_request_g1.change_to_x - [Requests to L2 Group1] - l2_request_g1.l2_hw_pf - [Requests to L2 Group1] - l2_request_g1.ls_rd_blk_c_s - [Requests to L2 Group1] - l2_request_g1.other_requests - [Events covered by l2_request_g2] - l2_request_g1.prefetch_l2 - [Requests to L2 Group1] - l2_request_g1.rd_blk_l - [Requests to L2 Group1] - l2_request_g1.rd_blk_x - [Requests to L2 Group1] - l2_request_g2.bus_locks_originator - [Multi-events in that LS and IF requests can be received simultaneous] - l2_request_g2.bus_locks_responses - [Multi-events in that LS and IF requests can be received simultaneous] - l2_request_g2.group1 - [All Group 1 commands not in unit0] - l2_request_g2.ic_rd_sized - [Multi-events in that LS and IF requests can be received simultaneous] - l2_request_g2.ic_rd_sized_nc - [Multi-events in that LS and IF requests can be received simultaneous] - l2_request_g2.ls_rd_sized - [RdSized, RdSized32, RdSized64] - l2_request_g2.ls_rd_sized_nc - [RdSizedNC, RdSized32NC, RdSized64NC] - l2_request_g2.smc_inval - [Multi-events in that LS and IF requests can be received simultaneous] - l2_wcb_req.cl_zero - [LS (Load/Store unit) to L2 WCB (Write Combining Buffer) cache line - zeroing requests] - l2_wcb_req.wcb_close - [LS to L2 WCB close requests] - l2_wcb_req.wcb_write - [LS to L2 WCB write requests] - l2_wcb_req.zero_byte_store - [LS to L2 WCB zero byte store requests] - l3_comb_clstr_state.other_l3_miss_typs - [Other L3 Miss Request Types. Unit: amd_l3] - l3_comb_clstr_state.request_miss - [L3 cache misses. Unit: amd_l3] - l3_lookup_state.all_l3_req_typs - [All L3 Request Types. Unit: amd_l3] - l3_request_g1.caching_l3_cache_accesses - [Caching: L3 cache accesses. Unit: amd_l3] - xi_ccx_sdp_req1.all_l3_miss_req_typs - [All L3 Miss Request Types. Ignores SliceMask and ThreadMask. Unit: - amd_l3] - xi_sys_fill_latency - [L3 Cache Miss Latency. Total cycles for all transactions divided by - 16. Ignores SliceMask and ThreadMask. Unit: amd_l3] - -core: - ex_div_busy - [Div Cycles Busy count] - ex_div_count - [Div Op Count] - ex_ret_brn - [Retired Branch Instructions] - ex_ret_brn_far - [Retired Far Control Transfers] - ex_ret_brn_ind_misp - [Retired Indirect Branch Instructions Mispredicted] - ex_ret_brn_misp - [Retired Branch Instructions Mispredicted] - ex_ret_brn_resync - [Retired Branch Resyncs] - ex_ret_brn_tkn - [Retired Taken Branch Instructions] - ex_ret_brn_tkn_misp - [Retired Taken Branch Instructions Mispredicted] - ex_ret_cond - [Retired Conditional Branch Instructions] - ex_ret_cond_misp - [Retired Conditional Branch Instructions Mispredicted] - ex_ret_cops - [Retired Uops] - ex_ret_fus_brnch_inst - [The number of fused retired branch instructions retired per cycle. The - number of events logged per cycle can vary from 0 to 3] - ex_ret_instr - [Retired Instructions] - ex_ret_mmx_fp_instr.mmx_instr - [MMX instructions] - ex_ret_mmx_fp_instr.sse_instr - [SSE instructions (SSE, SSE2, SSE3, SSSE3, SSE4A, SSE41, SSE42, AVX)] - ex_ret_mmx_fp_instr.x87_instr - [x87 instructions] - ex_ret_near_ret - [Retired Near Returns] - ex_ret_near_ret_mispred - [Retired Near Returns Mispredicted] - ex_tagged_ibs_ops.ibs_count_rollover - [Number of times an op could not be tagged by IBS because of a previous - tagged op that has not retired] - ex_tagged_ibs_ops.ibs_tagged_ops - [Number of Ops tagged by IBS] - ex_tagged_ibs_ops.ibs_tagged_ops_ret - [Number of Ops tagged by IBS that retired] - -floating point: - fp_num_mov_elim_scal_op.opt_potential - [Number of Ops that are candidates for optimization (have Z-bit either - set or pass)] - fp_num_mov_elim_scal_op.optimized - [Number of Scalar Ops optimized] - fp_num_mov_elim_scal_op.sse_mov_ops - [Number of SSE Move Ops] - fp_num_mov_elim_scal_op.sse_mov_ops_elim - [Number of SSE Move Ops eliminated] - fp_ret_sse_avx_ops.all - [All FLOPS] - fp_ret_sse_avx_ops.dp_add_sub_flops - [Double precision add/subtract FLOPS] - fp_ret_sse_avx_ops.dp_div_flops - [Double precision divide/square root FLOPS] - fp_ret_sse_avx_ops.dp_mult_add_flops - [Double precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS] - fp_ret_sse_avx_ops.dp_mult_flops - [Double precision multiply FLOPS] - fp_ret_sse_avx_ops.sp_add_sub_flops - [Single-precision add/subtract FLOPS] - fp_ret_sse_avx_ops.sp_div_flops - [Single-precision divide/square root FLOPS] - fp_ret_sse_avx_ops.sp_mult_add_flops - [Single precision multiply-add FLOPS. Multiply-add counts as 2 FLOPS] - fp_ret_sse_avx_ops.sp_mult_flops - [Single-precision multiply FLOPS] - fp_retired_ser_ops.sse_bot_ret - [SSE bottom-executing uOps retired] - fp_retired_ser_ops.sse_ctrl_ret - [SSE control word mispredict traps due to mispredictions in RC, FTZ or - DAZ, or changes in mask bits] - fp_retired_ser_ops.x87_bot_ret - [x87 bottom-executing uOps retired] - fp_retired_ser_ops.x87_ctrl_ret - [x87 control word mispredict traps due to mispredictions in RC or PC, - or changes in mask bits] - fp_retx87_fp_ops.add_sub_ops - [Add/subtract Ops] - fp_retx87_fp_ops.all - [All Ops] - fp_retx87_fp_ops.div_sqr_r_ops - [Divide and square root Ops] - fp_retx87_fp_ops.mul_ops - [Multiply Ops] - fp_sched_empty - [This is a speculative event. The number of cycles in which the FPU - scheduler is empty. Note that some Ops like FP loads bypass the - scheduler] - fpu_pipe_assignment.dual - [Total number multi-pipe uOps] - fpu_pipe_assignment.total - [Total number uOps] - -memory: - ls_dc_accesses - [The number of accesses to the data cache for load and store - references. This may include certain microcode scratchpad accesses, - although these are generally rare. Each increment represents an - eight-byte access, although the instruction may only be accessing a - portion of that. This event is a speculative event] - ls_dispatch.ld_dispatch - [Counts the number of operations dispatched to the LS unit. Unit Masks - ADDed] - ls_dispatch.ld_st_dispatch - [Load-op-Stores] - ls_dispatch.store_dispatch - [Counts the number of operations dispatched to the LS unit. Unit Masks - ADDed] - ls_inef_sw_pref.data_pipe_sw_pf_dc_hit - [The number of software prefetches that did not fetch data outside of - the processor core] - ls_inef_sw_pref.mab_mch_cnt - [The number of software prefetches that did not fetch data outside of - the processor core] - ls_l1_d_tlb_miss.all - [L1 DTLB Miss or Reload off all sizes] - ls_l1_d_tlb_miss.tlb_reload_1g_l2_hit - [L1 DTLB Reload of a page of 1G size] - ls_l1_d_tlb_miss.tlb_reload_1g_l2_miss - [L1 DTLB Miss of a page of 1G size] - ls_l1_d_tlb_miss.tlb_reload_2m_l2_hit - [L1 DTLB Reload of a page of 2M size] - ls_l1_d_tlb_miss.tlb_reload_2m_l2_miss - [L1 DTLB Miss of a page of 2M size] - ls_l1_d_tlb_miss.tlb_reload_32k_l2_hit - [L1 DTLB Reload of a page of 32K size] - ls_l1_d_tlb_miss.tlb_reload_32k_l2_miss - [L1 DTLB Miss of a page of 32K size] - ls_l1_d_tlb_miss.tlb_reload_4k_l2_hit - [L1 DTLB Reload of a page of 4K size] - ls_l1_d_tlb_miss.tlb_reload_4k_l2_miss - [L1 DTLB Miss of a page of 4K size] - ls_locks.bus_lock - [Bus lock when a locked operations crosses a cache boundary or is done - on an uncacheable memory type] - ls_misal_accesses - [Misaligned loads] - ls_not_halted_cyc - [Cycles not in Halt] - ls_pref_instr_disp.load_prefetch_w - [Prefetch, Prefetch_T0_T1_T2] - ls_pref_instr_disp.prefetch_nta - [Software Prefetch Instructions (PREFETCHNTA instruction) Dispatched] - ls_pref_instr_disp.store_prefetch_w - [Software Prefetch Instructions (3DNow PREFETCHW instruction) - Dispatched] - ls_stlf - [Number of STLF hits] - ls_tablewalker.perf_mon_tablewalk_alloc_dside - [Tablewalker allocation] - ls_tablewalker.perf_mon_tablewalk_alloc_iside - [Tablewalker allocation] - -other: - de_dis_dispatch_token_stalls0.agsq_token_stall - [AGSQ Tokens unavailable] - de_dis_dispatch_token_stalls0.alsq1_token_stall - [ALSQ 1 Tokens unavailable] - de_dis_dispatch_token_stalls0.alsq2_token_stall - [ALSQ 2 Tokens unavailable] - de_dis_dispatch_token_stalls0.alsq3_0_token_stall - [Cycles where a dispatch group is valid but does not get dispatched due - to a token stall] - de_dis_dispatch_token_stalls0.alsq3_token_stall - [ALSQ 3 Tokens unavailable] - de_dis_dispatch_token_stalls0.alu_token_stall - [ALU tokens total unavailable] - de_dis_dispatch_token_stalls0.retire_token_stall - [RETIRE Tokens unavailable] - ic_oc_mode_switch.ic_oc_mode_switch - [IC to OC mode switch] - ic_oc_mode_switch.oc_ic_mode_switch - [OC to IC mode switch] - rNNN [Raw hardware event descriptor] - cpu/t1=v1[,t2=v2,t3 ...]/modifier [Raw hardware event descriptor] - mem:[/len][:access] [Hardware breakpoint] - -Metric Groups: diff --git a/poetry.lock b/poetry.lock new file mode 100644 index 00000000..35dcef39 --- /dev/null +++ b/poetry.lock @@ -0,0 +1,3231 @@ +[[package]] +name = "absl-py" +version = "1.3.0" +description = "Abseil Python Common Libraries, see https://github.com/abseil/abseil-py." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "anyio" +version = "3.6.2" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +idna = ">=2.8" +sniffio = ">=1.1" + +[package.extras] +doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] +trio = ["trio (>=0.16,<0.22)"] + +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "argon2-cffi" +version = "21.3.0" +description = "The secure Argon2 password hashing algorithm." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +argon2-cffi-bindings = "*" + +[package.extras] +dev = ["cogapp", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "pre-commit", "pytest", "sphinx", "sphinx-notfound-page", "tomli"] +docs = ["furo", "sphinx", "sphinx-notfound-page"] +tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pytest"] + +[[package]] +name = "argon2-cffi-bindings" +version = "21.2.0" +description = "Low-level CFFI bindings for Argon2" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = ">=1.0.1" + +[package.extras] +dev = ["cogapp", "pre-commit", "pytest", "wheel"] +tests = ["pytest"] + +[[package]] +name = "arrow" +version = "1.2.3" +description = "Better dates & times for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +python-dateutil = ">=2.7.0" + +[[package]] +name = "asttokens" +version = "2.2.1" +description = "Annotate AST trees with source code positions" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +test = ["astroid", "pytest"] + +[[package]] +name = "attrs" +version = "22.1.0" +description = "Classes Without Boilerplate" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.extras] +dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] +docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] +tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] +tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] + +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "beautifulsoup4" +version = "4.11.1" +description = "Screen-scraping library" +category = "dev" +optional = false +python-versions = ">=3.6.0" + +[package.dependencies] +soupsieve = ">1.2" + +[package.extras] +html5lib = ["html5lib"] +lxml = ["lxml"] + +[[package]] +name = "black" +version = "22.12.0" +description = "The uncompromising code formatter." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +click = ">=8.0.0" +ipython = {version = ">=7.8.0", optional = true, markers = "extra == \"jupyter\""} +mypy-extensions = ">=0.4.3" +pathspec = ">=0.9.0" +platformdirs = ">=2" +tokenize-rt = {version = ">=3.2.0", optional = true, markers = "extra == \"jupyter\""} +tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} + +[package.extras] +colorama = ["colorama (>=0.4.3)"] +d = ["aiohttp (>=3.7.4)"] +jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] +uvloop = ["uvloop (>=0.15.2)"] + +[[package]] +name = "bleach" +version = "5.0.1" +description = "An easy safelist-based HTML-sanitizing tool." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +six = ">=1.9.0" +webencodings = "*" + +[package.extras] +css = ["tinycss2 (>=1.1.0,<1.2)"] +dev = ["Sphinx (==4.3.2)", "black (==22.3.0)", "build (==0.8.0)", "flake8 (==4.0.1)", "hashin (==0.17.0)", "mypy (==0.961)", "pip-tools (==6.6.2)", "pytest (==7.1.2)", "tox (==3.25.0)", "twine (==4.0.1)", "wheel (==0.37.1)"] + +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + +[[package]] +name = "cfgv" +version = "3.3.1" +description = "Validate configuration and produce human readable error messages." +category = "dev" +optional = false +python-versions = ">=3.6.1" + +[[package]] +name = "classify-imports" +version = "4.2.0" +description = "Utilities for refactoring imports in python-like syntax." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "click" +version = "8.1.3" +description = "Composable command line interface toolkit" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" + +[[package]] +name = "comm" +version = "0.1.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +traitlets = ">=5.3" + +[package.extras] +test = ["pytest"] + +[[package]] +name = "commonmark" +version = "0.9.1" +description = "Python parser for the CommonMark Markdown spec" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] + +[[package]] +name = "contourpy" +version = "1.0.6" +description = "Python library for calculating contours of 2D quadrilateral grids" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +numpy = ">=1.16" + +[package.extras] +bokeh = ["bokeh", "selenium"] +docs = ["docutils (<0.18)", "sphinx (<=5.2.0)", "sphinx-rtd-theme"] +test = ["Pillow", "flake8", "isort", "matplotlib", "pytest"] +test-minimal = ["pytest"] +test-no-codebase = ["Pillow", "matplotlib", "pytest"] + +[[package]] +name = "cycler" +version = "0.11.0" +description = "Composable style cycles" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "debugpy" +version = "1.6.4" +description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "defusedxml" +version = "0.7.1" +description = "XML bomb protection for Python stdlib modules" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "distlib" +version = "0.3.6" +description = "Distribution utilities" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "duckdb" +version = "0.6.1" +description = "DuckDB embedded database" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = ">=1.14" + +[[package]] +name = "entrypoints" +version = "0.4" +description = "Discover and load entry points from installed packages." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "exceptiongroup" +version = "1.0.4" +description = "Backport of PEP 654 (exception groups)" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "execnet" +version = "1.9.0" +description = "execnet: rapid multi-Python deployment" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.extras] +testing = ["pre-commit"] + +[[package]] +name = "executing" +version = "1.2.0" +description = "Get the currently executing AST node of a frame, and other information" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +tests = ["asttokens", "littleutils", "pytest", "rich"] + +[[package]] +name = "fastjsonschema" +version = "2.16.2" +description = "Fastest Python implementation of JSON schema" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "filelock" +version = "3.8.2" +description = "A platform independent file lock." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2022.9.29)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.5)"] +testing = ["covdefaults (>=2.2.2)", "coverage (>=6.5)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-timeout (>=2.1)"] + +[[package]] +name = "flake8" +version = "5.0.4" +description = "the modular source code checker: pep8 pyflakes and co" +category = "dev" +optional = false +python-versions = ">=3.6.1" + +[package.dependencies] +mccabe = ">=0.7.0,<0.8.0" +pycodestyle = ">=2.9.0,<2.10.0" +pyflakes = ">=2.5.0,<2.6.0" + +[[package]] +name = "fonttools" +version = "4.38.0" +description = "Tools to manipulate font files" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +all = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "lz4 (>=1.7.4.2)", "matplotlib", "munkres", "scipy", "skia-pathops (>=0.5.0)", "sympy", "uharfbuzz (>=0.23.0)", "unicodedata2 (>=14.0.0)", "xattr", "zopfli (>=0.1.4)"] +graphite = ["lz4 (>=1.7.4.2)"] +interpolatable = ["munkres", "scipy"] +lxml = ["lxml (>=4.0,<5)"] +pathops = ["skia-pathops (>=0.5.0)"] +plot = ["matplotlib"] +repacker = ["uharfbuzz (>=0.23.0)"] +symfont = ["sympy"] +type1 = ["xattr"] +ufo = ["fs (>=2.2.0,<3)"] +unicode = ["unicodedata2 (>=14.0.0)"] +woff = ["brotli (>=1.0.1)", "brotlicffi (>=0.8.0)", "zopfli (>=0.1.4)"] + +[[package]] +name = "fqdn" +version = "1.5.1" +description = "Validates fully-qualified domain names against RFC 1123, so that they are acceptable to modern bowsers" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0, !=3.1, !=3.2, !=3.3, !=3.4, <4" + +[[package]] +name = "identify" +version = "2.5.9" +description = "File identification library for Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +license = ["ukkonen"] + +[[package]] +name = "idna" +version = "3.4" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "iniconfig" +version = "1.1.1" +description = "iniconfig: brain-dead simple config-ini parsing" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "ipykernel" +version = "6.19.2" +description = "IPython Kernel for Jupyter" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.0" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=17" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt"] +lint = ["black (>=22.6.0)", "mdformat (>0.7)", "ruff (>=0.0.156)"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] +typing = ["mypy (>=0.990)"] + +[[package]] +name = "ipython" +version = "8.7.0" +description = "IPython: Productive Interactive Computing" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.11,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.20)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.20)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "ipython-genutils" +version = "0.2.0" +description = "Vestigial utilities from IPython" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "ipywidgets" +version = "8.0.3" +description = "Jupyter interactive widgets" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ipykernel = ">=4.5.1" +ipython = ">=6.1.0" +jupyterlab-widgets = ">=3.0,<4.0" +traitlets = ">=4.3.1" +widgetsnbextension = ">=4.0,<5.0" + +[package.extras] +test = ["jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"] + +[[package]] +name = "isoduration" +version = "20.11.0" +description = "Operations with ISO 8601 durations" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +arrow = ">=0.15.0" + +[[package]] +name = "jax" +version = "0.3.24" +description = "Differentiate, compile, and transform Numpy code." +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +numpy = ">=1.20" +opt_einsum = "*" +scipy = ">=1.5" +typing_extensions = "*" + +[package.extras] +australis = ["protobuf (>=3.13,<4)"] +ci = ["jaxlib (==0.3.22)"] +cpu = ["jaxlib (==0.3.24)"] +cuda = ["jaxlib (==0.3.24+cuda11.cudnn82)"] +cuda11-cudnn805 = ["jaxlib (==0.3.24+cuda11.cudnn805)"] +cuda11-cudnn82 = ["jaxlib (==0.3.24+cuda11.cudnn82)"] +minimum-jaxlib = ["jaxlib (==0.3.22)"] +tpu = ["jaxlib (==0.3.24)", "libtpu-nightly (==0.1.dev20221103)", "requests"] + +[[package]] +name = "jaxlib" +version = "0.3.22" +description = "XLA library for JAX" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +absl-py = "*" +numpy = ">=1.20" +scipy = ">=1.5" + +[[package]] +name = "jaxlib" +version = "0.3.24+cuda11.cudnn82" +description = "XLA library for JAX" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +numpy = ">=1.20" +scipy = ">=1.5" + +[package.source] +type = "legacy" +url = "https://storage.googleapis.com/jax-releases/jax_cuda_releases.html" +reference = "jax" + +[[package]] +name = "jedi" +version = "0.18.2" +description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +parso = ">=0.8.0,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jinja2" +version = "3.1.2" +description = "A very fast and expressive template engine." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "jsonpointer" +version = "2.3" +description = "Identify specific nodes in a JSON document (RFC 6901)" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "jsonschema" +version = "4.17.3" +description = "An implementation of JSON Schema validation for Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +attrs = ">=17.4.0" +fqdn = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +idna = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +isoduration = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +jsonpointer = {version = ">1.13", optional = true, markers = "extra == \"format-nongpl\""} +pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2" +rfc3339-validator = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +rfc3986-validator = {version = ">0.1.0", optional = true, markers = "extra == \"format-nongpl\""} +uri-template = {version = "*", optional = true, markers = "extra == \"format-nongpl\""} +webcolors = {version = ">=1.11", optional = true, markers = "extra == \"format-nongpl\""} + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"] + +[[package]] +name = "jupyter" +version = "1.0.0" +description = "Jupyter metapackage. Install all the Jupyter components in one go." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +ipykernel = "*" +ipywidgets = "*" +jupyter-console = "*" +nbconvert = "*" +notebook = "*" +qtconsole = "*" + +[[package]] +name = "jupyter-client" +version = "7.4.8" +description = "Jupyter protocol implementation and client libraries" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +entrypoints = "*" +jupyter-core = ">=4.9.2" +nest-asyncio = ">=1.5.4" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = "*" + +[package.extras] +doc = ["ipykernel", "myst-parser", "sphinx (>=1.3.6)", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-console" +version = "6.4.4" +description = "Jupyter terminal console" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ipykernel = "*" +ipython = "*" +jupyter-client = ">=7.0.0" +prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0" +pygments = "*" + +[package.extras] +test = ["pexpect"] + +[[package]] +name = "jupyter-core" +version = "5.1.0" +description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "sphinxcontrib-github-alt", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "jupyter-events" +version = "0.5.0" +description = "Jupyter Event System library" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +jsonschema = {version = ">=4.3.0", extras = ["format-nongpl"]} +python-json-logger = "*" +pyyaml = "*" +traitlets = "*" + +[package.extras] +cli = ["click", "rich"] +test = ["click", "coverage", "pre-commit", "pytest (>=6.1.0)", "pytest-asyncio (>=0.19.0)", "pytest-console-scripts", "pytest-cov", "rich"] + +[[package]] +name = "jupyter-server" +version = "2.0.1" +description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications." +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +anyio = ">=3.1.0,<4" +argon2-cffi = "*" +jinja2 = "*" +jupyter-client = ">=7.4.4" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +jupyter-events = ">=0.4.0" +jupyter-server-terminals = "*" +nbconvert = ">=6.4.4" +nbformat = ">=5.3.0" +packaging = "*" +prometheus-client = "*" +pywinpty = {version = "*", markers = "os_name == \"nt\""} +pyzmq = ">=24" +send2trash = "*" +terminado = ">=0.8.3" +tornado = ">=6.2.0" +traitlets = ">=5.6.0" +websocket-client = "*" + +[package.extras] +docs = ["docutils (<0.20)", "ipykernel", "jinja2", "jupyter-client", "jupyter-server", "mistune (<1.0.0)", "myst-parser", "nbformat", "prometheus-client", "pydata-sphinx-theme", "send2trash", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxemoji", "tornado"] +lint = ["black (>=22.6.0)", "mdformat (>0.7)", "ruff (>=0.0.156)"] +test = ["ipykernel", "pre-commit", "pytest (>=7.0)", "pytest-console-scripts", "pytest-jupyter[server] (>=0.4)", "pytest-timeout", "requests"] +typing = ["mypy (>=0.990)"] + +[[package]] +name = "jupyter-server-terminals" +version = "0.4.2" +description = "A Jupyter Server Extension Providing Terminals." +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +pywinpty = {version = ">=2.0.3", markers = "os_name == \"nt\""} +terminado = ">=0.8.3" + +[package.extras] +docs = ["jinja2", "jupyter-server", "mistune (<2.0)", "myst-parser", "nbformat", "packaging", "pydata-sphinx-theme", "sphinxcontrib-github-alt", "sphinxcontrib-openapi", "sphinxemoji", "tornado"] +test = ["coverage", "jupyter-server (>=2.0.0rc8)", "pytest (>=7.0)", "pytest-cov", "pytest-jupyter[server] (>=0.5.3)", "pytest-timeout"] + +[[package]] +name = "jupyterlab-pygments" +version = "0.2.2" +description = "Pygments theme using JupyterLab CSS variables" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "jupyterlab-widgets" +version = "3.0.4" +description = "Jupyter interactive widgets for JupyterLab" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "jupytext" +version = "1.14.4" +description = "Jupyter notebooks as Markdown documents, Julia, Python or R scripts" +category = "dev" +optional = false +python-versions = "~=3.6" + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" +mdit-py-plugins = "*" +nbformat = "*" +pyyaml = "*" +toml = "*" + +[package.extras] +rst2md = ["sphinx-gallery (>=0.7.0,<0.8.0)"] +toml = ["toml"] + +[[package]] +name = "kiwisolver" +version = "1.4.4" +description = "A fast implementation of the Cassowary constraint solver" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "line-profiler" +version = "3.5.1" +description = "Line-by-line profiler." +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +all = ["Cython", "IPython (>=0.13)", "IPython (>=0.13,<7.17.0)", "cmake", "coverage[toml] (>=5.3)", "ninja", "pytest (>=4.6.11)", "pytest-cov (>=2.10.1)", "scikit-build", "ubelt (>=1.0.1)"] +build = ["Cython", "cmake", "ninja", "scikit-build"] +ipython = ["IPython (>=0.13)", "IPython (>=0.13,<7.17.0)"] +tests = ["IPython (>=0.13)", "IPython (>=0.13,<7.17.0)", "coverage[toml] (>=5.3)", "pytest (>=4.6.11)", "pytest-cov (>=2.10.1)", "ubelt (>=1.0.1)"] + +[[package]] +name = "markdown-it-py" +version = "2.1.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"] +code-style = ["pre-commit (==2.6)"] +compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"] +linkify = ["linkify-it-py (>=1.0,<2.0)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.1" +description = "Safely add untrusted strings to HTML/XML markup." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "matplotlib" +version = "3.6.2" +description = "Python plotting package" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +contourpy = ">=1.0.1" +cycler = ">=0.10" +fonttools = ">=4.22.0" +kiwisolver = ">=1.0.1" +numpy = ">=1.19" +packaging = ">=20.0" +pillow = ">=6.2.0" +pyparsing = ">=2.2.1" +python-dateutil = ">=2.7" +setuptools_scm = ">=7" + +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +traitlets = "*" + +[[package]] +name = "mccabe" +version = "0.7.0" +description = "McCabe checker, plugin for flake8" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mdit-py-plugins" +version = "0.3.3" +description = "Collection of plugins for markdown-it-py" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "mistune" +version = "2.0.4" +description = "A sane Markdown parser with useful plugins and renderers" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "mpmath" +version = "1.2.1" +description = "Python library for arbitrary-precision floating-point arithmetic" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +develop = ["codecov", "pycodestyle", "pytest (>=4.6)", "pytest-cov", "wheel"] +tests = ["pytest (>=4.6)"] + +[[package]] +name = "multipledispatch" +version = "0.6.0" +description = "Multiple dispatch" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "mypy-extensions" +version = "0.4.3" +description = "Experimental type system extensions for programs checked with the mypy typechecker." +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "nbclassic" +version = "0.4.8" +description = "A web-based notebook environment for interactive computing" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=6.1.1" +jupyter-core = ">=4.6.1" +jupyter-server = ">=1.8" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +notebook-shim = ">=0.1.0" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "pytest-playwright", "pytest-tornasync", "requests", "requests-unixsocket", "testpath"] + +[[package]] +name = "nbclient" +version = "0.7.2" +description = "A client library for executing notebooks. Formerly nbconvert's ExecutePreprocessor." +category = "dev" +optional = false +python-versions = ">=3.7.0" + +[package.dependencies] +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +nbformat = ">=5.1" +traitlets = ">=5.3" + +[package.extras] +dev = ["pre-commit"] +docs = ["autodoc-traits", "mock", "moto", "myst-parser", "nbclient[test]", "sphinx (>=1.7)", "sphinx-book-theme"] +test = ["ipykernel", "ipython", "ipywidgets", "nbconvert (>=7.0.0)", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov (>=4.0)", "testpath", "xmltodict"] + +[[package]] +name = "nbconvert" +version = "7.2.6" +description = "Converting Jupyter Notebooks" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +beautifulsoup4 = "*" +bleach = "*" +defusedxml = "*" +jinja2 = ">=3.0" +jupyter-core = ">=4.7" +jupyterlab-pygments = "*" +markupsafe = ">=2.0" +mistune = ">=2.0.3,<3" +nbclient = ">=0.5.0" +nbformat = ">=5.1" +packaging = "*" +pandocfilters = ">=1.4.1" +pygments = ">=2.4.1" +tinycss2 = "*" +traitlets = ">=5.0" + +[package.extras] +all = ["nbconvert[docs,qtpdf,serve,test,webpdf]"] +docs = ["ipykernel", "ipython", "myst-parser", "nbsphinx (>=0.2.12)", "pydata-sphinx-theme", "sphinx (==5.0.2)"] +qtpdf = ["nbconvert[qtpng]"] +qtpng = ["pyqtwebengine (>=5.15)"] +serve = ["tornado (>=6.1)"] +test = ["ipykernel", "ipywidgets (>=7)", "pre-commit", "pyppeteer (>=1,<1.1)", "pytest", "pytest-dependency"] +webpdf = ["pyppeteer (>=1,<1.1)"] + +[[package]] +name = "nbformat" +version = "5.7.0" +description = "The Jupyter Notebook format" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +fastjsonschema = "*" +jsonschema = ">=2.6" +jupyter-core = "*" +traitlets = ">=5.1" + +[package.extras] +test = ["check-manifest", "pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "nest-asyncio" +version = "1.5.6" +description = "Patch asyncio to allow nested event loops" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "nodeenv" +version = "1.7.0" +description = "Node.js virtual environment builder" +category = "dev" +optional = false +python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*" + +[package.dependencies] +setuptools = "*" + +[[package]] +name = "notebook" +version = "6.5.2" +description = "A web-based notebook environment for interactive computing" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +argon2-cffi = "*" +ipykernel = "*" +ipython-genutils = "*" +jinja2 = "*" +jupyter-client = ">=5.3.4" +jupyter-core = ">=4.6.1" +nbclassic = ">=0.4.7" +nbconvert = ">=5" +nbformat = "*" +nest-asyncio = ">=1.5" +prometheus-client = "*" +pyzmq = ">=17" +Send2Trash = ">=1.8.0" +terminado = ">=0.8.3" +tornado = ">=6.1" +traitlets = ">=4.2.1" + +[package.extras] +docs = ["myst-parser", "nbsphinx", "sphinx", "sphinx-rtd-theme", "sphinxcontrib-github-alt"] +json-logging = ["json-logging"] +test = ["coverage", "nbval", "pytest", "pytest-cov", "requests", "requests-unixsocket", "selenium (==4.1.5)", "testpath"] + +[[package]] +name = "notebook-shim" +version = "0.2.2" +description = "A shim layer for notebook traits and config" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +jupyter-server = ">=1.8,<3" + +[package.extras] +test = ["pytest", "pytest-console-scripts", "pytest-tornasync"] + +[[package]] +name = "numpy" +version = "1.23.5" +description = "NumPy is the fundamental package for array computing with Python." +category = "main" +optional = false +python-versions = ">=3.8" + +[[package]] +name = "numpyro" +version = "0.10.1" +description = "Pyro PPL on NumPy" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +jax = ">=0.2.13" +jaxlib = ">=0.1.65" +multipledispatch = "*" +numpy = "*" +tqdm = "*" + +[package.extras] +cpu = ["jax[cpu] (>=0.2.13)"] +cuda = ["jax[cuda] (>=0.2.13)"] +dev = ["dm-haiku", "flax", "funsor (>=0.4.1)", "graphviz", "jaxns (==1.0.0)", "optax (>=0.0.6)", "pyyaml", "tensorflow-probability (>=0.15.0)"] +doc = ["ipython", "nbsphinx (>=0.8.5)", "readthedocs-sphinx-search (==0.1.0)", "sphinx", "sphinx-gallery", "sphinx-rtd-theme"] +examples = ["arviz", "jupyter", "matplotlib", "pandas", "scikit-learn", "seaborn", "wordcloud"] +test = ["black[jupyter] (>=21.8b0)", "flake8", "isort (>=5.0)", "pyro-api (>=0.1.1)", "pytest (>=4.1)", "scipy (>=1.6,<1.7)"] +tpu = ["jax[tpu] (>=0.2.13)"] + +[[package]] +name = "opt-einsum" +version = "3.3.0" +description = "Optimizing numpys einsum function" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +numpy = ">=1.7" + +[package.extras] +docs = ["numpydoc", "sphinx (==1.2.3)", "sphinx-rtd-theme", "sphinxcontrib-napoleon"] +tests = ["pytest", "pytest-cov", "pytest-pep8"] + +[[package]] +name = "packaging" +version = "22.0" +description = "Core utilities for Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pandas" +version = "1.5.2" +description = "Powerful data structures for data analysis, time series, and statistics" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +numpy = {version = ">=1.21.0", markers = "python_version >= \"3.10\""} +python-dateutil = ">=2.8.1" +pytz = ">=2020.1" + +[package.extras] +test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"] + +[[package]] +name = "pandocfilters" +version = "1.5.0" +description = "Utilities for writing pandoc filters in python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + +[[package]] +name = "pathspec" +version = "0.10.3" +description = "Utility library for gitignore style pattern matching of file paths." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pexpect" +version = "4.8.0" +description = "Pexpect allows easy control of interactive console applications." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pillow" +version = "9.3.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"] +tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "platformdirs" +version = "2.6.0" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo (>=2022.9.29)", "proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-autodoc-typehints (>=1.19.4)"] +test = ["appdirs (==1.4.4)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] + +[[package]] +name = "pluggy" +version = "1.0.0" +description = "plugin and hook calling mechanisms for python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pre-commit" +version = "2.20.0" +description = "A framework for managing and maintaining multi-language pre-commit hooks." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +cfgv = ">=2.0.0" +identify = ">=1.0.0" +nodeenv = ">=0.11.1" +pyyaml = ">=5.1" +toml = "*" +virtualenv = ">=20.0.8" + +[[package]] +name = "prometheus-client" +version = "0.15.0" +description = "Python client for the Prometheus monitoring system." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +twisted = ["twisted"] + +[[package]] +name = "prompt-toolkit" +version = "3.0.36" +description = "Library for building powerful interactive command lines in Python" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.4" +description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "py" +version = "1.11.0" +description = "library with cross-python path, ini-parsing, io, code, log facilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "pycodestyle" +version = "2.9.1" +description = "Python style guide checker" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[[package]] +name = "pyflakes" +version = "2.5.0" +description = "passive checker of Python programs" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pygments" +version = "2.13.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "pyparsing" +version = "3.0.9" +description = "pyparsing module - Classes and methods to define and execute parsing grammars" +category = "main" +optional = false +python-versions = ">=3.6.8" + +[package.extras] +diagrams = ["jinja2", "railroad-diagrams"] + +[[package]] +name = "pyrsistent" +version = "0.19.2" +description = "Persistent/Functional/Immutable data structures" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pytest" +version = "7.2.0" +description = "pytest: simple powerful testing with Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +attrs = ">=19.2.0" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] + +[[package]] +name = "pytest-xdist" +version = "3.1.0" +description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +execnet = ">=1.1" +psutil = {version = ">=3.0", optional = true, markers = "extra == \"psutil\""} +pytest = ">=6.2.0" + +[package.extras] +psutil = ["psutil (>=3.0)"] +setproctitle = ["setproctitle"] +testing = ["filelock"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-json-logger" +version = "2.0.4" +description = "A python library adding a json log formatter" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pytz" +version = "2022.6" +description = "World timezone definitions, modern and historical" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pywin32" +version = "305" +description = "Python for Window Extensions" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pywinpty" +version = "2.0.9" +description = "Pseudo terminal support for Windows from Python." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pyyaml" +version = "6.0" +description = "YAML parser and emitter for Python" +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pyzmq" +version = "24.0.1" +description = "Python bindings for 0MQ" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} +py = {version = "*", markers = "implementation_name == \"pypy\""} + +[[package]] +name = "qtconsole" +version = "5.4.0" +description = "Jupyter Qt console" +category = "dev" +optional = false +python-versions = ">= 3.7" + +[package.dependencies] +ipykernel = ">=4.1" +ipython-genutils = "*" +jupyter-client = ">=4.1" +jupyter-core = "*" +pygments = "*" +pyzmq = ">=17.1" +qtpy = ">=2.0.1" +traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2" + +[package.extras] +doc = ["Sphinx (>=1.3)"] +test = ["flaky", "pytest", "pytest-qt"] + +[[package]] +name = "qtpy" +version = "2.3.0" +description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +packaging = "*" + +[package.extras] +test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"] + +[[package]] +name = "reorder-python-imports" +version = "3.9.0" +description = "Tool for reordering python imports" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +classify-imports = ">=4.1" + +[[package]] +name = "rfc3339-validator" +version = "0.1.4" +description = "A pure python RFC3339 validator" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +six = "*" + +[[package]] +name = "rfc3986-validator" +version = "0.1.1" +description = "Pure python rfc3986 validator" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "rich" +version = "12.6.0" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "dev" +optional = false +python-versions = ">=3.6.3,<4.0.0" + +[package.dependencies] +commonmark = ">=0.9.0,<0.10.0" +pygments = ">=2.6.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] + +[[package]] +name = "scipy" +version = "1.9.3" +description = "Fundamental algorithms for scientific computing in Python" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +numpy = ">=1.18.5,<1.26.0" + +[package.extras] +dev = ["flake8", "mypy", "pycodestyle", "typing_extensions"] +doc = ["matplotlib (>2)", "numpydoc", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-panels (>=0.5.2)", "sphinx-tabs"] +test = ["asv", "gmpy2", "mpmath", "pytest", "pytest-cov", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "send2trash" +version = "1.8.0" +description = "Send file to trash natively under Mac OS X, Windows and Linux." +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +nativelib = ["pyobjc-framework-Cocoa", "pywin32"] +objc = ["pyobjc-framework-Cocoa"] +win32 = ["pywin32"] + +[[package]] +name = "setuptools" +version = "65.6.3" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8 (<5)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] + +[[package]] +name = "setuptools-scm" +version = "7.0.5" +description = "the blessed package to manage your versions by scm tags" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +packaging = ">=20.0" +setuptools = "*" +tomli = ">=1.0.0" +typing-extensions = "*" + +[package.extras] +test = ["pytest (>=6.2)", "virtualenv (>20)"] +toml = ["setuptools (>=42)"] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "sniffio" +version = "1.3.0" +description = "Sniff out which async library your code is running under" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "soupsieve" +version = "2.3.2.post1" +description = "A modern CSS selector implementation for Beautiful Soup." +category = "dev" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "stack-data" +version = "0.6.2" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + +[[package]] +name = "sympy" +version = "1.11.1" +description = "Computer algebra system (CAS) in Python" +category = "main" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +mpmath = ">=0.19" + +[[package]] +name = "terminado" +version = "0.17.1" +description = "Tornado websocket backend for the Xterm.js Javascript terminal emulator library." +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +ptyprocess = {version = "*", markers = "os_name != \"nt\""} +pywinpty = {version = ">=1.1.0", markers = "os_name == \"nt\""} +tornado = ">=6.1.0" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["pre-commit", "pytest (>=7.0)", "pytest-timeout"] + +[[package]] +name = "tinycss2" +version = "1.2.1" +description = "A tiny CSS parser" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +webencodings = ">=0.4" + +[package.extras] +doc = ["sphinx", "sphinx_rtd_theme"] +test = ["flake8", "isort", "pytest"] + +[[package]] +name = "tokenize-rt" +version = "5.0.0" +description = "A wrapper around the stdlib `tokenize` which roundtrips." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "dev" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "tornado" +version = "6.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" +optional = false +python-versions = ">= 3.7" + +[[package]] +name = "tqdm" +version = "4.64.1" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "traitlets" +version = "5.7.1" +description = "Traitlets Python configuration system" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +lint = ["black (>=22.6.0)", "mdformat (>0.7)", "ruff (>=0.0.156)"] +test = ["pre-commit", "pytest"] +typing = ["mypy (>=0.990)"] + +[[package]] +name = "typer" +version = "0.6.1" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +click = ">=7.1.1,<9.0.0" + +[package.extras] +all = ["colorama (>=0.4.3,<0.5.0)", "rich (>=10.11.0,<13.0.0)", "shellingham (>=1.3.0,<2.0.0)"] +dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"] +doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)"] +test = ["black (>=22.3.0,<23.0.0)", "coverage (>=5.2,<6.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.910)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "pytest-xdist (>=1.32.0,<2.0.0)", "rich (>=10.11.0,<13.0.0)", "shellingham (>=1.3.0,<2.0.0)"] + +[[package]] +name = "typing-extensions" +version = "4.4.0" +description = "Backported and Experimental Type Hints for Python 3.7+" +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "uri-template" +version = "1.2.0" +description = "RFC 6570 URI Template Processor" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +dev = ["flake8 (<4.0.0)", "flake8-annotations", "flake8-bugbear", "flake8-commas", "flake8-comprehensions", "flake8-continuation", "flake8-datetimez", "flake8-docstrings", "flake8-import-order", "flake8-literal", "flake8-noqa", "flake8-requirements", "flake8-type-annotations", "flake8-use-fstring", "mypy", "pep8-naming"] + +[[package]] +name = "virtualenv" +version = "20.17.1" +description = "Virtual Python Environment builder" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +distlib = ">=0.3.6,<1" +filelock = ">=3.4.1,<4" +platformdirs = ">=2.4,<3" + +[package.extras] +docs = ["proselint (>=0.13)", "sphinx (>=5.3)", "sphinx-argparse (>=0.3.2)", "sphinx-rtd-theme (>=1)", "towncrier (>=22.8)"] +testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=21.3)", "pytest (>=7.0.1)", "pytest-env (>=0.6.2)", "pytest-freezegun (>=0.4.2)", "pytest-mock (>=3.6.1)", "pytest-randomly (>=3.10.3)", "pytest-timeout (>=2.1)"] + +[[package]] +name = "wcwidth" +version = "0.2.5" +description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "webcolors" +version = "1.12" +description = "A library for working with color names and color values formats defined by HTML and CSS." +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "websocket-client" +version = "1.4.2" +description = "WebSocket client for Python with low level API options" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + +[[package]] +name = "widgetsnbextension" +version = "4.0.4" +description = "Jupyter interactive widgets for Jupyter Notebook" +category = "dev" +optional = false +python-versions = ">=3.7" + +[metadata] +lock-version = "1.1" +python-versions = "~3.10" +content-hash = "e55aedb5cb0f3dd4fc00c957a74fd44b44b9f3efa8adee449d8a9b15b359b14a" + +[metadata.files] +absl-py = [ + {file = "absl-py-1.3.0.tar.gz", hash = "sha256:463c38a08d2e4cef6c498b76ba5bd4858e4c6ef51da1a5a1f27139a022e20248"}, + {file = "absl_py-1.3.0-py3-none-any.whl", hash = "sha256:34995df9bd7a09b3b8749e230408f5a2a2dd7a68a0d33c12a3d0cb15a041a507"}, +] +anyio = [ + {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, + {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, +] +appnope = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] +argon2-cffi = [ + {file = "argon2-cffi-21.3.0.tar.gz", hash = "sha256:d384164d944190a7dd7ef22c6aa3ff197da12962bd04b17f64d4e93d934dba5b"}, + {file = "argon2_cffi-21.3.0-py3-none-any.whl", hash = "sha256:8c976986f2c5c0e5000919e6de187906cfd81fb1c72bf9d88c01177e77da7f80"}, +] +argon2-cffi-bindings = [ + {file = "argon2-cffi-bindings-21.2.0.tar.gz", hash = "sha256:bb89ceffa6c791807d1305ceb77dbfacc5aa499891d2c55661c6459651fc39e3"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ccb949252cb2ab3a08c02024acb77cfb179492d5701c7cbdbfd776124d4d2367"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9524464572e12979364b7d600abf96181d3541da11e23ddf565a32e70bd4dc0d"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b746dba803a79238e925d9046a63aa26bf86ab2a2fe74ce6b009a1c3f5c8f2ae"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58ed19212051f49a523abb1dbe954337dc82d947fb6e5a0da60f7c8471a8476c"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:bd46088725ef7f58b5a1ef7ca06647ebaf0eb4baff7d1d0d177c6cc8744abd86"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_i686.whl", hash = "sha256:8cd69c07dd875537a824deec19f978e0f2078fdda07fd5c42ac29668dda5f40f"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:f1152ac548bd5b8bcecfb0b0371f082037e47128653df2e8ba6e914d384f3c3e"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win32.whl", hash = "sha256:603ca0aba86b1349b147cab91ae970c63118a0f30444d4bc80355937c950c082"}, + {file = "argon2_cffi_bindings-21.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:b2ef1c30440dbbcba7a5dc3e319408b59676e2e039e2ae11a8775ecf482b192f"}, + {file = "argon2_cffi_bindings-21.2.0-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:e415e3f62c8d124ee16018e491a009937f8cf7ebf5eb430ffc5de21b900dad93"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3e385d1c39c520c08b53d63300c3ecc28622f076f4c2b0e6d7e796e9f6502194"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3e3cc67fdb7d82c4718f19b4e7a87123caf8a93fde7e23cf66ac0337d3cb3f"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a22ad9800121b71099d0fb0a65323810a15f2e292f2ba450810a7316e128ee5"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f9f8b450ed0547e3d473fdc8612083fd08dd2120d6ac8f73828df9b7d45bb351"}, + {file = "argon2_cffi_bindings-21.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:93f9bf70084f97245ba10ee36575f0c3f1e7d7724d67d8e5b08e61787c320ed7"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3b9ef65804859d335dc6b31582cad2c5166f0c3e7975f324d9ffaa34ee7e6583"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4966ef5848d820776f5f562a7d45fdd70c2f330c961d0d745b784034bd9f48d"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20ef543a89dee4db46a1a6e206cd015360e5a75822f76df533845c3cbaf72670"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2937d286e2ad0cc79a7087d3c272832865f779430e0cc2b4f3718d3159b0cb"}, + {file = "argon2_cffi_bindings-21.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5e00316dabdaea0b2dd82d141cc66889ced0cdcbfa599e8b471cf22c620c329a"}, +] +arrow = [ + {file = "arrow-1.2.3-py3-none-any.whl", hash = "sha256:5a49ab92e3b7b71d96cd6bfcc4df14efefc9dfa96ea19045815914a6ab6b1fe2"}, + {file = "arrow-1.2.3.tar.gz", hash = "sha256:3934b30ca1b9f292376d9db15b19446088d12ec58629bc3f0da28fd55fb633a1"}, +] +asttokens = [ + {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, + {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, +] +attrs = [ + {file = "attrs-22.1.0-py2.py3-none-any.whl", hash = "sha256:86efa402f67bf2df34f51a335487cf46b1ec130d02b8d39fd248abfd30da551c"}, + {file = "attrs-22.1.0.tar.gz", hash = "sha256:29adc2665447e5191d0e7c568fde78b21f9672d344281d0c6e1ab085429b22b6"}, +] +backcall = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] +beautifulsoup4 = [ + {file = "beautifulsoup4-4.11.1-py3-none-any.whl", hash = "sha256:58d5c3d29f5a36ffeb94f02f0d786cd53014cf9b3b3951d42e0080d8a9498d30"}, + {file = "beautifulsoup4-4.11.1.tar.gz", hash = "sha256:ad9aa55b65ef2808eb405f46cf74df7fcb7044d5cbc26487f96eb2ef2e436693"}, +] +black = [ + {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, + {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, + {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, + {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, + {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, + {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, + {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, + {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, + {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, + {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, + {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, + {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, +] +bleach = [ + {file = "bleach-5.0.1-py3-none-any.whl", hash = "sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a"}, + {file = "bleach-5.0.1.tar.gz", hash = "sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c"}, +] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] +cfgv = [ + {file = "cfgv-3.3.1-py2.py3-none-any.whl", hash = "sha256:c6a0883f3917a037485059700b9e75da2464e6c27051014ad85ba6aaa5884426"}, + {file = "cfgv-3.3.1.tar.gz", hash = "sha256:f5a830efb9ce7a445376bb66ec94c638a9787422f96264c98edc6bdeed8ab736"}, +] +classify-imports = [ + {file = "classify_imports-4.2.0-py2.py3-none-any.whl", hash = "sha256:dbbc264b70a470ed8c6c95976a11dfb8b7f63df44ed1af87328bbed2663f5161"}, + {file = "classify_imports-4.2.0.tar.gz", hash = "sha256:7abfb7ea92149b29d046bd34573d247ba6e68cc28100c801eba4af17964fc40e"}, +] +click = [ + {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, + {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, +] +colorama = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] +comm = [ + {file = "comm-0.1.2-py3-none-any.whl", hash = "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666"}, + {file = "comm-0.1.2.tar.gz", hash = "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062"}, +] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +contourpy = [ + {file = "contourpy-1.0.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:613c665529899b5d9fade7e5d1760111a0b011231277a0d36c49f0d3d6914bd6"}, + {file = "contourpy-1.0.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:78ced51807ccb2f45d4ea73aca339756d75d021069604c2fccd05390dc3c28eb"}, + {file = "contourpy-1.0.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3b1bd7577c530eaf9d2bc52d1a93fef50ac516a8b1062c3d1b9bcec9ebe329b"}, + {file = "contourpy-1.0.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8834c14b8c3dd849005e06703469db9bf96ba2d66a3f88ecc539c9a8982e0ee"}, + {file = "contourpy-1.0.6-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4052a8a4926d4468416fc7d4b2a7b2a3e35f25b39f4061a7e2a3a2748c4fc48"}, + {file = "contourpy-1.0.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c0e1308307a75e07d1f1b5f0f56b5af84538a5e9027109a7bcf6cb47c434e72"}, + {file = "contourpy-1.0.6-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:9fc4e7973ed0e1fe689435842a6e6b330eb7ccc696080dda9a97b1a1b78e41db"}, + {file = "contourpy-1.0.6-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:08e8d09d96219ace6cb596506fb9b64ea5f270b2fb9121158b976d88871fcfd1"}, + {file = "contourpy-1.0.6-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f33da6b5d19ad1bb5e7ad38bb8ba5c426d2178928bc2b2c44e8823ea0ecb6ff3"}, + {file = "contourpy-1.0.6-cp310-cp310-win32.whl", hash = "sha256:12a7dc8439544ed05c6553bf026d5e8fa7fad48d63958a95d61698df0e00092b"}, + {file = "contourpy-1.0.6-cp310-cp310-win_amd64.whl", hash = "sha256:eadad75bf91897f922e0fb3dca1b322a58b1726a953f98c2e5f0606bd8408621"}, + {file = "contourpy-1.0.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:913bac9d064cff033cf3719e855d4f1db9f1c179e0ecf3ba9fdef21c21c6a16a"}, + {file = "contourpy-1.0.6-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:46deb310a276cc5c1fd27958e358cce68b1e8a515fa5a574c670a504c3a3fe30"}, + {file = "contourpy-1.0.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b64f747e92af7da3b85631a55d68c45a2d728b4036b03cdaba4bd94bcc85bd6f"}, + {file = "contourpy-1.0.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50627bf76abb6ba291ad08db583161939c2c5fab38c38181b7833423ab9c7de3"}, + {file = "contourpy-1.0.6-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:358f6364e4873f4d73360b35da30066f40387dd3c427a3e5432c6b28dd24a8fa"}, + {file = "contourpy-1.0.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c78bfbc1a7bff053baf7e508449d2765964d67735c909b583204e3240a2aca45"}, + {file = "contourpy-1.0.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e43255a83835a129ef98f75d13d643844d8c646b258bebd11e4a0975203e018f"}, + {file = "contourpy-1.0.6-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:375d81366afd547b8558c4720337218345148bc2fcffa3a9870cab82b29667f2"}, + {file = "contourpy-1.0.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b98c820608e2dca6442e786817f646d11057c09a23b68d2b3737e6dcb6e4a49b"}, + {file = "contourpy-1.0.6-cp311-cp311-win32.whl", hash = "sha256:0e4854cc02006ad6684ce092bdadab6f0912d131f91c2450ce6dbdea78ee3c0b"}, + {file = "contourpy-1.0.6-cp311-cp311-win_amd64.whl", hash = "sha256:d2eff2af97ea0b61381828b1ad6cd249bbd41d280e53aea5cccd7b2b31b8225c"}, + {file = "contourpy-1.0.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5b117d29433fc8393b18a696d794961464e37afb34a6eeb8b2c37b5f4128a83e"}, + {file = "contourpy-1.0.6-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:341330ed19074f956cb20877ad8d2ae50e458884bfa6a6df3ae28487cc76c768"}, + {file = "contourpy-1.0.6-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:371f6570a81dfdddbb837ba432293a63b4babb942a9eb7aaa699997adfb53278"}, + {file = "contourpy-1.0.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9447c45df407d3ecb717d837af3b70cfef432138530712263730783b3d016512"}, + {file = "contourpy-1.0.6-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:730c27978a0003b47b359935478b7d63fd8386dbb2dcd36c1e8de88cbfc1e9de"}, + {file = "contourpy-1.0.6-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:da1ef35fd79be2926ba80fbb36327463e3656c02526e9b5b4c2b366588b74d9a"}, + {file = "contourpy-1.0.6-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:cd2bc0c8f2e8de7dd89a7f1c10b8844e291bca17d359373203ef2e6100819edd"}, + {file = "contourpy-1.0.6-cp37-cp37m-win32.whl", hash = "sha256:3a1917d3941dd58732c449c810fa7ce46cc305ce9325a11261d740118b85e6f3"}, + {file = "contourpy-1.0.6-cp37-cp37m-win_amd64.whl", hash = "sha256:06ca79e1efbbe2df795822df2fa173d1a2b38b6e0f047a0ec7903fbca1d1847e"}, + {file = "contourpy-1.0.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e626cefff8491bce356221c22af5a3ea528b0b41fbabc719c00ae233819ea0bf"}, + {file = "contourpy-1.0.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:dbe6fe7a1166b1ddd7b6d887ea6fa8389d3f28b5ed3f73a8f40ece1fc5a3d340"}, + {file = "contourpy-1.0.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e13b31d1b4b68db60b3b29f8e337908f328c7f05b9add4b1b5c74e0691180109"}, + {file = "contourpy-1.0.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a79d239fc22c3b8d9d3de492aa0c245533f4f4c7608e5749af866949c0f1b1b9"}, + {file = "contourpy-1.0.6-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e8e686a6db92a46111a1ee0ee6f7fbfae4048f0019de207149f43ac1812cf95"}, + {file = "contourpy-1.0.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2bd02f1a7adff3a1f33e431eb96ab6d7987b039d2946a9b39fe6fb16a1036"}, + {file = "contourpy-1.0.6-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:03d1b9c6b44a9e30d554654c72be89af94fab7510b4b9f62356c64c81cec8b7d"}, + {file = "contourpy-1.0.6-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b48d94386f1994db7c70c76b5808c12e23ed7a4ee13693c2fc5ab109d60243c0"}, + {file = "contourpy-1.0.6-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:208bc904889c910d95aafcf7be9e677726df9ef71e216780170dbb7e37d118fa"}, + {file = "contourpy-1.0.6-cp38-cp38-win32.whl", hash = "sha256:444fb776f58f4906d8d354eb6f6ce59d0a60f7b6a720da6c1ccb839db7c80eb9"}, + {file = "contourpy-1.0.6-cp38-cp38-win_amd64.whl", hash = "sha256:9bc407a6af672da20da74823443707e38ece8b93a04009dca25856c2d9adadb1"}, + {file = "contourpy-1.0.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:aa4674cf3fa2bd9c322982644967f01eed0c91bb890f624e0e0daf7a5c3383e9"}, + {file = "contourpy-1.0.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f56515e7c6fae4529b731f6c117752247bef9cdad2b12fc5ddf8ca6a50965a5"}, + {file = "contourpy-1.0.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:344cb3badf6fc7316ad51835f56ac387bdf86c8e1b670904f18f437d70da4183"}, + {file = "contourpy-1.0.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b1e66346acfb17694d46175a0cea7d9036f12ed0c31dfe86f0f405eedde2bdd"}, + {file = "contourpy-1.0.6-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8468b40528fa1e15181cccec4198623b55dcd58306f8815a793803f51f6c474a"}, + {file = "contourpy-1.0.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1dedf4c64185a216c35eb488e6f433297c660321275734401760dafaeb0ad5c2"}, + {file = "contourpy-1.0.6-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:494efed2c761f0f37262815f9e3c4bb9917c5c69806abdee1d1cb6611a7174a0"}, + {file = "contourpy-1.0.6-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:75a2e638042118118ab39d337da4c7908c1af74a8464cad59f19fbc5bbafec9b"}, + {file = "contourpy-1.0.6-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a628bba09ba72e472bf7b31018b6281fd4cc903f0888049a3724afba13b6e0b8"}, + {file = "contourpy-1.0.6-cp39-cp39-win32.whl", hash = "sha256:e1739496c2f0108013629aa095cc32a8c6363444361960c07493818d0dea2da4"}, + {file = "contourpy-1.0.6-cp39-cp39-win_amd64.whl", hash = "sha256:a457ee72d9032e86730f62c5eeddf402e732fdf5ca8b13b41772aa8ae13a4563"}, + {file = "contourpy-1.0.6-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d912f0154a20a80ea449daada904a7eb6941c83281a9fab95de50529bfc3a1da"}, + {file = "contourpy-1.0.6-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4081918147fc4c29fad328d5066cfc751da100a1098398742f9f364be63803fc"}, + {file = "contourpy-1.0.6-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0537cc1195245bbe24f2913d1f9211b8f04eb203de9044630abd3664c6cc339c"}, + {file = "contourpy-1.0.6-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcd556c8fc37a342dd636d7eef150b1399f823a4462f8c968e11e1ebeabee769"}, + {file = "contourpy-1.0.6-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:f6ca38dd8d988eca8f07305125dec6f54ac1c518f1aaddcc14d08c01aebb6efc"}, + {file = "contourpy-1.0.6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c1baa49ab9fedbf19d40d93163b7d3e735d9cd8d5efe4cce9907902a6dad391f"}, + {file = "contourpy-1.0.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:211dfe2bd43bf5791d23afbe23a7952e8ac8b67591d24be3638cabb648b3a6eb"}, + {file = "contourpy-1.0.6-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c38c6536c2d71ca2f7e418acaf5bca30a3af7f2a2fa106083c7d738337848dbe"}, + {file = "contourpy-1.0.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b1ee48a130da4dd0eb8055bbab34abf3f6262957832fd575e0cab4979a15a41"}, + {file = "contourpy-1.0.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:5641927cc5ae66155d0c80195dc35726eae060e7defc18b7ab27600f39dd1fe7"}, + {file = "contourpy-1.0.6-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7ee394502026d68652c2824348a40bf50f31351a668977b51437131a90d777ea"}, + {file = "contourpy-1.0.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b97454ed5b1368b66ed414c754cba15b9750ce69938fc6153679787402e4cdf"}, + {file = "contourpy-1.0.6-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0236875c5a0784215b49d00ebbe80c5b6b5d5244b3655a36dda88105334dea17"}, + {file = "contourpy-1.0.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:84c593aeff7a0171f639da92cb86d24954bbb61f8a1b530f74eb750a14685832"}, + {file = "contourpy-1.0.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:9b0e7fe7f949fb719b206548e5cde2518ffb29936afa4303d8a1c4db43dcb675"}, + {file = "contourpy-1.0.6.tar.gz", hash = "sha256:6e459ebb8bb5ee4c22c19cc000174f8059981971a33ce11e17dddf6aca97a142"}, +] +cycler = [ + {file = "cycler-0.11.0-py3-none-any.whl", hash = "sha256:3a27e95f763a428a739d2add979fa7494c912a32c17c4c38c4d5f082cad165a3"}, + {file = "cycler-0.11.0.tar.gz", hash = "sha256:9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"}, +] +debugpy = [ + {file = "debugpy-1.6.4-cp310-cp310-macosx_10_15_x86_64.whl", hash = "sha256:6ae238943482c78867ac707c09122688efb700372b617ffd364261e5e41f7a2f"}, + {file = "debugpy-1.6.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a39e7da178e1f22f4bc04b57f085e785ed1bcf424aaf318835a1a7129eefe35"}, + {file = "debugpy-1.6.4-cp310-cp310-win32.whl", hash = "sha256:143f79d0798a9acea21cd1d111badb789f19d414aec95fa6389cfea9485ddfb1"}, + {file = "debugpy-1.6.4-cp310-cp310-win_amd64.whl", hash = "sha256:563f148f94434365ec0ce94739c749aabf60bf67339e68a9446499f3582d62f3"}, + {file = "debugpy-1.6.4-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:1caee68f7e254267df908576c0d0938f8f88af16383f172cb9f0602e24c30c01"}, + {file = "debugpy-1.6.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40e2a83d31a16b83666f19fa06d97b2cc311af88e6266590579737949971a17e"}, + {file = "debugpy-1.6.4-cp37-cp37m-win32.whl", hash = "sha256:82229790442856962aec4767b98ba2559fe0998f897e9f21fb10b4fd24b6c436"}, + {file = "debugpy-1.6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:67edf033f9e512958f7b472975ff9d9b7ff64bf4440f6f6ae44afdc66b89e6b6"}, + {file = "debugpy-1.6.4-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:4ab5e938925e5d973f567d6ef32751b17d10f3be3a8c4d73c52f53e727f69bf1"}, + {file = "debugpy-1.6.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8df268e9f72fc06efc2e75e8dc8e2b881d6a397356faec26efb2ee70b6863b7"}, + {file = "debugpy-1.6.4-cp38-cp38-win32.whl", hash = "sha256:86bd25f38f8b6c5d430a5e2931eebbd5f580c640f4819fcd236d0498790c7204"}, + {file = "debugpy-1.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:62ba4179b372a62abf9c89b56997d70a4100c6dea6c2a4e0e4be5f45920b3253"}, + {file = "debugpy-1.6.4-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d2968e589bda4e485a9c61f113754a28e48d88c5152ed8e0b2564a1fadbe50a5"}, + {file = "debugpy-1.6.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e62b8034ede98932b92268669318848a0d42133d857087a3b9cec03bb844c615"}, + {file = "debugpy-1.6.4-cp39-cp39-win32.whl", hash = "sha256:3d9c31baf64bf959a593996c108e911c5a9aa1693a296840e5469473f064bcec"}, + {file = "debugpy-1.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:ea4bf208054e6d41749f17612066da861dff10102729d32c85b47f155223cf2b"}, + {file = "debugpy-1.6.4-py2.py3-none-any.whl", hash = "sha256:e886a1296cd20a10172e94788009ce74b759e54229ebd64a43fa5c2b4e62cd76"}, + {file = "debugpy-1.6.4.zip", hash = "sha256:d5ab9bd3f4e7faf3765fd52c7c43c074104ab1e109621dc73219099ed1a5399d"}, +] +decorator = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] +defusedxml = [ + {file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"}, + {file = "defusedxml-0.7.1.tar.gz", hash = "sha256:1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"}, +] +distlib = [ + {file = "distlib-0.3.6-py2.py3-none-any.whl", hash = "sha256:f35c4b692542ca110de7ef0bea44d73981caeb34ca0b9b6b2e6d7790dda8f80e"}, + {file = "distlib-0.3.6.tar.gz", hash = "sha256:14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"}, +] +duckdb = [ + {file = "duckdb-0.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e566514f9327f89264e98ac14ee7a84fbd9857328028258422c3e8375ee19d25"}, + {file = "duckdb-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b31c2883de5b19591a2852165e6b3f9821f77af649835f27bc146b26e4aa30cb"}, + {file = "duckdb-0.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:998165b2fb1f1d2b0ad742096015ea70878f7d40304643c7424c3ed3ddf07bfc"}, + {file = "duckdb-0.6.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3941b3a1e8a1cdb7b90ab3917b87af816e71f9692e5ada7f19b6b60969f731e5"}, + {file = "duckdb-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:143611bd1b7c13343f087d4d423a7a8a4f33a114c5326171e867febf3f0fcfe1"}, + {file = "duckdb-0.6.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:125ba45e8b08f28858f918ec9cbd3a19975e5d8d9e8275ef4ad924028a616e14"}, + {file = "duckdb-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e609a65b31c92f2f7166831f74b56f5ed54b33d8c2c4b4c3974c26fdc50464c5"}, + {file = "duckdb-0.6.1-cp310-cp310-win32.whl", hash = "sha256:b39045074fb9a3f068496475a5d627ad4fa572fa3b4980e3b479c11d0b706f2d"}, + {file = "duckdb-0.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:16fa96ffaa3d842a9355a633fb8bc092d119be08d4bc02013946d8594417bc14"}, + {file = "duckdb-0.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b4bbe2f6c1b109c626f9318eee80934ad2a5b81a51409c6b5083c6c5f9bdb125"}, + {file = "duckdb-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cfea36b58928ce778d17280d4fb3bf0a2d7cff407667baedd69c5b41463ac0fd"}, + {file = "duckdb-0.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0b64eb53d0d0695814bf1b65c0f91ab7ed66b515f89c88038f65ad5e0762571c"}, + {file = "duckdb-0.6.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35b01bc724e1933293f4c34f410d2833bfbb56d5743b515d805bbfed0651476e"}, + {file = "duckdb-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fec2c2466654ce786843bda2bfba71e0e4719106b41d36b17ceb1901e130aa71"}, + {file = "duckdb-0.6.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:82cd30f5cf368658ef879b1c60276bc8650cf67cfe3dc3e3009438ba39251333"}, + {file = "duckdb-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a782bbfb7f5e97d4a9c834c9e78f023fb8b3f6687c22ca99841e6ed944b724da"}, + {file = "duckdb-0.6.1-cp311-cp311-win32.whl", hash = "sha256:e3702d4a9ade54c6403f6615a98bbec2020a76a60f5db7fcf085df1bd270e66e"}, + {file = "duckdb-0.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:93b074f473d68c944b0eeb2edcafd91ad11da8432b484836efaaab4e26351d48"}, + {file = "duckdb-0.6.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:adae183924d6d479202c39072e37d440b511326e84525bcb7432bca85f86caba"}, + {file = "duckdb-0.6.1-cp36-cp36m-win32.whl", hash = "sha256:546a1cd17595bd1dd009daf6f36705aa6f95337154360ce44932157d353dcd80"}, + {file = "duckdb-0.6.1-cp36-cp36m-win_amd64.whl", hash = "sha256:87b0d00eb9d1a7ebe437276203e0cdc93b4a2154ba9688c65e8d2a8735839ec6"}, + {file = "duckdb-0.6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8442e074de6e1969c3d2b24363a5a6d7f866d5ac3f4e358e357495b389eff6c1"}, + {file = "duckdb-0.6.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a6bf2ae7bec803352dade14561cb0b461b2422e70f75d9f09b36ba2dad2613b"}, + {file = "duckdb-0.6.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5054792f22733f89d9cbbced2bafd8772d72d0fe77f159310221cefcf981c680"}, + {file = "duckdb-0.6.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:21cc503dffc2c68bb825e4eb3098e82f40e910b3d09e1b3b7f090d39ad53fbea"}, + {file = "duckdb-0.6.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:54b3da77ad893e99c073087ff7f75a8c98154ac5139d317149f12b74367211db"}, + {file = "duckdb-0.6.1-cp37-cp37m-win32.whl", hash = "sha256:f1d709aa6a26172a3eab804b57763d5cdc1a4b785ac1fc2b09568578e52032ee"}, + {file = "duckdb-0.6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f4edcaa471d791393e37f63e3c7c728fa6324e3ac7e768b9dc2ea49065cd37cc"}, + {file = "duckdb-0.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d218c2dd3bda51fb79e622b7b2266183ac9493834b55010aa01273fa5b7a7105"}, + {file = "duckdb-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c7155cb93ab432eca44b651256c359281d26d927ff43badaf1d2276dd770832"}, + {file = "duckdb-0.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0925778200090d3d5d8b6bb42b4d05d24db1e8912484ba3b7e7b7f8569f17dcb"}, + {file = "duckdb-0.6.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b544dd04bb851d08bc68b317a7683cec6091547ae75555d075f8c8a7edb626e"}, + {file = "duckdb-0.6.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2c37d5a0391cf3a3a66e63215968ffb78e6b84f659529fa4bd10478f6203071"}, + {file = "duckdb-0.6.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ce376966260eb5c351fcc6af627a979dbbcae3efeb2e70f85b23aa45a21e289d"}, + {file = "duckdb-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:73c974b09dd08dff5e8bdedba11c7d0aa0fc46ca93954ee7d19e1e18c9883ac1"}, + {file = "duckdb-0.6.1-cp38-cp38-win32.whl", hash = "sha256:bfe39ed3a03e8b1ed764f58f513b37b24afe110d245803a41655d16d391ad9f1"}, + {file = "duckdb-0.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:afa97d982dbe6b125631a17e222142e79bee88f7a13fc4cee92d09285e31ec83"}, + {file = "duckdb-0.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c35ff4b1117096ef72d101524df0079da36c3735d52fcf1d907ccffa63bd6202"}, + {file = "duckdb-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5c54910fbb6de0f21d562e18a5c91540c19876db61b862fc9ffc8e31be8b3f03"}, + {file = "duckdb-0.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:99a7172563a3ae67d867572ce27cf3962f58e76f491cb7f602f08c2af39213b3"}, + {file = "duckdb-0.6.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7363ffe857d00216b659116647fbf1e925cb3895699015d4a4e50b746de13041"}, + {file = "duckdb-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06c1cef25f896b2284ba048108f645c72fab5c54aa5a6f62f95663f44ff8a79b"}, + {file = "duckdb-0.6.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e92dd6aad7e8c29d002947376b6f5ce28cae29eb3b6b58a64a46cdbfc5cb7943"}, + {file = "duckdb-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4b280b2d8a01ecd4fe2feab041df70233c534fafbe33a38565b52c1e017529c7"}, + {file = "duckdb-0.6.1-cp39-cp39-win32.whl", hash = "sha256:d9212d76e90b8469743924a4d22bef845be310d0d193d54ae17d9ef1f753cfa7"}, + {file = "duckdb-0.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:00b7be8f67ec1a8edaa8844f521267baa1a795f4c482bfad56c72c26e1862ab2"}, + {file = "duckdb-0.6.1.tar.gz", hash = "sha256:6d26e9f1afcb924a6057785e506810d48332d4764ddc4a5b414d0f2bf0cacfb4"}, +] +entrypoints = [ + {file = "entrypoints-0.4-py3-none-any.whl", hash = "sha256:f174b5ff827504fd3cd97cc3f8649f3693f51538c7e4bdf3ef002c8429d42f9f"}, + {file = "entrypoints-0.4.tar.gz", hash = "sha256:b706eddaa9218a19ebcd67b56818f05bb27589b1ca9e8d797b74affad4ccacd4"}, +] +exceptiongroup = [ + {file = "exceptiongroup-1.0.4-py3-none-any.whl", hash = "sha256:542adf9dea4055530d6e1279602fa5cb11dab2395fa650b8674eaec35fc4a828"}, + {file = "exceptiongroup-1.0.4.tar.gz", hash = "sha256:bd14967b79cd9bdb54d97323216f8fdf533e278df937aa2a90089e7d6e06e5ec"}, +] +execnet = [ + {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, + {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, +] +executing = [ + {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, + {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, +] +fastjsonschema = [ + {file = "fastjsonschema-2.16.2-py3-none-any.whl", hash = "sha256:21f918e8d9a1a4ba9c22e09574ba72267a6762d47822db9add95f6454e51cc1c"}, + {file = "fastjsonschema-2.16.2.tar.gz", hash = "sha256:01e366f25d9047816fe3d288cbfc3e10541daf0af2044763f3d0ade42476da18"}, +] +filelock = [ + {file = "filelock-3.8.2-py3-none-any.whl", hash = "sha256:8df285554452285f79c035efb0c861eb33a4bcfa5b7a137016e32e6a90f9792c"}, + {file = "filelock-3.8.2.tar.gz", hash = "sha256:7565f628ea56bfcd8e54e42bdc55da899c85c1abfe1b5bcfd147e9188cebb3b2"}, +] +flake8 = [ + {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, + {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, +] +fonttools = [ + {file = "fonttools-4.38.0-py3-none-any.whl", hash = "sha256:820466f43c8be8c3009aef8b87e785014133508f0de64ec469e4efb643ae54fb"}, + {file = "fonttools-4.38.0.zip", hash = "sha256:2bb244009f9bf3fa100fc3ead6aeb99febe5985fa20afbfbaa2f8946c2fbdaf1"}, +] +fqdn = [ + {file = "fqdn-1.5.1-py3-none-any.whl", hash = "sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014"}, + {file = "fqdn-1.5.1.tar.gz", hash = "sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f"}, +] +identify = [ + {file = "identify-2.5.9-py2.py3-none-any.whl", hash = "sha256:a390fb696e164dbddb047a0db26e57972ae52fbd037ae68797e5ae2f4492485d"}, + {file = "identify-2.5.9.tar.gz", hash = "sha256:906036344ca769539610436e40a684e170c3648b552194980bb7b617a8daeb9f"}, +] +idna = [ + {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, + {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, +] +iniconfig = [ + {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, + {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, +] +ipykernel = [ + {file = "ipykernel-6.19.2-py3-none-any.whl", hash = "sha256:1374a55c57ca7a7286c3d8b15799cd76e1a2381b6b1fea99c494b955988926b6"}, + {file = "ipykernel-6.19.2.tar.gz", hash = "sha256:1ab68d3d3654196266baa93990055413e167263ffbe4cfe834f871bcd3d3506d"}, +] +ipython = [ + {file = "ipython-8.7.0-py3-none-any.whl", hash = "sha256:352042ddcb019f7c04e48171b4dd78e4c4bb67bf97030d170e154aac42b656d9"}, + {file = "ipython-8.7.0.tar.gz", hash = "sha256:882899fe78d5417a0aa07f995db298fa28b58faeba2112d2e3a4c95fe14bb738"}, +] +ipython-genutils = [ + {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"}, + {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"}, +] +ipywidgets = [ + {file = "ipywidgets-8.0.3-py3-none-any.whl", hash = "sha256:db7dd35fb1217636cbdbe0ba0bd2216d91a7695cb28b5c1dca17e62cd51378de"}, + {file = "ipywidgets-8.0.3.tar.gz", hash = "sha256:2ec50df8538a1d4ddd5d454830d010922ad1015e81ac23efb27c0908bbc1eece"}, +] +isoduration = [ + {file = "isoduration-20.11.0-py3-none-any.whl", hash = "sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042"}, + {file = "isoduration-20.11.0.tar.gz", hash = "sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9"}, +] +jax = [ + {file = "jax-0.3.24.tar.gz", hash = "sha256:54c0002926a1898e7c7afdc2a14fbdcac04188bcaa359bc3389a30ea464a513a"}, +] +jaxlib = [ + {file = "jaxlib-0.3.22-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:6cea1023e4fe62c4d4340f9c0eeeb0c184dcabd7f2cb30a92bdaab742acd5680"}, + {file = "jaxlib-0.3.22-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ec8af9e5984191c72a7e86b9e9654117c4301400b6c2ce0a1470e47d5c3ace6d"}, + {file = "jaxlib-0.3.22-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:c36c28d2393ed4174490dc1f4994506de6dd23801cf0a827d0c07470831c594e"}, + {file = "jaxlib-0.3.22-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:651522950a8492bacc28e3c5bfc1be213891b3bf2f5488e22513f976cec323ee"}, + {file = "jaxlib-0.3.22-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:05bacb0f0e379db65b5bc2ae3829adbfa47fb560ee737533f578943feff51529"}, + {file = "jaxlib-0.3.22-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:5f28d826118da92c6d9ae0765be5969a5419168bda623763ef9145019f2e6d96"}, + {file = "jaxlib-0.3.22-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7caf7661f757c6c4abc7ec6b6b44b5d59314a91c610279f31f93dc4545c1dc04"}, + {file = "jaxlib-0.3.22-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:415a82b095b54246a716f45204c9bd6bf26163ade0ae07733f866b2ecf0ff5ba"}, + {file = "jaxlib-0.3.22-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:34737fd98fadbe9e0422a8ab302e2981aff23e1700d2a1f148d1271697c23f2b"}, + {file = "jaxlib-0.3.22-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a93c9cd0f20daba2bf630f041476552dc21a6ecd529a3482355a74dd7ba33f86"}, + {file = "jaxlib-0.3.22-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:eecad425ae6a1889ef92bba2b92af1070fcc7fbd2d4c8c7976b8393476ff1629"}, + {file = "jaxlib-0.3.24+cuda11.cudnn82-cp310-cp310-manylinux2014_x86_64.whl", hash = "sha256:e085ba12bed53602af7cd5134de69d04bb9a0b27637658451c4c13d12912d489"}, + {file = "jaxlib-0.3.24+cuda11.cudnn82-cp311-cp311-manylinux2014_x86_64.whl", hash = "sha256:596bc17da95c8e0b4334a9837d9484da08a95348222ae9cbd186271a697bc2cf"}, + {file = "jaxlib-0.3.24+cuda11.cudnn82-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:3ec8be6a7b10667d8f983a0dfc520e0b604b8da1bcf7687d9eb253b0d9916061"}, + {file = "jaxlib-0.3.24+cuda11.cudnn82-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:27e618f55d9fcd7a43f6c9a6c62a26c8d0d1764c62b05503db67fe4526551d00"}, + {file = "jaxlib-0.3.24+cuda11.cudnn82-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:31f8d835048aa309ec1fcae0f3823a82039108962a7eea013b81c18decaa16a3"}, +] +jedi = [ + {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, + {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, +] +jinja2 = [ + {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, + {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, +] +jsonpointer = [ + {file = "jsonpointer-2.3-py2.py3-none-any.whl", hash = "sha256:51801e558539b4e9cd268638c078c6c5746c9ac96bc38152d443400e4f3793e9"}, + {file = "jsonpointer-2.3.tar.gz", hash = "sha256:97cba51526c829282218feb99dab1b1e6bdf8efd1c43dc9d57be093c0d69c99a"}, +] +jsonschema = [ + {file = "jsonschema-4.17.3-py3-none-any.whl", hash = "sha256:a870ad254da1a8ca84b6a2905cac29d265f805acc57af304784962a2aa6508f6"}, + {file = "jsonschema-4.17.3.tar.gz", hash = "sha256:0f864437ab8b6076ba6707453ef8f98a6a0d512a80e93f8abdb676f737ecb60d"}, +] +jupyter = [ + {file = "jupyter-1.0.0-py2.py3-none-any.whl", hash = "sha256:5b290f93b98ffbc21c0c7e749f054b3267782166d72fa5e3ed1ed4eaf34a2b78"}, + {file = "jupyter-1.0.0.tar.gz", hash = "sha256:d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f"}, + {file = "jupyter-1.0.0.zip", hash = "sha256:3e1f86076bbb7c8c207829390305a2b1fe836d471ed54be66a3b8c41e7f46cc7"}, +] +jupyter-client = [ + {file = "jupyter_client-7.4.8-py3-none-any.whl", hash = "sha256:d4a67ae86ee014bcb96bd8190714f6af921f2b0f52f4208b086aa5acfd9f8d65"}, + {file = "jupyter_client-7.4.8.tar.gz", hash = "sha256:109a3c33b62a9cf65aa8325850a0999a795fac155d9de4f7555aef5f310ee35a"}, +] +jupyter-console = [ + {file = "jupyter_console-6.4.4-py3-none-any.whl", hash = "sha256:756df7f4f60c986e7bc0172e4493d3830a7e6e75c08750bbe59c0a5403ad6dee"}, + {file = "jupyter_console-6.4.4.tar.gz", hash = "sha256:172f5335e31d600df61613a97b7f0352f2c8250bbd1092ef2d658f77249f89fb"}, +] +jupyter-core = [ + {file = "jupyter_core-5.1.0-py3-none-any.whl", hash = "sha256:f5740d99606958544396914b08e67b668f45e7eff99ab47a7f4bcead419c02f4"}, + {file = "jupyter_core-5.1.0.tar.gz", hash = "sha256:a5ae7c09c55c0b26f692ec69323ba2b62e8d7295354d20f6cd57b749de4a05bf"}, +] +jupyter-events = [ + {file = "jupyter_events-0.5.0-py3-none-any.whl", hash = "sha256:6f7b67bf42b8a370c992187194ed02847dfa02307a7aebe9913e2d3979b9b6b8"}, + {file = "jupyter_events-0.5.0.tar.gz", hash = "sha256:e27ffdd6138699d47d42cb65ae6d79334ff7c0d923694381c991ce56a140f2cd"}, +] +jupyter-server = [ + {file = "jupyter_server-2.0.1-py3-none-any.whl", hash = "sha256:3bc09974a5290249de6924a614933e6f4f3d6d11f3061423a9f4e0271064a8b3"}, + {file = "jupyter_server-2.0.1.tar.gz", hash = "sha256:6e71268380ad7e4f2d9dda2f3e51a4fd4d1997b5390d5acdb74c7a195cfe4c00"}, +] +jupyter-server-terminals = [ + {file = "jupyter_server_terminals-0.4.2-py3-none-any.whl", hash = "sha256:c0eaacee6cac21b597c23c38dd523dc4e9b947f97af5101e0396c08f28db3e37"}, + {file = "jupyter_server_terminals-0.4.2.tar.gz", hash = "sha256:0e68cba38eb0f9f2d93f1160e0a7f84b943d0d0c4d2f77eeaabbb4a2919c47c6"}, +] +jupyterlab-pygments = [ + {file = "jupyterlab_pygments-0.2.2-py2.py3-none-any.whl", hash = "sha256:2405800db07c9f770863bcf8049a529c3dd4d3e28536638bd7c1c01d2748309f"}, + {file = "jupyterlab_pygments-0.2.2.tar.gz", hash = "sha256:7405d7fde60819d905a9fa8ce89e4cd830e318cdad22a0030f7a901da705585d"}, +] +jupyterlab-widgets = [ + {file = "jupyterlab_widgets-3.0.4-py3-none-any.whl", hash = "sha256:4c9275daa6d20fc96c3aea45756ece7110850d035b0b93a6a40e918016b927da"}, + {file = "jupyterlab_widgets-3.0.4.tar.gz", hash = "sha256:9a568e022b8bb53ab23291f6ddb52f8002b789c2c5763378cbc882be1d619be8"}, +] +jupytext = [ + {file = "jupytext-1.14.4-py3-none-any.whl", hash = "sha256:c5f5647112aa4ea4c61c31e48a216a4c49d315a0fc43d4f483529ed3b0b1a0d9"}, + {file = "jupytext-1.14.4.tar.gz", hash = "sha256:4c09f1b8f837888dec11c1253e813b5cacdc20eecefcf2f9a0b870ae6bd44a65"}, +] +kiwisolver = [ + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:2f5e60fabb7343a836360c4f0919b8cd0d6dbf08ad2ca6b9cf90bf0c76a3c4f6"}, + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:10ee06759482c78bdb864f4109886dff7b8a56529bc1609d4f1112b93fe6423c"}, + {file = "kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c79ebe8f3676a4c6630fd3f777f3cfecf9289666c84e775a67d1d358578dc2e3"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abbe9fa13da955feb8202e215c4018f4bb57469b1b78c7a4c5c7b93001699938"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7577c1987baa3adc4b3c62c33bd1118c3ef5c8ddef36f0f2c950ae0b199e100d"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ad8285b01b0d4695102546b342b493b3ccc6781fc28c8c6a1bb63e95d22f09"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8ed58b8acf29798b036d347791141767ccf65eee7f26bde03a71c944449e53de"}, + {file = "kiwisolver-1.4.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a68b62a02953b9841730db7797422f983935aeefceb1679f0fc85cbfbd311c32"}, + {file = "kiwisolver-1.4.4-cp310-cp310-win32.whl", hash = "sha256:e92a513161077b53447160b9bd8f522edfbed4bd9759e4c18ab05d7ef7e49408"}, + {file = "kiwisolver-1.4.4-cp310-cp310-win_amd64.whl", hash = "sha256:3fe20f63c9ecee44560d0e7f116b3a747a5d7203376abeea292ab3152334d004"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ea21f66820452a3f5d1655f8704a60d66ba1191359b96541eaf457710a5fc6"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bc9db8a3efb3e403e4ecc6cd9489ea2bac94244f80c78e27c31dcc00d2790ac2"}, + {file = "kiwisolver-1.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d5b61785a9ce44e5a4b880272baa7cf6c8f48a5180c3e81c59553ba0cb0821ca"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2dbb44c3f7e6c4d3487b31037b1bdbf424d97687c1747ce4ff2895795c9bf69"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295ecd49304dcf3bfbfa45d9a081c96509e95f4b9d0eb7ee4ec0530c4a96514"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4bd472dbe5e136f96a4b18f295d159d7f26fd399136f5b17b08c4e5f498cd494"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf7d9fce9bcc4752ca4a1b80aabd38f6d19009ea5cbda0e0856983cf6d0023f5"}, + {file = "kiwisolver-1.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d6601aed50c74e0ef02f4204da1816147a6d3fbdc8b3872d263338a9052c51"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:877272cf6b4b7e94c9614f9b10140e198d2186363728ed0f701c6eee1baec1da"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:db608a6757adabb32f1cfe6066e39b3706d8c3aa69bbc353a5b61edad36a5cb4"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:5853eb494c71e267912275e5586fe281444eb5e722de4e131cddf9d442615626"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f0a1dbdb5ecbef0d34eb77e56fcb3e95bbd7e50835d9782a45df81cc46949750"}, + {file = "kiwisolver-1.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:283dffbf061a4ec60391d51e6155e372a1f7a4f5b15d59c8505339454f8989e4"}, + {file = "kiwisolver-1.4.4-cp311-cp311-win32.whl", hash = "sha256:d06adcfa62a4431d404c31216f0f8ac97397d799cd53800e9d3efc2fbb3cf14e"}, + {file = "kiwisolver-1.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:e7da3fec7408813a7cebc9e4ec55afed2d0fd65c4754bc376bf03498d4e92686"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:62ac9cc684da4cf1778d07a89bf5f81b35834cb96ca523d3a7fb32509380cbf6"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41dae968a94b1ef1897cb322b39360a0812661dba7c682aa45098eb8e193dbdf"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:02f79693ec433cb4b5f51694e8477ae83b3205768a6fb48ffba60549080e295b"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0611a0a2a518464c05ddd5a3a1a0e856ccc10e67079bb17f265ad19ab3c7597"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:db5283d90da4174865d520e7366801a93777201e91e79bacbac6e6927cbceede"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1041feb4cda8708ce73bb4dcb9ce1ccf49d553bf87c3954bdfa46f0c3f77252c"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-win32.whl", hash = "sha256:a553dadda40fef6bfa1456dc4be49b113aa92c2a9a9e8711e955618cd69622e3"}, + {file = "kiwisolver-1.4.4-cp37-cp37m-win_amd64.whl", hash = "sha256:03baab2d6b4a54ddbb43bba1a3a2d1627e82d205c5cf8f4c924dc49284b87166"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:841293b17ad704d70c578f1f0013c890e219952169ce8a24ebc063eecf775454"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f4f270de01dd3e129a72efad823da90cc4d6aafb64c410c9033aba70db9f1ff0"}, + {file = "kiwisolver-1.4.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f9f39e2f049db33a908319cf46624a569b36983c7c78318e9726a4cb8923b26c"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c97528e64cb9ebeff9701e7938653a9951922f2a38bd847787d4a8e498cc83ae"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d1573129aa0fd901076e2bfb4275a35f5b7aa60fbfb984499d661ec950320b0"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad881edc7ccb9d65b0224f4e4d05a1e85cf62d73aab798943df6d48ab0cd79a1"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b428ef021242344340460fa4c9185d0b1f66fbdbfecc6c63eff4b7c29fad429d"}, + {file = "kiwisolver-1.4.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2e407cb4bd5a13984a6c2c0fe1845e4e41e96f183e5e5cd4d77a857d9693494c"}, + {file = "kiwisolver-1.4.4-cp38-cp38-win32.whl", hash = "sha256:75facbe9606748f43428fc91a43edb46c7ff68889b91fa31f53b58894503a191"}, + {file = "kiwisolver-1.4.4-cp38-cp38-win_amd64.whl", hash = "sha256:5bce61af018b0cb2055e0e72e7d65290d822d3feee430b7b8203d8a855e78766"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8c808594c88a025d4e322d5bb549282c93c8e1ba71b790f539567932722d7bd8"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f0a71d85ecdd570ded8ac3d1c0f480842f49a40beb423bb8014539a9f32a5897"}, + {file = "kiwisolver-1.4.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b533558eae785e33e8c148a8d9921692a9fe5aa516efbdff8606e7d87b9d5824"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:efda5fc8cc1c61e4f639b8067d118e742b812c930f708e6667a5ce0d13499e29"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7c43e1e1206cd421cd92e6b3280d4385d41d7166b3ed577ac20444b6995a445f"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8d3bd6c72b2dd9decf16ce70e20abcb3274ba01b4e1c96031e0c4067d1e7cd"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4ea39b0ccc4f5d803e3337dd46bcce60b702be4d86fd0b3d7531ef10fd99a1ac"}, + {file = "kiwisolver-1.4.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:968f44fdbf6dd757d12920d63b566eeb4d5b395fd2d00d29d7ef00a00582aac9"}, + {file = "kiwisolver-1.4.4-cp39-cp39-win32.whl", hash = "sha256:da7e547706e69e45d95e116e6939488d62174e033b763ab1496b4c29b76fabea"}, + {file = "kiwisolver-1.4.4-cp39-cp39-win_amd64.whl", hash = "sha256:ba59c92039ec0a66103b1d5fe588fa546373587a7d68f5c96f743c3396afc04b"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:91672bacaa030f92fc2f43b620d7b337fd9a5af28b0d6ed3f77afc43c4a64b5a"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:787518a6789009c159453da4d6b683f468ef7a65bbde796bcea803ccf191058d"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da152d8cdcab0e56e4f45eb08b9aea6455845ec83172092f09b0e077ece2cf7a"}, + {file = "kiwisolver-1.4.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ecb1fa0db7bf4cff9dac752abb19505a233c7f16684c5826d1f11ebd9472b871"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:28bc5b299f48150b5f822ce68624e445040595a4ac3d59251703779836eceff9"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:81e38381b782cc7e1e46c4e14cd997ee6040768101aefc8fa3c24a4cc58e98f8"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2a66fdfb34e05b705620dd567f5a03f239a088d5a3f321e7b6ac3239d22aa286"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:872b8ca05c40d309ed13eb2e582cab0c5a05e81e987ab9c521bf05ad1d5cf5cb"}, + {file = "kiwisolver-1.4.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:70e7c2e7b750585569564e2e5ca9845acfaa5da56ac46df68414f29fea97be9f"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9f85003f5dfa867e86d53fac6f7e6f30c045673fa27b603c397753bebadc3008"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e307eb9bd99801f82789b44bb45e9f541961831c7311521b13a6c85afc09767"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1792d939ec70abe76f5054d3f36ed5656021dcad1322d1cc996d4e54165cef9"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cb459eea32a4e2cf18ba5fcece2dbdf496384413bc1bae15583f19e567f3b2"}, + {file = "kiwisolver-1.4.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:36dafec3d6d6088d34e2de6b85f9d8e2324eb734162fba59d2ba9ed7a2043d5b"}, + {file = "kiwisolver-1.4.4.tar.gz", hash = "sha256:d41997519fcba4a1e46eb4a2fe31bc12f0ff957b2b81bac28db24744f333e955"}, +] +line-profiler = [ + {file = "line_profiler-3.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:409e32944176d4004df4308cc37674c1e48ea7444918c129edf5da68ded305c6"}, + {file = "line_profiler-3.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d675732d221b5a4bfe48f57bd0ed2f759ad919e650890f4f5f1cf6536c1bc23"}, + {file = "line_profiler-3.5.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf3c88730d8a39a03c536d729f50d78d0947bf836c5809993781c8d730a7a4a2"}, + {file = "line_profiler-3.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:916ba4f353fe0c6edf44394d02de8ea4e6bd5225e3c8c876a6879e8c61fec36a"}, + {file = "line_profiler-3.5.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4086531248ca399fecace5a2fb1c6e0723e07d72406b123f1f9ff91d0519ac7c"}, + {file = "line_profiler-3.5.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7ee3e8df7ee4fa6ce12010adf4a5938862367b7d903614568abae307ffa46062"}, + {file = "line_profiler-3.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8971a6ccd7f0ffda45f30ca39b55877c455fc020308336093d6e468352436196"}, + {file = "line_profiler-3.5.1-cp310-cp310-win32.whl", hash = "sha256:ff31ae34e3db3c161321d714106e9d3b9755c231ef1b716539fefc49b2855d21"}, + {file = "line_profiler-3.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:ee44195421ccb95f8f039d27d8ec797f3ad25e816c08365302c8b03963a798e6"}, + {file = "line_profiler-3.5.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:691c66477ed832141e76359d5b25db97d04cf9620fbce6a84de1989eb0d3a2fe"}, + {file = "line_profiler-3.5.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fbe8a7e9f38721020ce3fcb73567dc862735c9a138458477840b4fb03440153"}, + {file = "line_profiler-3.5.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dddd5f2239d716ed471d9b0ae5ecaae612c051e53acc592331dc1e467c630366"}, + {file = "line_profiler-3.5.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b69c751b6619d36f3870512840e0190b9d19f76fb09183ce3274c69544ab959"}, + {file = "line_profiler-3.5.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:b932246545b6108a3bf615d2b0e5a2c905b6f4a127d27608d996a0c6ea0f2b7a"}, + {file = "line_profiler-3.5.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:801fd7f357e8fc6910441e0b26fad311a6e81b2d34b90b64ba4be3bc366ff193"}, + {file = "line_profiler-3.5.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:9a26590d701aebc8ce80930e623596b16cf03db44ae6845b956559b51b1f4d8f"}, + {file = "line_profiler-3.5.1-cp36-cp36m-win32.whl", hash = "sha256:2d5de461e7ff4662b8c32a8328974e6e0ad433e1dc2e596c7105d8a8ffcc6dc4"}, + {file = "line_profiler-3.5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:25930cb6d4a72f2f2e238bd80d0a875ec79ee98910be0aa969c7ca45ec68efb1"}, + {file = "line_profiler-3.5.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:71b939326d3d385372c5891900afc06e65eacdc108b28da006f59f4fee937c61"}, + {file = "line_profiler-3.5.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ef1acc35f8ffa8b4027963c1f596bfd7b2b279eecb8cbb0c662befeb09fc443"}, + {file = "line_profiler-3.5.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b8d03ab7f09af40140ec9e616d1b6dfa9b90495bd2d65a0a47052a147274bc"}, + {file = "line_profiler-3.5.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b54ff0f75736631f2b956c35ce7436519b8b8a40f99909106eb409140ed51190"}, + {file = "line_profiler-3.5.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:532604be45bcf1f581d9784350d7b5775b15565bf1355905edd4892aa601b40d"}, + {file = "line_profiler-3.5.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:3a5b6287752468c4548fae267dbb0f6ccb5db5d16c8828886e1ef29ffdfa9e2d"}, + {file = "line_profiler-3.5.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4b680c3746a585df81e8200d28a94bfef9c7ae0748752012c90ddb4e5ca51440"}, + {file = "line_profiler-3.5.1-cp37-cp37m-win32.whl", hash = "sha256:f7f7e3de6dab51209ee1e2efe48e4c832d23d166a349dd37dedb6b0545931171"}, + {file = "line_profiler-3.5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:93407999338a446b682cd2203b09d3c461e96ba5ab7b98900b3e43c51ca50986"}, + {file = "line_profiler-3.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eaae9d4583160a963ed37850dabb564311fbe90a2a93add52230ece25bd861e4"}, + {file = "line_profiler-3.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c906fa9f8bcbdd3d2e5c8bd3245924c6b0a1563ca2134560d8ba3509723b8ed4"}, + {file = "line_profiler-3.5.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c00208161aa03f220df57c5a7eaa734332221d64b91cea5c45d4405a1d1f056"}, + {file = "line_profiler-3.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef1e3b30a26e7bc24b4b4f5d0107190a200bee19c0ee0074a06a3389ab578889"}, + {file = "line_profiler-3.5.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b5357eb328b425a4b5ba20e2b70f94d8c6a43b38b968dffe91fc0600a35b0a03"}, + {file = "line_profiler-3.5.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:82b02a7b18b307258bed445dd13ab351e53737cb7fe212a5670d98f4271b4b69"}, + {file = "line_profiler-3.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3917f4d5a01ea297b0474898f51c5dd1a7df4806ffc019da28d04089fc4e0896"}, + {file = "line_profiler-3.5.1-cp38-cp38-win32.whl", hash = "sha256:13df519e1cdf63e16325ec6cab1f441c8b588dc6148dfdd92e99f44521dc74e8"}, + {file = "line_profiler-3.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:8d2280cf96644137b8033f74e712f8bce80c509f08c8a64546b795905b035066"}, + {file = "line_profiler-3.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:861ccf4981867ee44e381bcfffff98c1572ba055903d52d7eb4b345c66e992e8"}, + {file = "line_profiler-3.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9102ddec1008faf4861f72ed4ec1f7a338ffe7230ead5ea7545388f57cbc39a"}, + {file = "line_profiler-3.5.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d38e2e878ba47fc1f9a0e4194c0d4fa034c3c9eb9fbc954c0ccb4046672ed326"}, + {file = "line_profiler-3.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9efc10ac7ff16f8fe9f1ce6a0a783db2e3f617d5916f8d58a41f6afb13841694"}, + {file = "line_profiler-3.5.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d7b3cb1718bce1d35d40b3ab0bbbd528c67d930f9308622aabeaf2ed26f163ba"}, + {file = "line_profiler-3.5.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:e2b6cbc9ad958c3421df6b57e318bfaa78b9e1697528729e0a0b00d25b4a7c7a"}, + {file = "line_profiler-3.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:20233371c4abf160358dbbf0702228d9dd72c66682eb284651db3a76d6d1e9f0"}, + {file = "line_profiler-3.5.1-cp39-cp39-win32.whl", hash = "sha256:2ea6ce644513bb53047c3081702371869a54ffafb2cb523c6c6b6589da623764"}, + {file = "line_profiler-3.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:0c717a9c08255da9f79595330f20502a32806ba96823716b8a42b26ee7b0f183"}, + {file = "line_profiler-3.5.1.tar.gz", hash = "sha256:77400208bfbd5d4341938a9a3a4fb5194f5af7fc23b2d496c913755f8310e8b8"}, +] +markdown-it-py = [ + {file = "markdown-it-py-2.1.0.tar.gz", hash = "sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da"}, + {file = "markdown_it_py-2.1.0-py3-none-any.whl", hash = "sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27"}, +] +markupsafe = [ + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win32.whl", hash = "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6"}, + {file = "MarkupSafe-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win32.whl", hash = "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff"}, + {file = "MarkupSafe-2.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win32.whl", hash = "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1"}, + {file = "MarkupSafe-2.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win32.whl", hash = "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c"}, + {file = "MarkupSafe-2.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247"}, + {file = "MarkupSafe-2.1.1.tar.gz", hash = "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b"}, +] +matplotlib = [ + {file = "matplotlib-3.6.2-cp310-cp310-macosx_10_12_universal2.whl", hash = "sha256:8d0068e40837c1d0df6e3abf1cdc9a34a6d2611d90e29610fa1d2455aeb4e2e5"}, + {file = "matplotlib-3.6.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:252957e208c23db72ca9918cb33e160c7833faebf295aaedb43f5b083832a267"}, + {file = "matplotlib-3.6.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d50e8c1e571ee39b5dfbc295c11ad65988879f68009dd281a6e1edbc2ff6c18c"}, + {file = "matplotlib-3.6.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d840adcad7354be6f2ec28d0706528b0026e4c3934cc6566b84eac18633eab1b"}, + {file = "matplotlib-3.6.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:78ec3c3412cf277e6252764ee4acbdbec6920cc87ad65862272aaa0e24381eee"}, + {file = "matplotlib-3.6.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9347cc6822f38db2b1d1ce992f375289670e595a2d1c15961aacbe0977407dfc"}, + {file = "matplotlib-3.6.2-cp310-cp310-win32.whl", hash = "sha256:e0bbee6c2a5bf2a0017a9b5e397babb88f230e6f07c3cdff4a4c4bc75ed7c617"}, + {file = "matplotlib-3.6.2-cp310-cp310-win_amd64.whl", hash = "sha256:8a0ae37576ed444fe853709bdceb2be4c7df6f7acae17b8378765bd28e61b3ae"}, + {file = "matplotlib-3.6.2-cp311-cp311-macosx_10_12_universal2.whl", hash = "sha256:5ecfc6559132116dedfc482d0ad9df8a89dc5909eebffd22f3deb684132d002f"}, + {file = "matplotlib-3.6.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9f335e5625feb90e323d7e3868ec337f7b9ad88b5d633f876e3b778813021dab"}, + {file = "matplotlib-3.6.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2604c6450f9dd2c42e223b1f5dca9643a23cfecc9fde4a94bb38e0d2693b136"}, + {file = "matplotlib-3.6.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5afe0a7ea0e3a7a257907060bee6724a6002b7eec55d0db16fd32409795f3e1"}, + {file = "matplotlib-3.6.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca0e7a658fbafcddcaefaa07ba8dae9384be2343468a8e011061791588d839fa"}, + {file = "matplotlib-3.6.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32d29c8c26362169c80c5718ce367e8c64f4dd068a424e7110df1dd2ed7bd428"}, + {file = "matplotlib-3.6.2-cp311-cp311-win32.whl", hash = "sha256:5024b8ed83d7f8809982d095d8ab0b179bebc07616a9713f86d30cf4944acb73"}, + {file = "matplotlib-3.6.2-cp311-cp311-win_amd64.whl", hash = "sha256:52c2bdd7cd0bf9d5ccdf9c1816568fd4ccd51a4d82419cc5480f548981b47dd0"}, + {file = "matplotlib-3.6.2-cp38-cp38-macosx_10_12_universal2.whl", hash = "sha256:8a8dbe2cb7f33ff54b16bb5c500673502a35f18ac1ed48625e997d40c922f9cc"}, + {file = "matplotlib-3.6.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:380d48c15ec41102a2b70858ab1dedfa33eb77b2c0982cb65a200ae67a48e9cb"}, + {file = "matplotlib-3.6.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0844523dfaaff566e39dbfa74e6f6dc42e92f7a365ce80929c5030b84caa563a"}, + {file = "matplotlib-3.6.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:7f716b6af94dc1b6b97c46401774472f0867e44595990fe80a8ba390f7a0a028"}, + {file = "matplotlib-3.6.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:74153008bd24366cf099d1f1e83808d179d618c4e32edb0d489d526523a94d9f"}, + {file = "matplotlib-3.6.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f41e57ad63d336fe50d3a67bb8eaa26c09f6dda6a59f76777a99b8ccd8e26aec"}, + {file = "matplotlib-3.6.2-cp38-cp38-win32.whl", hash = "sha256:d0e9ac04065a814d4cf2c6791a2ad563f739ae3ae830d716d54245c2b96fead6"}, + {file = "matplotlib-3.6.2-cp38-cp38-win_amd64.whl", hash = "sha256:8a9d899953c722b9afd7e88dbefd8fb276c686c3116a43c577cfabf636180558"}, + {file = "matplotlib-3.6.2-cp39-cp39-macosx_10_12_universal2.whl", hash = "sha256:f04f97797df35e442ed09f529ad1235d1f1c0f30878e2fe09a2676b71a8801e0"}, + {file = "matplotlib-3.6.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3964934731fd7a289a91d315919cf757f293969a4244941ab10513d2351b4e83"}, + {file = "matplotlib-3.6.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:168093410b99f647ba61361b208f7b0d64dde1172b5b1796d765cd243cadb501"}, + {file = "matplotlib-3.6.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e16dcaecffd55b955aa5e2b8a804379789c15987e8ebd2f32f01398a81e975b"}, + {file = "matplotlib-3.6.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83dc89c5fd728fdb03b76f122f43b4dcee8c61f1489e232d9ad0f58020523e1c"}, + {file = "matplotlib-3.6.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:795ad83940732b45d39b82571f87af0081c120feff2b12e748d96bb191169e33"}, + {file = "matplotlib-3.6.2-cp39-cp39-win32.whl", hash = "sha256:19d61ee6414c44a04addbe33005ab1f87539d9f395e25afcbe9a3c50ce77c65c"}, + {file = "matplotlib-3.6.2-cp39-cp39-win_amd64.whl", hash = "sha256:5ba73aa3aca35d2981e0b31230d58abb7b5d7ca104e543ae49709208d8ce706a"}, + {file = "matplotlib-3.6.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:1836f366272b1557a613f8265db220eb8dd883202bbbabe01bad5a4eadfd0c95"}, + {file = "matplotlib-3.6.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eda9d1b43f265da91fb9ae10d6922b5a986e2234470a524e6b18f14095b20d2"}, + {file = "matplotlib-3.6.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec9be0f4826cdb3a3a517509dcc5f87f370251b76362051ab59e42b6b765f8c4"}, + {file = "matplotlib-3.6.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3cef89888a466228fc4e4b2954e740ce8e9afde7c4315fdd18caa1b8de58ca17"}, + {file = "matplotlib-3.6.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:54fa9fe27f5466b86126ff38123261188bed568c1019e4716af01f97a12fe812"}, + {file = "matplotlib-3.6.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e68be81cd8c22b029924b6d0ee814c337c0e706b8d88495a617319e5dd5441c3"}, + {file = "matplotlib-3.6.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0ca2c60d3966dfd6608f5f8c49b8a0fcf76de6654f2eda55fc6ef038d5a6f27"}, + {file = "matplotlib-3.6.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4426c74761790bff46e3d906c14c7aab727543293eed5a924300a952e1a3a3c1"}, + {file = "matplotlib-3.6.2.tar.gz", hash = "sha256:b03fd10a1709d0101c054883b550f7c4c5e974f751e2680318759af005964990"}, +] +matplotlib-inline = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] +mccabe = [ + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, +] +mdit-py-plugins = [ + {file = "mdit-py-plugins-0.3.3.tar.gz", hash = "sha256:5cfd7e7ac582a594e23ba6546a2f406e94e42eb33ae596d0734781261c251260"}, + {file = "mdit_py_plugins-0.3.3-py3-none-any.whl", hash = "sha256:36d08a29def19ec43acdcd8ba471d3ebab132e7879d442760d963f19913e04b9"}, +] +mdurl = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] +mistune = [ + {file = "mistune-2.0.4-py2.py3-none-any.whl", hash = "sha256:182cc5ee6f8ed1b807de6b7bb50155df7b66495412836b9a74c8fbdfc75fe36d"}, + {file = "mistune-2.0.4.tar.gz", hash = "sha256:9ee0a66053e2267aba772c71e06891fa8f1af6d4b01d5e84e267b4570d4d9808"}, +] +mpmath = [ + {file = "mpmath-1.2.1-py3-none-any.whl", hash = "sha256:604bc21bd22d2322a177c73bdb573994ef76e62edd595d17e00aff24b0667e5c"}, + {file = "mpmath-1.2.1.tar.gz", hash = "sha256:79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a"}, +] +multipledispatch = [ + {file = "multipledispatch-0.6.0-py2-none-any.whl", hash = "sha256:407e6d8c5fa27075968ba07c4db3ef5f02bea4e871e959570eeb69ee39a6565b"}, + {file = "multipledispatch-0.6.0-py3-none-any.whl", hash = "sha256:a55c512128fb3f7c2efd2533f2550accb93c35f1045242ef74645fc92a2c3cba"}, + {file = "multipledispatch-0.6.0.tar.gz", hash = "sha256:a7ab1451fd0bf9b92cab3edbd7b205622fb767aeefb4fb536c2e3de9e0a38bea"}, +] +mypy-extensions = [ + {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, + {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, +] +nbclassic = [ + {file = "nbclassic-0.4.8-py3-none-any.whl", hash = "sha256:cbf05df5842b420d5cece0143462380ea9d308ff57c2dc0eb4d6e035b18fbfb3"}, + {file = "nbclassic-0.4.8.tar.gz", hash = "sha256:c74d8a500f8e058d46b576a41e5bc640711e1032cf7541dde5f73ea49497e283"}, +] +nbclient = [ + {file = "nbclient-0.7.2-py3-none-any.whl", hash = "sha256:d97ac6257de2794f5397609df754fcbca1a603e94e924eb9b99787c031ae2e7c"}, + {file = "nbclient-0.7.2.tar.gz", hash = "sha256:884a3f4a8c4fc24bb9302f263e0af47d97f0d01fe11ba714171b320c8ac09547"}, +] +nbconvert = [ + {file = "nbconvert-7.2.6-py3-none-any.whl", hash = "sha256:f933e82fe48b9a421e4252249f6c0a9a9940dc555642b4729f3f1f526bb16779"}, + {file = "nbconvert-7.2.6.tar.gz", hash = "sha256:c9c0e4b26326f7658ebf4cda0acc591b9727c4e3ee3ede962f70c11833b71b40"}, +] +nbformat = [ + {file = "nbformat-5.7.0-py3-none-any.whl", hash = "sha256:1b05ec2c552c2f1adc745f4eddce1eac8ca9ffd59bb9fd859e827eaa031319f9"}, + {file = "nbformat-5.7.0.tar.gz", hash = "sha256:1d4760c15c1a04269ef5caf375be8b98dd2f696e5eb9e603ec2bf091f9b0d3f3"}, +] +nest-asyncio = [ + {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, + {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, +] +nodeenv = [ + {file = "nodeenv-1.7.0-py2.py3-none-any.whl", hash = "sha256:27083a7b96a25f2f5e1d8cb4b6317ee8aeda3bdd121394e5ac54e498028a042e"}, + {file = "nodeenv-1.7.0.tar.gz", hash = "sha256:e0e7f7dfb85fc5394c6fe1e8fa98131a2473e04311a45afb6508f7cf1836fa2b"}, +] +notebook = [ + {file = "notebook-6.5.2-py3-none-any.whl", hash = "sha256:e04f9018ceb86e4fa841e92ea8fb214f8d23c1cedfde530cc96f92446924f0e4"}, + {file = "notebook-6.5.2.tar.gz", hash = "sha256:c1897e5317e225fc78b45549a6ab4b668e4c996fd03a04e938fe5e7af2bfffd0"}, +] +notebook-shim = [ + {file = "notebook_shim-0.2.2-py3-none-any.whl", hash = "sha256:9c6c30f74c4fbea6fce55c1be58e7fd0409b1c681b075dcedceb005db5026949"}, + {file = "notebook_shim-0.2.2.tar.gz", hash = "sha256:090e0baf9a5582ff59b607af523ca2db68ff216da0c69956b62cab2ef4fc9c3f"}, +] +numpy = [ + {file = "numpy-1.23.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9c88793f78fca17da0145455f0d7826bcb9f37da4764af27ac945488116efe63"}, + {file = "numpy-1.23.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e9f4c4e51567b616be64e05d517c79a8a22f3606499941d97bb76f2ca59f982d"}, + {file = "numpy-1.23.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7903ba8ab592b82014713c491f6c5d3a1cde5b4a3bf116404e08f5b52f6daf43"}, + {file = "numpy-1.23.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e05b1c973a9f858c74367553e236f287e749465f773328c8ef31abe18f691e1"}, + {file = "numpy-1.23.5-cp310-cp310-win32.whl", hash = "sha256:522e26bbf6377e4d76403826ed689c295b0b238f46c28a7251ab94716da0b280"}, + {file = "numpy-1.23.5-cp310-cp310-win_amd64.whl", hash = "sha256:dbee87b469018961d1ad79b1a5d50c0ae850000b639bcb1b694e9981083243b6"}, + {file = "numpy-1.23.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ce571367b6dfe60af04e04a1834ca2dc5f46004ac1cc756fb95319f64c095a96"}, + {file = "numpy-1.23.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56e454c7833e94ec9769fa0f86e6ff8e42ee38ce0ce1fa4cbb747ea7e06d56aa"}, + {file = "numpy-1.23.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5039f55555e1eab31124a5768898c9e22c25a65c1e0037f4d7c495a45778c9f2"}, + {file = "numpy-1.23.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58f545efd1108e647604a1b5aa809591ccd2540f468a880bedb97247e72db387"}, + {file = "numpy-1.23.5-cp311-cp311-win32.whl", hash = "sha256:b2a9ab7c279c91974f756c84c365a669a887efa287365a8e2c418f8b3ba73fb0"}, + {file = "numpy-1.23.5-cp311-cp311-win_amd64.whl", hash = "sha256:0cbe9848fad08baf71de1a39e12d1b6310f1d5b2d0ea4de051058e6e1076852d"}, + {file = "numpy-1.23.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f063b69b090c9d918f9df0a12116029e274daf0181df392839661c4c7ec9018a"}, + {file = "numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0aaee12d8883552fadfc41e96b4c82ee7d794949e2a7c3b3a7201e968c7ecab9"}, + {file = "numpy-1.23.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92c8c1e89a1f5028a4c6d9e3ccbe311b6ba53694811269b992c0b224269e2398"}, + {file = "numpy-1.23.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d208a0f8729f3fb790ed18a003f3a57895b989b40ea4dce4717e9cf4af62c6bb"}, + {file = "numpy-1.23.5-cp38-cp38-win32.whl", hash = "sha256:06005a2ef6014e9956c09ba07654f9837d9e26696a0470e42beedadb78c11b07"}, + {file = "numpy-1.23.5-cp38-cp38-win_amd64.whl", hash = "sha256:ca51fcfcc5f9354c45f400059e88bc09215fb71a48d3768fb80e357f3b457e1e"}, + {file = "numpy-1.23.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8969bfd28e85c81f3f94eb4a66bc2cf1dbdc5c18efc320af34bffc54d6b1e38f"}, + {file = "numpy-1.23.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a7ac231a08bb37f852849bbb387a20a57574a97cfc7b6cabb488a4fc8be176de"}, + {file = "numpy-1.23.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf837dc63ba5c06dc8797c398db1e223a466c7ece27a1f7b5232ba3466aafe3d"}, + {file = "numpy-1.23.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:33161613d2269025873025b33e879825ec7b1d831317e68f4f2f0f84ed14c719"}, + {file = "numpy-1.23.5-cp39-cp39-win32.whl", hash = "sha256:af1da88f6bc3d2338ebbf0e22fe487821ea4d8e89053e25fa59d1d79786e7481"}, + {file = "numpy-1.23.5-cp39-cp39-win_amd64.whl", hash = "sha256:09b7847f7e83ca37c6e627682f145856de331049013853f344f37b0c9690e3df"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:abdde9f795cf292fb9651ed48185503a2ff29be87770c3b8e2a14b0cd7aa16f8"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9a909a8bae284d46bbfdefbdd4a262ba19d3bc9921b1e76126b1d21c3c34135"}, + {file = "numpy-1.23.5-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:01dd17cbb340bf0fc23981e52e1d18a9d4050792e8fb8363cecbf066a84b827d"}, + {file = "numpy-1.23.5.tar.gz", hash = "sha256:1b1766d6f397c18153d40015ddfc79ddb715cabadc04d2d228d4e5a8bc4ded1a"}, +] +numpyro = [ + {file = "numpyro-0.10.1-py3-none-any.whl", hash = "sha256:9833ee834c3bb1e57acd30dca6263aaf8926bf3b92f903e1a3276621fc3a184c"}, + {file = "numpyro-0.10.1.tar.gz", hash = "sha256:dfa896f01c8df43ddd41663af2b3e2fc4aea73489e669474e83329b183b29150"}, +] +opt-einsum = [ + {file = "opt_einsum-3.3.0-py3-none-any.whl", hash = "sha256:2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147"}, + {file = "opt_einsum-3.3.0.tar.gz", hash = "sha256:59f6475f77bbc37dcf7cd748519c0ec60722e91e63ca114e68821c0c54a46549"}, +] +packaging = [ + {file = "packaging-22.0-py3-none-any.whl", hash = "sha256:957e2148ba0e1a3b282772e791ef1d8083648bc131c8ab0c1feba110ce1146c3"}, + {file = "packaging-22.0.tar.gz", hash = "sha256:2198ec20bd4c017b8f9717e00f0c8714076fc2fd93816750ab48e2c41de2cfd3"}, +] +pandas = [ + {file = "pandas-1.5.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e9dbacd22555c2d47f262ef96bb4e30880e5956169741400af8b306bbb24a273"}, + {file = "pandas-1.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e2b83abd292194f350bb04e188f9379d36b8dfac24dd445d5c87575f3beaf789"}, + {file = "pandas-1.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2552bffc808641c6eb471e55aa6899fa002ac94e4eebfa9ec058649122db5824"}, + {file = "pandas-1.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fc87eac0541a7d24648a001d553406f4256e744d92df1df8ebe41829a915028"}, + {file = "pandas-1.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d0d8fd58df5d17ddb8c72a5075d87cd80d71b542571b5f78178fb067fa4e9c72"}, + {file = "pandas-1.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:4aed257c7484d01c9a194d9a94758b37d3d751849c05a0050c087a358c41ad1f"}, + {file = "pandas-1.5.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:375262829c8c700c3e7cbb336810b94367b9c4889818bbd910d0ecb4e45dc261"}, + {file = "pandas-1.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc3cd122bea268998b79adebbb8343b735a5511ec14efb70a39e7acbc11ccbdc"}, + {file = "pandas-1.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b4f5a82afa4f1ff482ab8ded2ae8a453a2cdfde2001567b3ca24a4c5c5ca0db3"}, + {file = "pandas-1.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8092a368d3eb7116e270525329a3e5c15ae796ccdf7ccb17839a73b4f5084a39"}, + {file = "pandas-1.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6257b314fc14958f8122779e5a1557517b0f8e500cfb2bd53fa1f75a8ad0af2"}, + {file = "pandas-1.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:82ae615826da838a8e5d4d630eb70c993ab8636f0eff13cb28aafc4291b632b5"}, + {file = "pandas-1.5.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:457d8c3d42314ff47cc2d6c54f8fc0d23954b47977b2caed09cd9635cb75388b"}, + {file = "pandas-1.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c009a92e81ce836212ce7aa98b219db7961a8b95999b97af566b8dc8c33e9519"}, + {file = "pandas-1.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:71f510b0efe1629bf2f7c0eadb1ff0b9cf611e87b73cd017e6b7d6adb40e2b3a"}, + {file = "pandas-1.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a40dd1e9f22e01e66ed534d6a965eb99546b41d4d52dbdb66565608fde48203f"}, + {file = "pandas-1.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ae7e989f12628f41e804847a8cc2943d362440132919a69429d4dea1f164da0"}, + {file = "pandas-1.5.2-cp38-cp38-win32.whl", hash = "sha256:530948945e7b6c95e6fa7aa4be2be25764af53fba93fe76d912e35d1c9ee46f5"}, + {file = "pandas-1.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:73f219fdc1777cf3c45fde7f0708732ec6950dfc598afc50588d0d285fddaefc"}, + {file = "pandas-1.5.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9608000a5a45f663be6af5c70c3cbe634fa19243e720eb380c0d378666bc7702"}, + {file = "pandas-1.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:315e19a3e5c2ab47a67467fc0362cb36c7c60a93b6457f675d7d9615edad2ebe"}, + {file = "pandas-1.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e18bc3764cbb5e118be139b3b611bc3fbc5d3be42a7e827d1096f46087b395eb"}, + {file = "pandas-1.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0183cb04a057cc38fde5244909fca9826d5d57c4a5b7390c0cc3fa7acd9fa883"}, + {file = "pandas-1.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:344021ed3e639e017b452aa8f5f6bf38a8806f5852e217a7594417fb9bbfa00e"}, + {file = "pandas-1.5.2-cp39-cp39-win32.whl", hash = "sha256:e7469271497960b6a781eaa930cba8af400dd59b62ec9ca2f4d31a19f2f91090"}, + {file = "pandas-1.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:c218796d59d5abd8780170c937b812c9637e84c32f8271bbf9845970f8c1351f"}, + {file = "pandas-1.5.2.tar.gz", hash = "sha256:220b98d15cee0b2cd839a6358bd1f273d0356bf964c1a1aeb32d47db0215488b"}, +] +pandocfilters = [ + {file = "pandocfilters-1.5.0-py2.py3-none-any.whl", hash = "sha256:33aae3f25fd1a026079f5d27bdd52496f0e0803b3469282162bafdcbdf6ef14f"}, + {file = "pandocfilters-1.5.0.tar.gz", hash = "sha256:0b679503337d233b4339a817bfc8c50064e2eff681314376a47cb582305a7a38"}, +] +parso = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] +pathspec = [ + {file = "pathspec-0.10.3-py3-none-any.whl", hash = "sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6"}, + {file = "pathspec-0.10.3.tar.gz", hash = "sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6"}, +] +pexpect = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] +pickleshare = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] +pillow = [ + {file = "Pillow-9.3.0-1-cp37-cp37m-win32.whl", hash = "sha256:e6ea6b856a74d560d9326c0f5895ef8050126acfdc7ca08ad703eb0081e82b74"}, + {file = "Pillow-9.3.0-1-cp37-cp37m-win_amd64.whl", hash = "sha256:32a44128c4bdca7f31de5be641187367fe2a450ad83b833ef78910397db491aa"}, + {file = "Pillow-9.3.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:0b7257127d646ff8676ec8a15520013a698d1fdc48bc2a79ba4e53df792526f2"}, + {file = "Pillow-9.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b90f7616ea170e92820775ed47e136208e04c967271c9ef615b6fbd08d9af0e3"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68943d632f1f9e3dce98908e873b3a090f6cba1cbb1b892a9e8d97c938871fbe"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be55f8457cd1eac957af0c3f5ece7bc3f033f89b114ef30f710882717670b2a8"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d77adcd56a42d00cc1be30843d3426aa4e660cab4a61021dc84467123f7a00c"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:829f97c8e258593b9daa80638aee3789b7df9da5cf1336035016d76f03b8860c"}, + {file = "Pillow-9.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:801ec82e4188e935c7f5e22e006d01611d6b41661bba9fe45b60e7ac1a8f84de"}, + {file = "Pillow-9.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:871b72c3643e516db4ecf20efe735deb27fe30ca17800e661d769faab45a18d7"}, + {file = "Pillow-9.3.0-cp310-cp310-win32.whl", hash = "sha256:655a83b0058ba47c7c52e4e2df5ecf484c1b0b0349805896dd350cbc416bdd91"}, + {file = "Pillow-9.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:9f47eabcd2ded7698106b05c2c338672d16a6f2a485e74481f524e2a23c2794b"}, + {file = "Pillow-9.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:57751894f6618fd4308ed8e0c36c333e2f5469744c34729a27532b3db106ee20"}, + {file = "Pillow-9.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7db8b751ad307d7cf238f02101e8e36a128a6cb199326e867d1398067381bff4"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3033fbe1feb1b59394615a1cafaee85e49d01b51d54de0cbf6aa8e64182518a1"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22b012ea2d065fd163ca096f4e37e47cd8b59cf4b0fd47bfca6abb93df70b34c"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a65733d103311331875c1dca05cb4606997fd33d6acfed695b1232ba1df193"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:502526a2cbfa431d9fc2a079bdd9061a2397b842bb6bc4239bb176da00993812"}, + {file = "Pillow-9.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:90fb88843d3902fe7c9586d439d1e8c05258f41da473952aa8b328d8b907498c"}, + {file = "Pillow-9.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:89dca0ce00a2b49024df6325925555d406b14aa3efc2f752dbb5940c52c56b11"}, + {file = "Pillow-9.3.0-cp311-cp311-win32.whl", hash = "sha256:3168434d303babf495d4ba58fc22d6604f6e2afb97adc6a423e917dab828939c"}, + {file = "Pillow-9.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:18498994b29e1cf86d505edcb7edbe814d133d2232d256db8c7a8ceb34d18cef"}, + {file = "Pillow-9.3.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:772a91fc0e03eaf922c63badeca75e91baa80fe2f5f87bdaed4280662aad25c9"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa4107d1b306cdf8953edde0534562607fe8811b6c4d9a486298ad31de733b2"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4012d06c846dc2b80651b120e2cdd787b013deb39c09f407727ba90015c684f"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77ec3e7be99629898c9a6d24a09de089fa5356ee408cdffffe62d67bb75fdd72"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:6c738585d7a9961d8c2821a1eb3dcb978d14e238be3d70f0a706f7fa9316946b"}, + {file = "Pillow-9.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:828989c45c245518065a110434246c44a56a8b2b2f6347d1409c787e6e4651ee"}, + {file = "Pillow-9.3.0-cp37-cp37m-win32.whl", hash = "sha256:82409ffe29d70fd733ff3c1025a602abb3e67405d41b9403b00b01debc4c9a29"}, + {file = "Pillow-9.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:41e0051336807468be450d52b8edd12ac60bebaa97fe10c8b660f116e50b30e4"}, + {file = "Pillow-9.3.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:b03ae6f1a1878233ac620c98f3459f79fd77c7e3c2b20d460284e1fb370557d4"}, + {file = "Pillow-9.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4390e9ce199fc1951fcfa65795f239a8a4944117b5935a9317fb320e7767b40f"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40e1ce476a7804b0fb74bcfa80b0a2206ea6a882938eaba917f7a0f004b42502"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0a06a052c5f37b4ed81c613a455a81f9a3a69429b4fd7bb913c3fa98abefc20"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03150abd92771742d4a8cd6f2fa6246d847dcd2e332a18d0c15cc75bf6703040"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:15c42fb9dea42465dfd902fb0ecf584b8848ceb28b41ee2b58f866411be33f07"}, + {file = "Pillow-9.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:51e0e543a33ed92db9f5ef69a0356e0b1a7a6b6a71b80df99f1d181ae5875636"}, + {file = "Pillow-9.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:3dd6caf940756101205dffc5367babf288a30043d35f80936f9bfb37f8355b32"}, + {file = "Pillow-9.3.0-cp38-cp38-win32.whl", hash = "sha256:f1ff2ee69f10f13a9596480335f406dd1f70c3650349e2be67ca3139280cade0"}, + {file = "Pillow-9.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:276a5ca930c913f714e372b2591a22c4bd3b81a418c0f6635ba832daec1cbcfc"}, + {file = "Pillow-9.3.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:73bd195e43f3fadecfc50c682f5055ec32ee2c933243cafbfdec69ab1aa87cad"}, + {file = "Pillow-9.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1c7c8ae3864846fc95f4611c78129301e203aaa2af813b703c55d10cc1628535"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0918e03aa0c72ea56edbb00d4d664294815aa11291a11504a377ea018330d3"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0915e734b33a474d76c28e07292f196cdf2a590a0d25bcc06e64e545f2d146c"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af0372acb5d3598f36ec0914deed2a63f6bcdb7b606da04dc19a88d31bf0c05b"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:ad58d27a5b0262c0c19b47d54c5802db9b34d38bbf886665b626aff83c74bacd"}, + {file = "Pillow-9.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:97aabc5c50312afa5e0a2b07c17d4ac5e865b250986f8afe2b02d772567a380c"}, + {file = "Pillow-9.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9aaa107275d8527e9d6e7670b64aabaaa36e5b6bd71a1015ddd21da0d4e06448"}, + {file = "Pillow-9.3.0-cp39-cp39-win32.whl", hash = "sha256:bac18ab8d2d1e6b4ce25e3424f709aceef668347db8637c2296bcf41acb7cf48"}, + {file = "Pillow-9.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:b472b5ea442148d1c3e2209f20f1e0bb0eb556538690fa70b5e1f79fa0ba8dc2"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ab388aaa3f6ce52ac1cb8e122c4bd46657c15905904b3120a6248b5b8b0bc228"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbb8e7f2abee51cef77673be97760abff1674ed32847ce04b4af90f610144c7b"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bca31dd6014cb8b0b2db1e46081b0ca7d936f856da3b39744aef499db5d84d02"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c7025dce65566eb6e89f56c9509d4f628fddcedb131d9465cacd3d8bac337e7e"}, + {file = "Pillow-9.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:ebf2029c1f464c59b8bdbe5143c79fa2045a581ac53679733d3a91d400ff9efb"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b59430236b8e58840a0dfb4099a0e8717ffb779c952426a69ae435ca1f57210c"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12ce4932caf2ddf3e41d17fc9c02d67126935a44b86df6a206cf0d7161548627"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae5331c23ce118c53b172fa64a4c037eb83c9165aba3a7ba9ddd3ec9fa64a699"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:0b07fffc13f474264c336298d1b4ce01d9c5a011415b79d4ee5527bb69ae6f65"}, + {file = "Pillow-9.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:073adb2ae23431d3b9bcbcff3fe698b62ed47211d0716b067385538a1b0f28b8"}, + {file = "Pillow-9.3.0.tar.gz", hash = "sha256:c935a22a557a560108d780f9a0fc426dd7459940dc54faa49d83249c8d3e760f"}, +] +platformdirs = [ + {file = "platformdirs-2.6.0-py3-none-any.whl", hash = "sha256:1a89a12377800c81983db6be069ec068eee989748799b946cce2a6e80dcc54ca"}, + {file = "platformdirs-2.6.0.tar.gz", hash = "sha256:b46ffafa316e6b83b47489d240ce17173f123a9b9c83282141c3daf26ad9ac2e"}, +] +pluggy = [ + {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, + {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, +] +pre-commit = [ + {file = "pre_commit-2.20.0-py2.py3-none-any.whl", hash = "sha256:51a5ba7c480ae8072ecdb6933df22d2f812dc897d5fe848778116129a681aac7"}, + {file = "pre_commit-2.20.0.tar.gz", hash = "sha256:a978dac7bc9ec0bcee55c18a277d553b0f419d259dadb4b9418ff2d00eb43959"}, +] +prometheus-client = [ + {file = "prometheus_client-0.15.0-py3-none-any.whl", hash = "sha256:db7c05cbd13a0f79975592d112320f2605a325969b270a94b71dcabc47b931d2"}, + {file = "prometheus_client-0.15.0.tar.gz", hash = "sha256:be26aa452490cfcf6da953f9436e95a9f2b4d578ca80094b4458930e5f584ab1"}, +] +prompt-toolkit = [ + {file = "prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"}, + {file = "prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"}, +] +psutil = [ + {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, + {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, + {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, + {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, + {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, + {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, + {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, + {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, +] +ptyprocess = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] +pure-eval = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] +py = [ + {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, + {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, +] +pycodestyle = [ + {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, + {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] +pyflakes = [ + {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, + {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, +] +pygments = [ + {file = "Pygments-2.13.0-py3-none-any.whl", hash = "sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"}, + {file = "Pygments-2.13.0.tar.gz", hash = "sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1"}, +] +pyparsing = [ + {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, + {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, +] +pyrsistent = [ + {file = "pyrsistent-0.19.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d6982b5a0237e1b7d876b60265564648a69b14017f3b5f908c5be2de3f9abb7a"}, + {file = "pyrsistent-0.19.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:187d5730b0507d9285a96fca9716310d572e5464cadd19f22b63a6976254d77a"}, + {file = "pyrsistent-0.19.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:055ab45d5911d7cae397dc418808d8802fb95262751872c841c170b0dbf51eed"}, + {file = "pyrsistent-0.19.2-cp310-cp310-win32.whl", hash = "sha256:456cb30ca8bff00596519f2c53e42c245c09e1a4543945703acd4312949bfd41"}, + {file = "pyrsistent-0.19.2-cp310-cp310-win_amd64.whl", hash = "sha256:b39725209e06759217d1ac5fcdb510e98670af9e37223985f330b611f62e7425"}, + {file = "pyrsistent-0.19.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2aede922a488861de0ad00c7630a6e2d57e8023e4be72d9d7147a9fcd2d30712"}, + {file = "pyrsistent-0.19.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:879b4c2f4d41585c42df4d7654ddffff1239dc4065bc88b745f0341828b83e78"}, + {file = "pyrsistent-0.19.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c43bec251bbd10e3cb58ced80609c5c1eb238da9ca78b964aea410fb820d00d6"}, + {file = "pyrsistent-0.19.2-cp37-cp37m-win32.whl", hash = "sha256:d690b18ac4b3e3cab73b0b7aa7dbe65978a172ff94970ff98d82f2031f8971c2"}, + {file = "pyrsistent-0.19.2-cp37-cp37m-win_amd64.whl", hash = "sha256:3ba4134a3ff0fc7ad225b6b457d1309f4698108fb6b35532d015dca8f5abed73"}, + {file = "pyrsistent-0.19.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a178209e2df710e3f142cbd05313ba0c5ebed0a55d78d9945ac7a4e09d923308"}, + {file = "pyrsistent-0.19.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e371b844cec09d8dc424d940e54bba8f67a03ebea20ff7b7b0d56f526c71d584"}, + {file = "pyrsistent-0.19.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111156137b2e71f3a9936baf27cb322e8024dac3dc54ec7fb9f0bcf3249e68bb"}, + {file = "pyrsistent-0.19.2-cp38-cp38-win32.whl", hash = "sha256:e5d8f84d81e3729c3b506657dddfe46e8ba9c330bf1858ee33108f8bb2adb38a"}, + {file = "pyrsistent-0.19.2-cp38-cp38-win_amd64.whl", hash = "sha256:9cd3e9978d12b5d99cbdc727a3022da0430ad007dacf33d0bf554b96427f33ab"}, + {file = "pyrsistent-0.19.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:f1258f4e6c42ad0b20f9cfcc3ada5bd6b83374516cd01c0960e3cb75fdca6770"}, + {file = "pyrsistent-0.19.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21455e2b16000440e896ab99e8304617151981ed40c29e9507ef1c2e4314ee95"}, + {file = "pyrsistent-0.19.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bfd880614c6237243ff53a0539f1cb26987a6dc8ac6e66e0c5a40617296a045e"}, + {file = "pyrsistent-0.19.2-cp39-cp39-win32.whl", hash = "sha256:71d332b0320642b3261e9fee47ab9e65872c2bd90260e5d225dabeed93cbd42b"}, + {file = "pyrsistent-0.19.2-cp39-cp39-win_amd64.whl", hash = "sha256:dec3eac7549869365fe263831f576c8457f6c833937c68542d08fde73457d291"}, + {file = "pyrsistent-0.19.2-py3-none-any.whl", hash = "sha256:ea6b79a02a28550c98b6ca9c35b9f492beaa54d7c5c9e9949555893c8a9234d0"}, + {file = "pyrsistent-0.19.2.tar.gz", hash = "sha256:bfa0351be89c9fcbcb8c9879b826f4353be10f58f8a677efab0c017bf7137ec2"}, +] +pytest = [ + {file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"}, + {file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"}, +] +pytest-xdist = [ + {file = "pytest-xdist-3.1.0.tar.gz", hash = "sha256:40fdb8f3544921c5dfcd486ac080ce22870e71d82ced6d2e78fa97c2addd480c"}, + {file = "pytest_xdist-3.1.0-py3-none-any.whl", hash = "sha256:70a76f191d8a1d2d6be69fc440cdf85f3e4c03c08b520fd5dc5d338d6cf07d89"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +python-json-logger = [ + {file = "python-json-logger-2.0.4.tar.gz", hash = "sha256:764d762175f99fcc4630bd4853b09632acb60a6224acb27ce08cd70f0b1b81bd"}, + {file = "python_json_logger-2.0.4-py3-none-any.whl", hash = "sha256:3b03487b14eb9e4f77e4fc2a023358b5394b82fd89cecf5586259baed57d8c6f"}, +] +pytz = [ + {file = "pytz-2022.6-py2.py3-none-any.whl", hash = "sha256:222439474e9c98fced559f1709d89e6c9cbf8d79c794ff3eb9f8800064291427"}, + {file = "pytz-2022.6.tar.gz", hash = "sha256:e89512406b793ca39f5971bc999cc538ce125c0e51c27941bef4568b460095e2"}, +] +pywin32 = [ + {file = "pywin32-305-cp310-cp310-win32.whl", hash = "sha256:421f6cd86e84bbb696d54563c48014b12a23ef95a14e0bdba526be756d89f116"}, + {file = "pywin32-305-cp310-cp310-win_amd64.whl", hash = "sha256:73e819c6bed89f44ff1d690498c0a811948f73777e5f97c494c152b850fad478"}, + {file = "pywin32-305-cp310-cp310-win_arm64.whl", hash = "sha256:742eb905ce2187133a29365b428e6c3b9001d79accdc30aa8969afba1d8470f4"}, + {file = "pywin32-305-cp311-cp311-win32.whl", hash = "sha256:19ca459cd2e66c0e2cc9a09d589f71d827f26d47fe4a9d09175f6aa0256b51c2"}, + {file = "pywin32-305-cp311-cp311-win_amd64.whl", hash = "sha256:326f42ab4cfff56e77e3e595aeaf6c216712bbdd91e464d167c6434b28d65990"}, + {file = "pywin32-305-cp311-cp311-win_arm64.whl", hash = "sha256:4ecd404b2c6eceaca52f8b2e3e91b2187850a1ad3f8b746d0796a98b4cea04db"}, + {file = "pywin32-305-cp36-cp36m-win32.whl", hash = "sha256:48d8b1659284f3c17b68587af047d110d8c44837736b8932c034091683e05863"}, + {file = "pywin32-305-cp36-cp36m-win_amd64.whl", hash = "sha256:13362cc5aa93c2beaf489c9c9017c793722aeb56d3e5166dadd5ef82da021fe1"}, + {file = "pywin32-305-cp37-cp37m-win32.whl", hash = "sha256:a55db448124d1c1484df22fa8bbcbc45c64da5e6eae74ab095b9ea62e6d00496"}, + {file = "pywin32-305-cp37-cp37m-win_amd64.whl", hash = "sha256:109f98980bfb27e78f4df8a51a8198e10b0f347257d1e265bb1a32993d0c973d"}, + {file = "pywin32-305-cp38-cp38-win32.whl", hash = "sha256:9dd98384da775afa009bc04863426cb30596fd78c6f8e4e2e5bbf4edf8029504"}, + {file = "pywin32-305-cp38-cp38-win_amd64.whl", hash = "sha256:56d7a9c6e1a6835f521788f53b5af7912090674bb84ef5611663ee1595860fc7"}, + {file = "pywin32-305-cp39-cp39-win32.whl", hash = "sha256:9d968c677ac4d5cbdaa62fd3014ab241718e619d8e36ef8e11fb930515a1e918"}, + {file = "pywin32-305-cp39-cp39-win_amd64.whl", hash = "sha256:50768c6b7c3f0b38b7fb14dd4104da93ebced5f1a50dc0e834594bff6fbe1271"}, +] +pywinpty = [ + {file = "pywinpty-2.0.9-cp310-none-win_amd64.whl", hash = "sha256:30a7b371446a694a6ce5ef906d70ac04e569de5308c42a2bdc9c3bc9275ec51f"}, + {file = "pywinpty-2.0.9-cp311-none-win_amd64.whl", hash = "sha256:d78ef6f4bd7a6c6f94dc1a39ba8fb028540cc39f5cb593e756506db17843125f"}, + {file = "pywinpty-2.0.9-cp37-none-win_amd64.whl", hash = "sha256:5ed36aa087e35a3a183f833631b3e4c1ae92fe2faabfce0fa91b77ed3f0f1382"}, + {file = "pywinpty-2.0.9-cp38-none-win_amd64.whl", hash = "sha256:2352f44ee913faaec0a02d3c112595e56b8af7feeb8100efc6dc1a8685044199"}, + {file = "pywinpty-2.0.9-cp39-none-win_amd64.whl", hash = "sha256:ba75ec55f46c9e17db961d26485b033deb20758b1731e8e208e1e8a387fcf70c"}, + {file = "pywinpty-2.0.9.tar.gz", hash = "sha256:01b6400dd79212f50a2f01af1c65b781290ff39610853db99bf03962eb9a615f"}, +] +pyyaml = [ + {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, + {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b"}, + {file = "PyYAML-6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5"}, + {file = "PyYAML-6.0-cp310-cp310-win32.whl", hash = "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513"}, + {file = "PyYAML-6.0-cp310-cp310-win_amd64.whl", hash = "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358"}, + {file = "PyYAML-6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f"}, + {file = "PyYAML-6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782"}, + {file = "PyYAML-6.0-cp311-cp311-win32.whl", hash = "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7"}, + {file = "PyYAML-6.0-cp311-cp311-win_amd64.whl", hash = "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf"}, + {file = "PyYAML-6.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92"}, + {file = "PyYAML-6.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4"}, + {file = "PyYAML-6.0-cp36-cp36m-win32.whl", hash = "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293"}, + {file = "PyYAML-6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57"}, + {file = "PyYAML-6.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4"}, + {file = "PyYAML-6.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9"}, + {file = "PyYAML-6.0-cp37-cp37m-win32.whl", hash = "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737"}, + {file = "PyYAML-6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d"}, + {file = "PyYAML-6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34"}, + {file = "PyYAML-6.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287"}, + {file = "PyYAML-6.0-cp38-cp38-win32.whl", hash = "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78"}, + {file = "PyYAML-6.0-cp38-cp38-win_amd64.whl", hash = "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b"}, + {file = "PyYAML-6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3"}, + {file = "PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0"}, + {file = "PyYAML-6.0-cp39-cp39-win32.whl", hash = "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb"}, + {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, + {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, +] +pyzmq = [ + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:28b119ba97129d3001673a697b7cce47fe6de1f7255d104c2f01108a5179a066"}, + {file = "pyzmq-24.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bcbebd369493d68162cddb74a9c1fcebd139dfbb7ddb23d8f8e43e6c87bac3a6"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae61446166983c663cee42c852ed63899e43e484abf080089f771df4b9d272ef"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87f7ac99b15270db8d53f28c3c7b968612993a90a5cf359da354efe96f5372b4"}, + {file = "pyzmq-24.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dca7c3956b03b7663fac4d150f5e6d4f6f38b2462c1e9afd83bcf7019f17913"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8c78bfe20d4c890cb5580a3b9290f700c570e167d4cdcc55feec07030297a5e3"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:48f721f070726cd2a6e44f3c33f8ee4b24188e4b816e6dd8ba542c8c3bb5b246"}, + {file = "pyzmq-24.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:afe1f3bc486d0ce40abb0a0c9adb39aed3bbac36ebdc596487b0cceba55c21c1"}, + {file = "pyzmq-24.0.1-cp310-cp310-win32.whl", hash = "sha256:3e6192dbcefaaa52ed81be88525a54a445f4b4fe2fffcae7fe40ebb58bd06bfd"}, + {file = "pyzmq-24.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:86de64468cad9c6d269f32a6390e210ca5ada568c7a55de8e681ca3b897bb340"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:838812c65ed5f7c2bd11f7b098d2e5d01685a3f6d1f82849423b570bae698c00"}, + {file = "pyzmq-24.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:dfb992dbcd88d8254471760879d48fb20836d91baa90f181c957122f9592b3dc"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7abddb2bd5489d30ffeb4b93a428130886c171b4d355ccd226e83254fcb6b9ef"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94010bd61bc168c103a5b3b0f56ed3b616688192db7cd5b1d626e49f28ff51b3"}, + {file = "pyzmq-24.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:8242543c522d84d033fe79be04cb559b80d7eb98ad81b137ff7e0a9020f00ace"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ccb94342d13e3bf3ffa6e62f95b5e3f0bc6bfa94558cb37f4b3d09d6feb536ff"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6640f83df0ae4ae1104d4c62b77e9ef39be85ebe53f636388707d532bee2b7b8"}, + {file = "pyzmq-24.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a180dbd5ea5d47c2d3b716d5c19cc3fb162d1c8db93b21a1295d69585bfddac1"}, + {file = "pyzmq-24.0.1-cp311-cp311-win32.whl", hash = "sha256:624321120f7e60336be8ec74a172ae7fba5c3ed5bf787cc85f7e9986c9e0ebc2"}, + {file = "pyzmq-24.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:1724117bae69e091309ffb8255412c4651d3f6355560d9af312d547f6c5bc8b8"}, + {file = "pyzmq-24.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:15975747462ec49fdc863af906bab87c43b2491403ab37a6d88410635786b0f4"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b947e264f0e77d30dcbccbb00f49f900b204b922eb0c3a9f0afd61aaa1cedc3d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0ec91f1bad66f3ee8c6deb65fa1fe418e8ad803efedd69c35f3b5502f43bd1dc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:db03704b3506455d86ec72c3358a779e9b1d07b61220dfb43702b7b668edcd0d"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:e7e66b4e403c2836ac74f26c4b65d8ac0ca1eef41dfcac2d013b7482befaad83"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:7a23ccc1083c260fa9685c93e3b170baba45aeed4b524deb3f426b0c40c11639"}, + {file = "pyzmq-24.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fa0ae3275ef706c0309556061185dd0e4c4cd3b7d6f67ae617e4e677c7a41e2e"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win32.whl", hash = "sha256:f01de4ec083daebf210531e2cca3bdb1608dbbbe00a9723e261d92087a1f6ebc"}, + {file = "pyzmq-24.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de4217b9eb8b541cf2b7fde4401ce9d9a411cc0af85d410f9d6f4333f43640be"}, + {file = "pyzmq-24.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:78068e8678ca023594e4a0ab558905c1033b2d3e806a0ad9e3094e231e115a33"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77c2713faf25a953c69cf0f723d1b7dd83827b0834e6c41e3fb3bbc6765914a1"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bb4af15f305056e95ca1bd086239b9ebc6ad55e9f49076d27d80027f72752f6"}, + {file = "pyzmq-24.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:0f14cffd32e9c4c73da66db97853a6aeceaac34acdc0fae9e5bbc9370281864c"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0108358dab8c6b27ff6b985c2af4b12665c1bc659648284153ee501000f5c107"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d66689e840e75221b0b290b0befa86f059fb35e1ee6443bce51516d4d61b6b99"}, + {file = "pyzmq-24.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae08ac90aa8fa14caafc7a6251bd218bf6dac518b7bff09caaa5e781119ba3f2"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win32.whl", hash = "sha256:8421aa8c9b45ea608c205db9e1c0c855c7e54d0e9c2c2f337ce024f6843cab3b"}, + {file = "pyzmq-24.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54d8b9c5e288362ec8595c1d98666d36f2070fd0c2f76e2b3c60fbad9bd76227"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:acbd0a6d61cc954b9f535daaa9ec26b0a60a0d4353c5f7c1438ebc88a359a47e"}, + {file = "pyzmq-24.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:47b11a729d61a47df56346283a4a800fa379ae6a85870d5a2e1e4956c828eedc"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:abe6eb10122f0d746a0d510c2039ae8edb27bc9af29f6d1b05a66cc2401353ff"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:07bec1a1b22dacf718f2c0e71b49600bb6a31a88f06527dfd0b5aababe3fa3f7"}, + {file = "pyzmq-24.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f0d945a85b70da97ae86113faf9f1b9294efe66bd4a5d6f82f2676d567338b66"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1b7928bb7580736ffac5baf814097be342ba08d3cfdfb48e52773ec959572287"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:b946da90dc2799bcafa682692c1d2139b2a96ec3c24fa9fc6f5b0da782675330"}, + {file = "pyzmq-24.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:c8840f064b1fb377cffd3efeaad2b190c14d4c8da02316dae07571252d20b31f"}, + {file = "pyzmq-24.0.1-cp38-cp38-win32.whl", hash = "sha256:4854f9edc5208f63f0841c0c667260ae8d6846cfa233c479e29fdc85d42ebd58"}, + {file = "pyzmq-24.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:42d4f97b9795a7aafa152a36fe2ad44549b83a743fd3e77011136def512e6c2a"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:52afb0ac962963fff30cf1be775bc51ae083ef4c1e354266ab20e5382057dd62"}, + {file = "pyzmq-24.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bad8210ad4df68c44ff3685cca3cda448ee46e20d13edcff8909eba6ec01ca4"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:dabf1a05318d95b1537fd61d9330ef4313ea1216eea128a17615038859da3b3b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5bd3d7dfd9cd058eb68d9a905dec854f86649f64d4ddf21f3ec289341386c44b"}, + {file = "pyzmq-24.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8012bce6836d3f20a6c9599f81dfa945f433dab4dbd0c4917a6fb1f998ab33d"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c31805d2c8ade9b11feca4674eee2b9cce1fec3e8ddb7bbdd961a09dc76a80ea"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:3104f4b084ad5d9c0cb87445cc8cfd96bba710bef4a66c2674910127044df209"}, + {file = "pyzmq-24.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:df0841f94928f8af9c7a1f0aaaffba1fb74607af023a152f59379c01c53aee58"}, + {file = "pyzmq-24.0.1-cp39-cp39-win32.whl", hash = "sha256:a435ef8a3bd95c8a2d316d6e0ff70d0db524f6037411652803e118871d703333"}, + {file = "pyzmq-24.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:2032d9cb994ce3b4cba2b8dfae08c7e25bc14ba484c770d4d3be33c27de8c45b"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:bb5635c851eef3a7a54becde6da99485eecf7d068bd885ac8e6d173c4ecd68b0"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:83ea1a398f192957cb986d9206ce229efe0ee75e3c6635baff53ddf39bd718d5"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:941fab0073f0a54dc33d1a0460cb04e0d85893cb0c5e1476c785000f8b359409"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e8f482c44ccb5884bf3f638f29bea0f8dc68c97e38b2061769c4cb697f6140d"}, + {file = "pyzmq-24.0.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:613010b5d17906c4367609e6f52e9a2595e35d5cc27d36ff3f1b6fa6e954d944"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:65c94410b5a8355cfcf12fd600a313efee46ce96a09e911ea92cf2acf6708804"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:20e7eeb1166087db636c06cae04a1ef59298627f56fb17da10528ab52a14c87f"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a2712aee7b3834ace51738c15d9ee152cc5a98dc7d57dd93300461b792ab7b43"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a7c280185c4da99e0cc06c63bdf91f5b0b71deb70d8717f0ab870a43e376db8"}, + {file = "pyzmq-24.0.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:858375573c9225cc8e5b49bfac846a77b696b8d5e815711b8d4ba3141e6e8879"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:80093b595921eed1a2cead546a683b9e2ae7f4a4592bb2ab22f70d30174f003a"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f3f3154fde2b1ff3aa7b4f9326347ebc89c8ef425ca1db8f665175e6d3bd42f"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb756147314430bee5d10919b8493c0ccb109ddb7f5dfd2fcd7441266a25b75"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44e706bac34e9f50779cb8c39f10b53a4d15aebb97235643d3112ac20bd577b4"}, + {file = "pyzmq-24.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:687700f8371643916a1d2c61f3fdaa630407dd205c38afff936545d7b7466066"}, + {file = "pyzmq-24.0.1.tar.gz", hash = "sha256:216f5d7dbb67166759e59b0479bca82b8acf9bed6015b526b8eb10143fb08e77"}, +] +qtconsole = [ + {file = "qtconsole-5.4.0-py3-none-any.whl", hash = "sha256:be13560c19bdb3b54ed9741a915aa701a68d424519e8341ac479a91209e694b2"}, + {file = "qtconsole-5.4.0.tar.gz", hash = "sha256:57748ea2fd26320a0b77adba20131cfbb13818c7c96d83fafcb110ff55f58b35"}, +] +qtpy = [ + {file = "QtPy-2.3.0-py3-none-any.whl", hash = "sha256:8d6d544fc20facd27360ea189592e6135c614785f0dec0b4f083289de6beb408"}, + {file = "QtPy-2.3.0.tar.gz", hash = "sha256:0603c9c83ccc035a4717a12908bf6bc6cb22509827ea2ec0e94c2da7c9ed57c5"}, +] +reorder-python-imports = [ + {file = "reorder_python_imports-3.9.0-py2.py3-none-any.whl", hash = "sha256:3f9c16e8781f54c944756d0d1eb34a8c863554f7a4eb3693f574fe19b1a29b56"}, + {file = "reorder_python_imports-3.9.0.tar.gz", hash = "sha256:49292ed537829a6bece9fb3746fc1bbe98f52643be5de01a4e13680268a5b0ec"}, +] +rfc3339-validator = [ + {file = "rfc3339_validator-0.1.4-py2.py3-none-any.whl", hash = "sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa"}, + {file = "rfc3339_validator-0.1.4.tar.gz", hash = "sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b"}, +] +rfc3986-validator = [ + {file = "rfc3986_validator-0.1.1-py2.py3-none-any.whl", hash = "sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9"}, + {file = "rfc3986_validator-0.1.1.tar.gz", hash = "sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055"}, +] +rich = [ + {file = "rich-12.6.0-py3-none-any.whl", hash = "sha256:a4eb26484f2c82589bd9a17c73d32a010b1e29d89f1604cd9bf3a2097b81bb5e"}, + {file = "rich-12.6.0.tar.gz", hash = "sha256:ba3a3775974105c221d31141f2c116f4fd65c5ceb0698657a11e9f295ec93fd0"}, +] +scipy = [ + {file = "scipy-1.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1884b66a54887e21addf9c16fb588720a8309a57b2e258ae1c7986d4444d3bc0"}, + {file = "scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:83b89e9586c62e787f5012e8475fbb12185bafb996a03257e9675cd73d3736dd"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a72d885fa44247f92743fc20732ae55564ff2a519e8302fb7e18717c5355a8b"}, + {file = "scipy-1.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d01e1dd7b15bd2449c8bfc6b7cc67d630700ed655654f0dfcf121600bad205c9"}, + {file = "scipy-1.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:68239b6aa6f9c593da8be1509a05cb7f9efe98b80f43a5861cd24c7557e98523"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b41bc822679ad1c9a5f023bc93f6d0543129ca0f37c1ce294dd9d386f0a21096"}, + {file = "scipy-1.9.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:90453d2b93ea82a9f434e4e1cba043e779ff67b92f7a0e85d05d286a3625df3c"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83c06e62a390a9167da60bedd4575a14c1f58ca9dfde59830fc42e5197283dab"}, + {file = "scipy-1.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:abaf921531b5aeaafced90157db505e10345e45038c39e5d9b6c7922d68085cb"}, + {file = "scipy-1.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:06d2e1b4c491dc7d8eacea139a1b0b295f74e1a1a0f704c375028f8320d16e31"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5a04cd7d0d3eff6ea4719371cbc44df31411862b9646db617c99718ff68d4840"}, + {file = "scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl", hash = "sha256:545c83ffb518094d8c9d83cce216c0c32f8c04aaf28b92cc8283eda0685162d5"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d54222d7a3ba6022fdf5773931b5d7c56efe41ede7f7128c7b1637700409108"}, + {file = "scipy-1.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cff3a5295234037e39500d35316a4c5794739433528310e117b8a9a0c76d20fc"}, + {file = "scipy-1.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:2318bef588acc7a574f5bfdff9c172d0b1bf2c8143d9582e05f878e580a3781e"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d644a64e174c16cb4b2e41dfea6af722053e83d066da7343f333a54dae9bc31c"}, + {file = "scipy-1.9.3-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:da8245491d73ed0a994ed9c2e380fd058ce2fa8a18da204681f2fe1f57f98f95"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4db5b30849606a95dcf519763dd3ab6fe9bd91df49eba517359e450a7d80ce2e"}, + {file = "scipy-1.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c68db6b290cbd4049012990d7fe71a2abd9ffbe82c0056ebe0f01df8be5436b0"}, + {file = "scipy-1.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:5b88e6d91ad9d59478fafe92a7c757d00c59e3bdc3331be8ada76a4f8d683f58"}, + {file = "scipy-1.9.3.tar.gz", hash = "sha256:fbc5c05c85c1a02be77b1ff591087c83bc44579c6d2bd9fb798bb64ea5e1a027"}, +] +send2trash = [ + {file = "Send2Trash-1.8.0-py3-none-any.whl", hash = "sha256:f20eaadfdb517eaca5ce077640cb261c7d2698385a6a0f072a4a5447fd49fa08"}, + {file = "Send2Trash-1.8.0.tar.gz", hash = "sha256:d2c24762fd3759860a0aff155e45871447ea58d2be6bdd39b5c8f966a0c99c2d"}, +] +setuptools = [ + {file = "setuptools-65.6.3-py3-none-any.whl", hash = "sha256:57f6f22bde4e042978bcd50176fdb381d7c21a9efa4041202288d3737a0c6a54"}, + {file = "setuptools-65.6.3.tar.gz", hash = "sha256:a7620757bf984b58deaf32fc8a4577a9bbc0850cf92c20e1ce41c38c19e5fb75"}, +] +setuptools-scm = [ + {file = "setuptools_scm-7.0.5-py3-none-any.whl", hash = "sha256:7930f720905e03ccd1e1d821db521bff7ec2ac9cf0ceb6552dd73d24a45d3b02"}, + {file = "setuptools_scm-7.0.5.tar.gz", hash = "sha256:031e13af771d6f892b941adb6ea04545bbf91ebc5ce68c78aaf3fff6e1fb4844"}, +] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] +sniffio = [ + {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, + {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, +] +soupsieve = [ + {file = "soupsieve-2.3.2.post1-py3-none-any.whl", hash = "sha256:3b2503d3c7084a42b1ebd08116e5f81aadfaea95863628c80a3b774a11b7c759"}, + {file = "soupsieve-2.3.2.post1.tar.gz", hash = "sha256:fc53893b3da2c33de295667a0e19f078c14bf86544af307354de5fcf12a3f30d"}, +] +stack-data = [ + {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, + {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, +] +sympy = [ + {file = "sympy-1.11.1-py3-none-any.whl", hash = "sha256:938f984ee2b1e8eae8a07b884c8b7a1146010040fccddc6539c54f401c8f6fcf"}, + {file = "sympy-1.11.1.tar.gz", hash = "sha256:e32380dce63cb7c0108ed525570092fd45168bdae2faa17e528221ef72e88658"}, +] +terminado = [ + {file = "terminado-0.17.1-py3-none-any.whl", hash = "sha256:8650d44334eba354dd591129ca3124a6ba42c3d5b70df5051b6921d506fdaeae"}, + {file = "terminado-0.17.1.tar.gz", hash = "sha256:6ccbbcd3a4f8a25a5ec04991f39a0b8db52dfcd487ea0e578d977e6752380333"}, +] +tinycss2 = [ + {file = "tinycss2-1.2.1-py3-none-any.whl", hash = "sha256:2b80a96d41e7c3914b8cda8bc7f705a4d9c49275616e886103dd839dfc847847"}, + {file = "tinycss2-1.2.1.tar.gz", hash = "sha256:8cff3a8f066c2ec677c06dbc7b45619804a6938478d9d73c284b29d14ecb0627"}, +] +tokenize-rt = [ + {file = "tokenize_rt-5.0.0-py2.py3-none-any.whl", hash = "sha256:c67772c662c6b3dc65edf66808577968fb10badfc2042e3027196bed4daf9e5a"}, + {file = "tokenize_rt-5.0.0.tar.gz", hash = "sha256:3160bc0c3e8491312d0485171dea861fc160a240f5f5766b72a1165408d10740"}, +] +toml = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] +tomli = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] +tqdm = [ + {file = "tqdm-4.64.1-py2.py3-none-any.whl", hash = "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1"}, + {file = "tqdm-4.64.1.tar.gz", hash = "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4"}, +] +traitlets = [ + {file = "traitlets-5.7.1-py3-none-any.whl", hash = "sha256:57ba2ba951632eeab9388fa45f342a5402060a5cc9f0bb942f760fafb6641581"}, + {file = "traitlets-5.7.1.tar.gz", hash = "sha256:fde8f62c05204ead43c2c1b9389cfc85befa7f54acb5da28529d671175bb4108"}, +] +typer = [ + {file = "typer-0.6.1-py3-none-any.whl", hash = "sha256:54b19e5df18654070a82f8c2aa1da456a4ac16a2a83e6dcd9f170e291c56338e"}, + {file = "typer-0.6.1.tar.gz", hash = "sha256:2d5720a5e63f73eaf31edaa15f6ab87f35f0690f8ca233017d7d23d743a91d73"}, +] +typing-extensions = [ + {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, + {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, +] +uri-template = [ + {file = "uri_template-1.2.0-py3-none-any.whl", hash = "sha256:f1699c77b73b925cf4937eae31ab282a86dc885c333f2e942513f08f691fc7db"}, + {file = "uri_template-1.2.0.tar.gz", hash = "sha256:934e4d09d108b70eb8a24410af8615294d09d279ce0e7cbcdaef1bd21f932b06"}, +] +virtualenv = [ + {file = "virtualenv-20.17.1-py3-none-any.whl", hash = "sha256:ce3b1684d6e1a20a3e5ed36795a97dfc6af29bc3970ca8dab93e11ac6094b3c4"}, + {file = "virtualenv-20.17.1.tar.gz", hash = "sha256:f8b927684efc6f1cc206c9db297a570ab9ad0e51c16fa9e45487d36d1905c058"}, +] +wcwidth = [ + {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"}, + {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"}, +] +webcolors = [ + {file = "webcolors-1.12-py3-none-any.whl", hash = "sha256:d98743d81d498a2d3eaf165196e65481f0d2ea85281463d856b1e51b09f62dce"}, + {file = "webcolors-1.12.tar.gz", hash = "sha256:16d043d3a08fd6a1b1b7e3e9e62640d09790dce80d2bdd4792a175b35fe794a9"}, +] +webencodings = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] +websocket-client = [ + {file = "websocket-client-1.4.2.tar.gz", hash = "sha256:d6e8f90ca8e2dd4e8027c4561adeb9456b54044312dba655e7cae652ceb9ae59"}, + {file = "websocket_client-1.4.2-py3-none-any.whl", hash = "sha256:d6b06432f184438d99ac1f456eaf22fe1ade524c3dd16e661142dc54e9cba574"}, +] +widgetsnbextension = [ + {file = "widgetsnbextension-4.0.4-py3-none-any.whl", hash = "sha256:fa0e840719ec95dd2ec85c3a48913f1a0c29d323eacbcdb0b29bfed0cc6da678"}, + {file = "widgetsnbextension-4.0.4.tar.gz", hash = "sha256:44c69f18237af0f610557d6c1c7ef76853f5856a0e604c0a517f2320566bb775"}, +] diff --git a/pyproject.toml b/pyproject.toml index 5d7bf33d..5e092b79 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,2 +1,79 @@ +[tool.poetry] +name = "imprint" +version = "0.2.0" +description = "" +authors = [ + "Confirm Solutions ", +] + +[[tool.poetry.source]] +name = "jax" +url = "https://storage.googleapis.com/jax-releases/jax_cuda_releases.html" +default = false +secondary = false + +[tool.poetry.dependencies] +python = "~3.10" +numpy = "^1.23.4" +scipy = "^1.9.3" +sympy = "^1.11.1" +matplotlib = "^3.6.2" +pandas = "^1.5.1" +jax = "0.3.24" +numpyro = "^0.10.1" +jaxlib = [ + { version = "0.3.22", platform = "darwin", source = "pypi" }, + { version = "0.3.24+cuda11.cudnn82", platform = "linux" }, +] +duckdb = "^0.6.0" + +[tool.poetry.group.test] +optional = true + +[tool.poetry.group.test.dependencies] +pytest = "^7.2.0" +pre-commit = "^2.20.0" + +[tool.poetry.group.test.dependencies.pytest-xdist] +extras = [ + "psutil", +] +version = "^3.0.2" + +[tool.poetry.group.dev] +optional = true + +[tool.poetry.group.dev.dependencies] +line-profiler = "^3.5.1" +jupytext = "^1.14.1" +reorder-python-imports = "^3.9.0" +flake8 = "^5.0.4" +typer = "^0.6.1" +jupyter = "^1.0.0" +rich = "^12.6.0" + +[tool.poetry.group.dev.dependencies.black] +extras = [ + "jupyter", +] +version = "^22.10.0" + [tool.isort] profile = "black" + +[tool.pytest.ini_options] +addopts = "-s --tb=short --strict-markers --doctest-modules" +testpaths = [ + "tests", + "imprint", +] + +[tool.jupytext] +notebook_metadata_filter = "-all" +cell_metadata_filter = "-all" + +[build-system] +requires = [ + "poetry-core>=1.0.0", +] +build-backend = "poetry.core.masonry.api" diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index 912b1fb7..00000000 --- a/pytest.ini +++ /dev/null @@ -1,3 +0,0 @@ -[pytest] -addopts = -s --tb=short -norecursedirs = __pycache__ build bazel-* diff --git a/python/.gitignore b/python/.gitignore deleted file mode 100644 index f63b9d5c..00000000 --- a/python/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*__pycache__/ -build/ -pyimprint/*.so -pyimprint.egg-info/ diff --git a/python/BUILD.bazel b/python/BUILD.bazel deleted file mode 100644 index e3beb813..00000000 --- a/python/BUILD.bazel +++ /dev/null @@ -1,44 +0,0 @@ -load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") -PACKAGE_VERSION = "0.1" - -py_library( - name = "pyimprint_lib", - srcs = glob(["pyimprint/**/*.py"]), - data = ["pyimprint/core.so"], - imports = ["."], - visibility = ["//visibility:public"], -) - -cc_library( - name = "pyimprint_headers", - hdrs = glob(["src/**/*.hpp"]), - includes = ["src/"], - visibility = ["//visibility:public"], -) - -pybind_extension( - name = "pyimprint/core", - srcs = glob([ - "src/**/*cpp", - "src/**/*hpp", - ]), - includes = ["src/"], - deps = ["//imprint"], - visibility = ["//visibility:public"] -) - -genrule( - name = "pyimprint_wheel", - srcs = [ - "README.md", - "pyimprint/core.so", - ] + glob(["**/*py"]), - outs = ["dist/pyimprint-{}-py3-none-any.whl".format(PACKAGE_VERSION)], - cmd_bash = """ - cp $(location pyimprint/core.so) python/ - cd python/ - VERSION={0} python3 setup.py bdist_wheel - cd .. - cp python/dist/pyimprint-{0}-py3-none-any.whl $@ - """.format(PACKAGE_VERSION), -) diff --git a/python/README.md b/python/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/python/example/.gitignore b/python/example/.gitignore deleted file mode 100644 index 80ff98e4..00000000 --- a/python/example/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -data/ -*.png diff --git a/python/example/BUILD.bazel b/python/example/BUILD.bazel deleted file mode 100644 index a1f0f246..00000000 --- a/python/example/BUILD.bazel +++ /dev/null @@ -1,12 +0,0 @@ -[py_binary( - name = name, - srcs = ["{}.py".format(name)], - data = ["//python:pyimprint/core.so"], - deps = [ - "//python:pyimprint_lib", - ], -) for name in [ - "simple_selection", - "simple_log_rank", - "thompson", -]] diff --git a/python/example/simple_log_rank.py b/python/example/simple_log_rank.py deleted file mode 100644 index f6783913..00000000 --- a/python/example/simple_log_rank.py +++ /dev/null @@ -1,446 +0,0 @@ -import argparse -import os -from datetime import timedelta -from logging import basicConfig -from logging import DEBUG as log_level -from logging import getLogger -from timeit import default_timer as timer - -import numpy as np -from pyimprint.driver import accumulate_process -from pyimprint.grid import HyperPlane -from pyimprint.grid import make_cartesian_grid_range -from pyimprint.model.exponential import SimpleLogRank -from utils import to_array - -# ========================================== - -samples_def = 250 -seed_def = 69 -lower_def = [-0.025, -0.275] -upper_def = [0.25, 0.0] -delta_def = 0.025 -censor_time_def = 2.0 - -sims_def = int(1e5) -points_def = 64 -threads_def = os.cpu_count() -critval_def = 1.96 -bound_def = False -hsh_def = "" - -iters_def = 15 -max_sims_def = int(1e5) -max_batch_def = int(1e6) -init_sims_def = int(1e3) -init_points_def = 8 -alpha_def = 0.025 -critval_tol_def = alpha_def * 1.1 -do_plot_def = False - - -common_parser = argparse.ArgumentParser( - description="Common parser.", - add_help=False, -) -common_parser.add_argument( - "--samples", - type=int, - nargs="?", - default=samples_def, - help=f"Number of samples in each arm (default: {samples_def}).", -) -common_parser.add_argument( - "--seed", - type=int, - nargs="?", - default=seed_def, - help=f"Number of samples in each arm (default: {seed_def}).", -) -common_parser.add_argument( - "--lower", - type=float, - nargs="*", - default=lower_def, - help="Lower bound of grid-points along each dimension " - f"(default: {lower_def}). Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--upper", - type=float, - nargs="*", - default=upper_def, - help=f"Upper bound of grid-points along each dimension (default: {upper_def}). " - "Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--censor_time", - type=float, - nargs="?", - default=censor_time_def, - help=f"Censor time (default: {censor_time_def}).", -) -common_parser.add_argument( - "--delta", - type=float, - nargs="?", - default=delta_def, - help=f"Imprint bound 1-confidence (default: {delta_def}).", -) - -global_parser = argparse.ArgumentParser( - description=""" - Example of simulating a exponential simple log-rank model. - """, -) -sub_parsers = global_parser.add_subparsers( - dest="example_type", - help="Types of examples.", - required=True, -) - -main_parser = sub_parsers.add_parser( - "main", - parents=[common_parser], - help="Main example.", -) -main_parser.add_argument( - "--sims", - type=int, - nargs="?", - default=sims_def, - help=f"Number of total simulations (default: {sims_def}).", -) -main_parser.add_argument( - "--points", - type=int, - nargs="?", - default=points_def, - help="Number of evenly spaced out points along " - f"one dimension (default: {points_def}). " - "The generated points will form a cartesian product " - "with dimension specified by --arms.", -) -main_parser.add_argument( - "--threads", - type=int, - nargs="?", - default=threads_def, - help=f"Number of threads (default: {threads_def}).", -) -main_parser.add_argument( - "--critval", - type=float, - nargs="?", - default=critval_def, - help=f"Critical value for test rejection (default: {critval_def}).", -) -main_parser.add_argument( - "--bound", - action="store_const", - const=(not bound_def), - default=bound_def, - help=f"Computes imprint bound with level --delta if True (default: {bound_def}).", -) -main_parser.add_argument( - "--hash", - type=str, - nargs="?", - default=hsh_def, - help=f"Hash to append to imprint bound output (default: {hsh_def}).", -) - -adagrid_parser = sub_parsers.add_parser( - "adagrid", - parents=[common_parser], - help="AdaGrid example.", -) -adagrid_parser.add_argument( - "--iters", - type=int, - nargs="?", - default=iters_def, - help=f"Runs adagrid with this number of max iterations (default: {iters_def}).", -) -adagrid_parser.add_argument( - "--max_sims", - type=int, - nargs="?", - default=max_sims_def, - help="Runs adagrid with this number of " - f"max simulation size (default: {max_sims_def}).", -) -adagrid_parser.add_argument( - "--max_batch", - type=int, - nargs="?", - default=max_batch_def, - help="Runs adagrid with this number of " - f"max grid-point batch size (default: {max_batch_def}).", -) -adagrid_parser.add_argument( - "--init_sims", - type=int, - nargs="?", - default=init_sims_def, - help="Runs adagrid with this number of " - f"initial simulation size (default: {init_sims_def}).", -) -adagrid_parser.add_argument( - "--init_points", - type=int, - nargs="?", - default=init_points_def, - help="Runs adagrid with this number of " - f"initial grid-points along each direction (default: {init_points_def}).", -) -adagrid_parser.add_argument( - "--alpha", - type=float, - nargs="?", - default=alpha_def, - help="Runs adagrid with test target " - f"nominal level alpha (default: {alpha_def}).", -) -adagrid_parser.add_argument( - "--critval_tol", - type=float, - nargs="?", - default=critval_tol_def, - help=f""" - Runs adagrid with grid-point finalize condition (default: {critval_tol_def}). - If a grid-point has estimated nominal level < to this value, - adagrid does not operate on that grid-point anymore. - The higher the value, the more quickly adagrid will finish, - but more likely the points will not have a good configuration. - """, -) -adagrid_parser.add_argument( - "--plot", - action="store_const", - const=(not do_plot_def), - default=do_plot_def, - help=f"Plots AdaGrid results if True (default: {do_plot_def}).", -) - -args = global_parser.parse_args() - -# outer args -n_arms = 2 -seed = args.seed -lower = args.lower -upper = args.upper -delta = args.delta -n_samples = args.samples -censor_time = args.censor_time - -lower = to_array(lower, n_arms) -upper = to_array(upper, n_arms) - -# main example args -if args.example_type == "main": - sim_size = args.sims - n_thetas_1d = args.points - n_threads = args.threads - critval = args.critval - bound = args.bound - hsh = args.hash - if bound: - from utils import create_ub_plot_inputs, save_ub - -# adagrid args -elif args.example_type == "adagrid": - n_iter = args.iters - N_max = args.max_sims - max_batch_size = args.max_batch - init_sim_size = args.init_sims - init_size = args.init_points - alpha = args.alpha - finalize = args.critval_tol - do_plot = args.plot - - # imports conditional on command-line args - import matplotlib.pyplot as plt - from pyimprint.batcher import SimpleBatch - from pyimprint.grid import AdaGrid - from scipy.stats import norm - -# Begin our logging -basicConfig( - level=log_level, - format="%(asctime)s %(levelname)-8s %(module)-20s: %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", -) -logger = getLogger(__name__) -logger.info("n_arms: {}".format(n_arms)) -logger.info("censor_time: {}".format(censor_time)) -logger.info("n_samples: {}".format(n_samples)) -logger.info("seed: {}".format(seed)) -logger.info("lower: {}".format(lower)) -logger.info("upper: {}".format(upper)) -logger.info("delta: {}".format(delta)) - -if args.example_type == "main": - logger.info("sim_size: {}".format(sim_size)) - logger.info("n_thetas_1d: {}".format(n_thetas_1d)) - logger.info("n_threads: {}".format(n_threads)) - logger.info("critval: {}".format(critval)) - logger.info("bound: {}".format(bound)) - logger.info("hash: {}".format(hsh)) - -elif args.example_type == "adagrid": - logger.info("n_iter: {}".format(n_iter)) - logger.info("N_max: {}".format(N_max)) - logger.info("max_batch_size: {}".format(max_batch_size)) - logger.info("init_sim_size: {}".format(init_sim_size)) - logger.info("init_size: {}".format(init_size)) - logger.info("alpha: {}".format(alpha)) - logger.info("finalize: {}".format(finalize)) - logger.info("do_plot: {}".format(do_plot)) - -# ========================================== - -# set numpy random seed -np.random.seed(seed) - -# define null hypos -null_hypos = [HyperPlane(np.array([0, -1]), 0)] - -# Create full grid. -# At the driver-level, we need to know theta, radii, sim_sizes. - -# These parameters are only needed to unify the -# making of cartesian grid range. -grid_n_thetas_1d = None -grid_sim_size = None - -if args.example_type == "main": - grid_n_thetas_1d = n_thetas_1d - grid_sim_size = sim_size - -elif args.example_type == "adagrid": - grid_n_thetas_1d = init_size - grid_sim_size = init_sim_size - -gr = make_cartesian_grid_range( - grid_n_thetas_1d, - lower, - upper, - grid_sim_size, -) - -# create model -model = SimpleLogRank(n_samples, censor_time, []) - -if args.example_type == "adagrid": - # TODO: temporary values to feed. - alpha_minus = alpha - 2 * np.sqrt(alpha * (1 - alpha) / init_sim_size) - thr = norm.isf(alpha) - thr_minus = norm.isf(alpha_minus) - - # create batcher - batcher = SimpleBatch(max_size=max_batch_size) - adagrid = AdaGrid() - gr_new = adagrid.fit( - batcher=batcher, - model=model, - null_hypos=null_hypos, - init_grid=gr, - alpha=alpha, - delta=delta, - seed=seed, - max_iter=n_iter, - N_max=N_max, - alpha_minus=alpha_minus, - thr=thr, - thr_minus=thr_minus, - finalize_thr=finalize, - rand_iter=False, - debug=True, - ) - - finals = None - curr = None - - # iterate through adagrid and study output - i = 0 - adagrid_time = 0 - while 1: - try: - start = timer() - curr, finals = next(gr_new) - end = timer() - adagrid_time += end - start - except StopIteration: - break - - if do_plot: - thetas = curr.thetas_const() - - plt.scatter( - thetas[0, :], - thetas[1, :], - marker=".", - c=curr.sim_sizes(), - cmap="plasma", - ) - - plt.show() - - i += 1 - - n_pts = 0 - s_max = 0 - if not (curr is None): - finals.append(curr) - for final in finals: - n_pts += final.thetas().shape[1] - if final.sim_sizes().size != 0: - s_max = max(s_max, np.max(final.sim_sizes())) - - logger.info("AdaGrid n_gridpts: {}".format(n_pts)) - logger.info("AdaGrid max_sim_size: {}".format(s_max)) - logger.info("AdaGrid n_iters: {}".format(i)) - logger.info("AdaGrid time: {}".format(timedelta(seconds=adagrid_time))) - -elif args.example_type == "main": - model.critical_values([critval]) - gr.create_tiles(null_hypos) - - start = timer() - gr.prune() - end = timer() - - logger.info("Prune time: {}".format(timedelta(seconds=end - start))) - logger.info("n_gridpts: {}".format(gr.n_gridpts())) - logger.info("n_tiles: {}".format(gr.n_tiles())) - - start = timer() - out = accumulate_process(model, gr, sim_size, seed, n_threads) - end = timer() - - logger.info("Accumulate time: {}".format(timedelta(seconds=end - start))) - - # create upper bound plot inputs and save info - if bound: - start = timer() - P, B = create_ub_plot_inputs(model, out, gr, delta) - end = timer() - logger.info("Create plot input time: {}".format(timedelta(seconds=end - start))) - - suffix = "simple_log_rank" - if hsh != "": - suffix += "-" + hsh - - start = timer() - save_ub( - f"P-{suffix}.csv", - f"B-{suffix}.csv", - P, - B, - ) - end = timer() - logger.info("CSV write time: {}".format(timedelta(seconds=end - start))) - - # print type I error - logger.info("Type I error: {}".format(out.typeI_sum() / sim_size)) diff --git a/python/example/simple_selection.py b/python/example/simple_selection.py deleted file mode 100644 index d590a425..00000000 --- a/python/example/simple_selection.py +++ /dev/null @@ -1,476 +0,0 @@ -import argparse -import os -from datetime import timedelta -from logging import basicConfig -from logging import DEBUG as log_level -from logging import getLogger -from timeit import default_timer as timer - -import numpy as np -from pyimprint.driver import accumulate_process -from pyimprint.grid import HyperPlane -from pyimprint.grid import make_cartesian_grid_range -from pyimprint.model.binomial import SimpleSelection -from utils import to_array - -# ========================================== - -arms_def = 2 -sims_def = int(1e5) -points_def = 64 -threads_def = os.cpu_count() -phase2_def = 50 -samples_def = 250 -seed_def = 69 -critval_def = 2.1 -lower_def = -0.5 -upper_def = 0.5 -delta_def = 0.025 -bound_def = False -hsh_def = "" -iters_def = 15 -max_sims_def = int(1e5) -max_batch_def = int(1e6) -init_sims_def = int(1e3) -init_points_def = 8 -alpha_def = 0.025 -critval_tol_def = alpha_def * 1.1 -do_plot_def = False - -common_parser = argparse.ArgumentParser( - description="Common parser.", - add_help=False, -) -common_parser.add_argument( - "--arms", - type=int, - nargs="?", - default=arms_def, - help=f"Number of arms (default: {arms_def}).", -) -common_parser.add_argument( - "--phase2", - type=int, - nargs="?", - default=phase2_def, - help=f"Phase II size (default: {phase2_def}).", -) -common_parser.add_argument( - "--samples", - type=int, - nargs="?", - default=samples_def, - help=f"Number of samples in each arm (default: {samples_def}).", -) -common_parser.add_argument( - "--seed", - type=int, - nargs="?", - default=seed_def, - help=f"Number of samples in each arm (default: {seed_def}).", -) -common_parser.add_argument( - "--lower", - type=float, - nargs="*", - default=lower_def, - help=f"Lower bound of grid-points along each dimension (default: {lower_def}). " - "Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--upper", - type=float, - nargs="*", - default=upper_def, - help=f"Upper bound of grid-points along each dimension (default: {upper_def}). " - "Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--delta", - type=float, - nargs="?", - default=delta_def, - help=f"Imprint bound 1-confidence (default: {delta_def}).", -) - -global_parser = argparse.ArgumentParser( - description=""" - Example of simulating a binomial simple selection model. - """, -) -sub_parsers = global_parser.add_subparsers( - dest="example_type", - help="Types of examples.", - required=True, -) - -main_parser = sub_parsers.add_parser( - "main", - parents=[common_parser], - help="Main example parser.", -) -main_parser.add_argument( - "--sims", - type=int, - nargs="?", - default=sims_def, - help=f"Number of total simulations (default: {sims_def}).", -) -main_parser.add_argument( - "--points", - type=int, - nargs="?", - default=points_def, - help="Number of evenly spaced out points along one dimension " - f"(default: {points_def}). " - "The generated points will form a cartesian product " - "with dimension specified by --arms.", -) -main_parser.add_argument( - "--threads", - type=int, - nargs="?", - default=threads_def, - help=f"Number of threads (default: {threads_def}).", -) -main_parser.add_argument( - "--critval", - type=float, - nargs="?", - default=critval_def, - help=f"Critical value for test rejection (default: {critval_def}).", -) -main_parser.add_argument( - "--bound", - action="store_const", - const=(not bound_def), - default=bound_def, - help=f"Computes imprint bound with level --delta if True (default: {bound_def}).", -) -main_parser.add_argument( - "--hash", - type=str, - nargs="?", - default=hsh_def, - help=f"Hash to append to imprint bound output (default: {hsh_def}).", -) - -adagrid_parser = sub_parsers.add_parser( - "adagrid", - parents=[common_parser], - help="AdaGrid example.", -) -adagrid_parser.add_argument( - "--iters", - type=int, - nargs="?", - default=iters_def, - help=f"Runs adagrid with this number of max iterations (default: {iters_def}).", -) -adagrid_parser.add_argument( - "--max_sims", - type=int, - nargs="?", - default=max_sims_def, - help="Runs adagrid with this number of " - f"max simulation size (default: {max_sims_def}).", -) -adagrid_parser.add_argument( - "--max_batch", - type=int, - nargs="?", - default=max_batch_def, - help="Runs adagrid with this number of max " - f"grid-point batch size (default: {max_batch_def}).", -) -adagrid_parser.add_argument( - "--init_sims", - type=int, - nargs="?", - default=init_sims_def, - help="Runs adagrid with this number of " - f"initial simulation size (default: {init_sims_def}).", -) -adagrid_parser.add_argument( - "--init_points", - type=int, - nargs="?", - default=init_points_def, - help="Runs adagrid with this number of " - f"initial grid-points along each direction (default: {init_points_def}).", -) -adagrid_parser.add_argument( - "--alpha", - type=float, - nargs="?", - default=alpha_def, - help=f"Runs adagrid with test target nominal level alpha (default: {alpha_def}).", -) -adagrid_parser.add_argument( - "--critval_tol", - type=float, - nargs="?", - default=critval_tol_def, - help=f""" - Runs adagrid with grid-point finalize condition (default: {critval_tol_def}). - If a grid-point has estimated nominal level < to this value, - adagrid does not operate on that grid-point anymore. - The higher the value, the more quickly adagrid will finish, - but more likely the points will not have a good configuration. - """, -) -adagrid_parser.add_argument( - "--plot", - action="store_const", - const=(not do_plot_def), - default=do_plot_def, - help=f"Plots AdaGrid results if True (default: {do_plot_def}).", -) - -args = global_parser.parse_args() - -# outer args -n_arms = args.arms -ph2_size = args.phase2 -seed = args.seed -lower = args.lower -upper = args.upper -delta = args.delta -n_samples = args.samples - -lower = to_array(lower, n_arms) -upper = to_array(upper, n_arms) - -# main example args -if args.example_type == "main": - sim_size = args.sims - n_thetas_1d = args.points - n_threads = args.threads - critval = args.critval - bound = args.bound - hsh = args.hash - if bound: - from utils import create_ub_plot_inputs, save_ub - -# adagrid args -elif args.example_type == "adagrid": - n_iter = args.iters - N_max = args.max_sims - max_batch_size = args.max_batch - init_sim_size = args.init_sims - init_size = args.init_points - alpha = args.alpha - finalize = args.critval_tol - do_plot = args.plot - - # imports conditional on command-line args - import matplotlib.pyplot as plt - from pyimprint.batcher import SimpleBatch - from pyimprint.grid import AdaGrid - from scipy.stats import norm - -# Begin our logging -basicConfig( - level=log_level, - format="%(asctime)s %(levelname)-8s %(module)-20s: %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", -) -logger = getLogger(__name__) -logger.info("n_arms: {}".format(n_arms)) -logger.info("ph2_size: {}".format(ph2_size)) -logger.info("n_samples: {}".format(n_samples)) -logger.info("seed: {}".format(seed)) -logger.info("lower: {}".format(lower)) -logger.info("upper: {}".format(upper)) -logger.info("delta: {}".format(delta)) - -if args.example_type == "main": - logger.info("sim_size: {}".format(sim_size)) - logger.info("n_thetas_1d: {}".format(n_thetas_1d)) - logger.info("n_threads: {}".format(n_threads)) - logger.info("critval: {}".format(critval)) - logger.info("bound: {}".format(bound)) - logger.info("hash: {}".format(hsh)) - -elif args.example_type == "adagrid": - logger.info("n_iter: {}".format(n_iter)) - logger.info("N_max: {}".format(N_max)) - logger.info("max_batch_size: {}".format(max_batch_size)) - logger.info("init_sim_size: {}".format(init_sim_size)) - logger.info("init_size: {}".format(init_size)) - logger.info("alpha: {}".format(alpha)) - logger.info("finalize: {}".format(finalize)) - logger.info("do_plot: {}".format(do_plot)) - -# ========================================== - -## Begin example code - -# set numpy random seed -np.random.seed(seed) - -# define null hypos -null_hypos = [] -for i in range(1, n_arms): - n = np.zeros(n_arms) - n[0] = 1 - n[i] = -1 - null_hypos.append(HyperPlane(n, 0)) - -# Create current batch of grid points. -# At the process-level, we only need to know theta, radii. - -# These parameters are only needed to unify the -# making of cartesian grid range. -grid_n_thetas_1d = None -grid_sim_size = None - -if args.example_type == "main": - grid_n_thetas_1d = n_thetas_1d - grid_sim_size = sim_size - -elif args.example_type == "adagrid": - grid_n_thetas_1d = init_size - grid_sim_size = init_sim_size - -gr = make_cartesian_grid_range( - grid_n_thetas_1d, - lower, - upper, - grid_sim_size, -) - -# create model -model = SimpleSelection(n_arms, n_samples, ph2_size, []) - -if args.example_type == "adagrid": - # TODO: temporary values we feed - needs to change once - # adagrid becomes more general. - alpha_minus = alpha - 2 * np.sqrt(alpha * (1 - alpha) / init_sim_size) - thr = norm.isf(alpha) - thr_minus = norm.isf(alpha_minus) - - # create batcher - batcher = SimpleBatch(max_size=max_batch_size) - adagrid = AdaGrid() - gr_new = adagrid.fit( - batcher=batcher, - model=model, - null_hypos=null_hypos, - init_grid=gr, - alpha=alpha, - delta=delta, - seed=seed, - max_iter=n_iter, - N_max=N_max, - alpha_minus=alpha_minus, - thr=thr, - thr_minus=thr_minus, - finalize_thr=finalize, - rand_iter=False, - debug=True, - ) - - finals = None - curr = None - - # iterate through adagrid and study output - i = 0 - adagrid_time = 0 - while 1: - try: - start = timer() - curr, finals = next(gr_new) - end = timer() - adagrid_time += end - start - except StopIteration: - break - - if do_plot: - thetas = curr.thetas() - - if n_arms == 3: - fig = plt.figure() - ax = fig.add_subplot(projection="3d") - ax.scatter( - thetas[0, :], - thetas[1, :], - thetas[2, :], - marker=".", - c=curr.sim_sizes(), - cmap="plasma", - ) - ax.set_title("Iter={i}".format(i=i)) - - elif n_arms == 2: - plt.scatter( - thetas[0, :], - thetas[1, :], - marker=".", - c=curr.sim_sizes(), - cmap="plasma", - ) - else: - logger.info( - "No plotting mechanism implemented for the current configuration." - ) - - plt.show() - i += 1 - - n_pts = 0 - s_max = 0 - if not (curr is None): - finals.append(curr) - for final in finals: - n_pts += final.thetas().shape[1] - if final.sim_sizes().size != 0: - s_max = max(s_max, np.max(final.sim_sizes())) - - logger.info("AdaGrid n_gridpts: {}".format(n_pts)) - logger.info("AdaGrid max_sim_size: {}".format(s_max)) - logger.info("AdaGrid n_iters: {}".format(i)) - logger.info("AdaGrid time: {}".format(timedelta(seconds=adagrid_time))) - -elif args.example_type == "main": - model.critical_values([critval]) - - gr.create_tiles(null_hypos) - - start = timer() - gr.prune() - end = timer() - - logger.info("Prune time: {}".format(timedelta(seconds=end - start))) - logger.info("n_gridpts: {}".format(gr.n_gridpts())) - logger.info("n_tiles: {}".format(gr.n_tiles())) - - start = timer() - out = accumulate_process(model, gr, sim_size, seed, n_threads) - end = timer() - - logger.info("Accumulate time: {}".format(timedelta(seconds=end - start))) - - # create upper bound plot inputs and save info - if bound: - start = timer() - P, B = create_ub_plot_inputs(model, out, gr, delta) - end = timer() - logger.info("Create plot input time: {}".format(timedelta(seconds=end - start))) - - suffix = "simple_selection" - if hsh != "": - suffix += "-" + hsh - - start = timer() - save_ub( - f"P-{suffix}.csv", - f"B-{suffix}.csv", - P, - B, - ) - end = timer() - logger.info("CSV write time: {}".format(timedelta(seconds=end - start))) - - # print type I error - logger.info("Type I error: {}".format(out.typeI_sum() / sim_size)) diff --git a/python/example/thompson.py b/python/example/thompson.py deleted file mode 100644 index c561d1ad..00000000 --- a/python/example/thompson.py +++ /dev/null @@ -1,482 +0,0 @@ -import argparse -import os -from datetime import timedelta -from logging import basicConfig -from logging import DEBUG as log_level -from logging import getLogger -from logging import WARNING -from timeit import default_timer as timer - -import numpy as np -from pyimprint.driver import accumulate_process -from pyimprint.grid import HyperPlane -from pyimprint.grid import make_cartesian_grid_range -from pyimprint.model.binomial import Thompson -from utils import to_array - - -def sigmoid(t): - return 1.0 / (1.0 + np.exp(-t)) - - -def logit(p): - return np.log(p / (1 - p)) - - -# ========================================== - -sims_def = int(1e5) -points_def = 128 -threads_def = os.cpu_count() -samples_def = 100 -alpha_prior_def = 1.0 -beta_prior_def = 1.0 -p_thresh_def = sigmoid(0.6) -seed_def = 69 -critval_def = 0.95 -lower_def = logit(0.4) -upper_def = logit(0.8) -delta_def = 0.01 -bound_def = False -hsh_def = "" -iters_def = 15 -max_sims_def = int(1e5) -max_batch_def = int(1e6) -init_sims_def = int(1e3) -init_points_def = 8 -alpha_def = 0.05 -critval_tol_def = alpha_def * 1.1 -do_plot_def = False - -common_parser = argparse.ArgumentParser( - description="Common parser.", - add_help=False, -) -common_parser.add_argument( - "--samples", - type=int, - nargs="?", - default=samples_def, - help=f"Number of samples in each arm (default: {samples_def}).", -) -common_parser.add_argument( - "--alpha_prior", - type=float, - nargs="?", - default=alpha_prior_def, - help=f"Alpha prior (default: {alpha_prior_def}).", -) -common_parser.add_argument( - "--beta_prior", - type=float, - nargs="?", - default=beta_prior_def, - help=f"Beta prior (default: {alpha_prior_def}).", -) -common_parser.add_argument( - "--p_thresh", - type=float, - nargs="?", - default=p_thresh_def, - help=f"Posterior exceedance threshold (default: {p_thresh_def}).", -) -common_parser.add_argument( - "--seed", - type=int, - nargs="?", - default=seed_def, - help=f"Number of samples in each arm (default: {seed_def}).", -) -common_parser.add_argument( - "--lower", - type=float, - nargs="*", - default=lower_def, - help=f"Lower bound of grid-points along each dimension (default: {lower_def}). " - "Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--upper", - type=float, - nargs="*", - default=upper_def, - help=f"Upper bound of grid-points along each dimension (default: {upper_def}). " - "Must be either length 1 or same as --arms.", -) -common_parser.add_argument( - "--delta", - type=float, - nargs="?", - default=delta_def, - help=f"Imprint bound 1-confidence (default: {delta_def}).", -) - -global_parser = argparse.ArgumentParser( - description=""" - Example of simulating a binomial simple selection model. - """, -) -sub_parsers = global_parser.add_subparsers( - dest="example_type", - help="Types of examples.", - required=True, -) - -main_parser = sub_parsers.add_parser( - "main", - parents=[common_parser], - help="Main example parser.", -) -main_parser.add_argument( - "--sims", - type=int, - nargs="?", - default=sims_def, - help=f"Number of total simulations (default: {sims_def}).", -) -main_parser.add_argument( - "--points", - type=int, - nargs="?", - default=points_def, - help="Number of evenly spaced out points along one dimension " - f"(default: {points_def}). " - "The generated points will form a cartesian product " - "with dimension specified by --arms.", -) -main_parser.add_argument( - "--threads", - type=int, - nargs="?", - default=threads_def, - help=f"Number of threads (default: {threads_def}).", -) -main_parser.add_argument( - "--critval", - type=float, - nargs="?", - default=critval_def, - help=f"Critical value for test rejection (default: {critval_def}).", -) -main_parser.add_argument( - "--bound", - action="store_const", - const=(not bound_def), - default=bound_def, - help=f"Computes imprint bound with level --delta if True (default: {bound_def}).", -) -main_parser.add_argument( - "--hash", - type=str, - nargs="?", - default=hsh_def, - help=f"Hash to append to imprint bound output (default: {hsh_def}).", -) - -adagrid_parser = sub_parsers.add_parser( - "adagrid", - parents=[common_parser], - help="AdaGrid example.", -) -adagrid_parser.add_argument( - "--iters", - type=int, - nargs="?", - default=iters_def, - help=f"Runs adagrid with this number of max iterations (default: {iters_def}).", -) -adagrid_parser.add_argument( - "--max_sims", - type=int, - nargs="?", - default=max_sims_def, - help="Runs adagrid with this number of " - f"max simulation size (default: {max_sims_def}).", -) -adagrid_parser.add_argument( - "--max_batch", - type=int, - nargs="?", - default=max_batch_def, - help="Runs adagrid with this number of max " - f"grid-point batch size (default: {max_batch_def}).", -) -adagrid_parser.add_argument( - "--init_sims", - type=int, - nargs="?", - default=init_sims_def, - help="Runs adagrid with this number of " - f"initial simulation size (default: {init_sims_def}).", -) -adagrid_parser.add_argument( - "--init_points", - type=int, - nargs="?", - default=init_points_def, - help="Runs adagrid with this number of " - f"initial grid-points along each direction (default: {init_points_def}).", -) -adagrid_parser.add_argument( - "--alpha", - type=float, - nargs="?", - default=alpha_def, - help=f"Runs adagrid with test target nominal level alpha (default: {alpha_def}).", -) -adagrid_parser.add_argument( - "--critval_tol", - type=float, - nargs="?", - default=critval_tol_def, - help=f""" - Runs adagrid with grid-point finalize condition (default: {critval_tol_def}). - If a grid-point has estimated nominal level < to this value, - adagrid does not operate on that grid-point anymore. - The higher the value, the more quickly adagrid will finish, - but more likely the points will not have a good configuration. - """, -) -adagrid_parser.add_argument( - "--plot", - action="store_const", - const=(not do_plot_def), - default=do_plot_def, - help=f"Plots AdaGrid results if True (default: {do_plot_def}).", -) - -args = global_parser.parse_args() - -# outer args -n_arms = 2 -alpha_prior = args.alpha_prior -beta_prior = args.beta_prior -p_thresh = args.p_thresh -seed = args.seed -lower = args.lower -upper = args.upper -delta = args.delta -n_samples = args.samples - -lower = to_array(lower, n_arms) -upper = to_array(upper, n_arms) - -# main example args -if args.example_type == "main": - sim_size = args.sims - n_thetas_1d = args.points - n_threads = args.threads - critval = args.critval - bound = args.bound - hsh = args.hash - if bound: - from utils import create_ub_plot_inputs, save_ub - -# adagrid args -elif args.example_type == "adagrid": - n_iter = args.iters - N_max = args.max_sims - max_batch_size = args.max_batch - init_sim_size = args.init_sims - init_size = args.init_points - alpha = args.alpha - finalize = args.critval_tol - do_plot = args.plot - - # imports conditional on command-line args - from pyimprint.batcher import SimpleBatch - from pyimprint.grid import AdaGrid - from scipy.stats import norm - - # Disable matplotlib logging - getLogger("matplotlib").setLevel(WARNING) - import matplotlib.pyplot as plt - -# Begin our logging -basicConfig( - level=log_level, - format="%(asctime)s %(levelname)-8s %(module)-20s: %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", -) -logger = getLogger(__name__) -logger.info("n_arms: {}".format(n_arms)) -logger.info("alpha_prior: {}".format(alpha_prior)) -logger.info("beta_prior: {}".format(beta_prior)) -logger.info("p_thresh: {}".format(p_thresh)) -logger.info("n_samples: {}".format(n_samples)) -logger.info("seed: {}".format(seed)) -logger.info("lower: {}".format(lower)) -logger.info("upper: {}".format(upper)) -logger.info("delta: {}".format(delta)) - -if args.example_type == "main": - logger.info("sim_size: {}".format(sim_size)) - logger.info("n_thetas_1d: {}".format(n_thetas_1d)) - logger.info("n_threads: {}".format(n_threads)) - logger.info("critval: {}".format(critval)) - logger.info("bound: {}".format(bound)) - logger.info("hash: {}".format(hsh)) - -elif args.example_type == "adagrid": - logger.info("n_iter: {}".format(n_iter)) - logger.info("N_max: {}".format(N_max)) - logger.info("max_batch_size: {}".format(max_batch_size)) - logger.info("init_sim_size: {}".format(init_sim_size)) - logger.info("init_size: {}".format(init_size)) - logger.info("alpha: {}".format(alpha)) - logger.info("finalize: {}".format(finalize)) - logger.info("do_plot: {}".format(do_plot)) - -# ========================================== - -## Begin example code - -# set numpy random seed -np.random.seed(seed) - -# define null hypos -null_hypos = [] -for i in range(n_arms): - n = np.zeros(n_arms) - n[i] = -1 - null_hypos.append(HyperPlane(n, -logit(p_thresh))) - -# Create current batch of grid points. -# At the process-level, we only need to know theta, radii. - -# These parameters are only needed to unify the -# making of cartesian grid range. -grid_n_thetas_1d = None -grid_sim_size = None - -if args.example_type == "main": - grid_n_thetas_1d = n_thetas_1d - grid_sim_size = sim_size - -elif args.example_type == "adagrid": - grid_n_thetas_1d = init_size - grid_sim_size = init_sim_size - -gr = make_cartesian_grid_range( - grid_n_thetas_1d, - lower, - upper, - grid_sim_size, -) - -# create model -model = Thompson(n_samples, alpha_prior, beta_prior, p_thresh, []) - -if args.example_type == "adagrid": - # TODO: temporary values we feed - needs to change once - # adagrid becomes more general. - alpha_minus = alpha - 2 * np.sqrt(alpha * (1 - alpha) / init_sim_size) - thr = norm.isf(alpha) - thr_minus = norm.isf(alpha_minus) - - # create batcher - batcher = SimpleBatch(max_size=max_batch_size) - adagrid = AdaGrid() - gr_new = adagrid.fit( - batcher=batcher, - model=model, - null_hypos=null_hypos, - init_grid=gr, - alpha=alpha, - delta=delta, - seed=seed, - max_iter=n_iter, - N_max=N_max, - alpha_minus=alpha_minus, - thr=thr, - thr_minus=thr_minus, - finalize_thr=finalize, - rand_iter=False, - debug=True, - ) - - finals = None - curr = None - - # iterate through adagrid and study output - i = 0 - adagrid_time = 0 - while 1: - try: - start = timer() - curr, finals = next(gr_new) - end = timer() - adagrid_time += end - start - except StopIteration: - break - - if do_plot: - thetas = curr.thetas() - - plt.scatter( - thetas[0, :], - thetas[1, :], - marker=".", - c=curr.sim_sizes(), - cmap="plasma", - ) - - plt.show() - i += 1 - - n_pts = 0 - s_max = 0 - if not (curr is None): - finals.append(curr) - for final in finals: - n_pts += final.thetas().shape[1] - if final.sim_sizes().size != 0: - s_max = max(s_max, np.max(final.sim_sizes())) - - logger.info("AdaGrid n_gridpts: {}".format(n_pts)) - logger.info("AdaGrid max_sim_size: {}".format(s_max)) - logger.info("AdaGrid n_iters: {}".format(i)) - logger.info("AdaGrid time: {}".format(timedelta(seconds=adagrid_time))) - -elif args.example_type == "main": - model.critical_values([critval]) - - gr.create_tiles(null_hypos) - - start = timer() - gr.prune() - end = timer() - - logger.info("Prune time: {}".format(timedelta(seconds=end - start))) - logger.info("n_gridpts: {}".format(gr.n_gridpts())) - logger.info("n_tiles: {}".format(gr.n_tiles())) - - start = timer() - out = accumulate_process(model, gr, sim_size, seed, n_threads) - end = timer() - - logger.info("Accumulate time: {}".format(timedelta(seconds=end - start))) - - # create upper bound plot inputs and save info - if bound: - start = timer() - P, B = create_ub_plot_inputs(model, out, gr, delta) - end = timer() - logger.info("Create plot input time: {}".format(timedelta(seconds=end - start))) - - suffix = "thompson" - if hsh != "": - suffix += "-" + hsh - - start = timer() - save_ub( - f"P-{suffix}.csv", - f"B-{suffix}.csv", - P, - B, - ) - end = timer() - logger.info("CSV write time: {}".format(timedelta(seconds=end - start))) - - # print type I error - logger.info("Type I error: {}".format(out.typeI_sum() / sim_size)) diff --git a/python/example/utils.py b/python/example/utils.py deleted file mode 100644 index b3e562b0..00000000 --- a/python/example/utils.py +++ /dev/null @@ -1,72 +0,0 @@ -import logging -import os -import pathlib -from datetime import timedelta -from timeit import default_timer as timer - -import numpy as np -from pyimprint.bound import TypeIErrorBound - -log_level = logging.DEBUG -logging.basicConfig( - level=log_level, - format="%(asctime)s %(levelname)-8s %(module)-20s: %(message)s", - datefmt="%Y-%m-%d %H:%M:%S", -) -logger = logging.getLogger(__name__) -# Disable matplotlib logging -logging.getLogger("matplotlib").setLevel(logging.WARNING) - -data_dir = "data" # changeable - - -def to_array(v, size): - if isinstance(v, float): - v = [v] - v = np.array(v * size) if len(v) == 1 else np.array(v) - if v.shape[0] != size: - raise ValueError(f"v (={v}) must be either dimension 1 or size (={size}).") - return v - - -def save_ub(p_name, b_name, P, B): - basepath = pathlib.Path(__file__).parent.resolve() - datapath = os.path.join(basepath, data_dir) - - if not os.path.exists(datapath): - os.makedirs(datapath) - - p_path = os.path.join(datapath, p_name) - b_path = os.path.join(datapath, b_name) - np.savetxt(p_path, P, fmt="%s", delimiter=",") - np.savetxt(b_path, B, fmt="%s", delimiter=",") - - -def create_ub_plot_inputs(model, acc_o, gr, delta): - assert model.n_models() == 1 - ub = TypeIErrorBound() - kbs = model.make_imprint_bound_state(gr) - - start = timer() - ub.create(kbs, acc_o, gr, delta) - end = timer() - logger.info("Imprint bound time: {}".format(timedelta(seconds=end - start))) - - P = [] - B = [] - pos = 0 - for i in range(gr.n_gridpts()): - for j in range(gr.n_tiles(i)): - P.append(gr.thetas()[:, i]) - B.append( - [ - ub.delta_0()[0, pos], - ub.delta_0_u()[0, pos], - ub.delta_1()[0, pos], - ub.delta_1_u()[0, pos], - ub.delta_2_u()[0, pos], - ub.get()[0, pos], - ] - ) - pos += 1 - return np.array(P).T, np.array(B) diff --git a/python/pyimprint/__init__.py b/python/pyimprint/__init__.py deleted file mode 100644 index 8f5cc97b..00000000 --- a/python/pyimprint/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.core import mt19937 diff --git a/python/pyimprint/batcher/__init__.py b/python/pyimprint/batcher/__init__.py deleted file mode 100644 index 64ca535f..00000000 --- a/python/pyimprint/batcher/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.batcher.simple_batch import SimpleBatch diff --git a/python/pyimprint/batcher/simple_batch.py b/python/pyimprint/batcher/simple_batch.py deleted file mode 100644 index 116359a5..00000000 --- a/python/pyimprint/batcher/simple_batch.py +++ /dev/null @@ -1,68 +0,0 @@ -import numpy as np -from pyimprint.grid import GridRange - - -class SimpleBatchIter: - def __init__(self, simple_batch): - self.simple_batch = simple_batch - self.pos = 0 - - def __next__(self): - sb = self.simple_batch - - if self.pos == sb.grid_range.n_gridpts(): - self.pos = 0 - raise StopIteration - - size = min(sb.max_size, sb.grid_range.n_gridpts() - self.pos) - - gr = GridRange(sb.grid_range.n_params(), size) - - # copy over thetas - thetas = gr.thetas() - big_thetas = sb.grid_range.thetas() - thetas[...] = big_thetas[:, self.pos : (self.pos + size)] - - # copy over radii - radii = gr.radii() - big_radii = sb.grid_range.radii() - radii[...] = big_radii[:, self.pos : (self.pos + size)] - - # Assumptions: - # - the sim_sizes are fixed for all gridpoints - # so just grab one of the elements. - # - each batch will process the full sim_size. - # so no need to do anything special for sim_size_rem. - gr.sim_sizes()[...] = sb.grid_range.sim_sizes()[self.pos : (self.pos + size)] - - sim_size = np.max(gr.sim_sizes()) - - gr.create_tiles(sb.null_hypos) - gr.prune() - - self.pos += size - - return gr, sim_size - - -class SimpleBatch: - def __init__(self, grid_range=None, max_size=None, null_hypos=None): - if max_size == 0: - raise ValueError("max_size must be either positive or negative.") - - self.grid_range = None - self.max_size = None - self.null_hypos = None - - self.reset(grid_range, max_size, null_hypos) - - def reset(self, grid_range=None, max_size=None, null_hypos=None): - if not (grid_range is None): - self.grid_range = grid_range - if not (max_size is None): - self.max_size = max_size if max_size > 0 else grid_range.n_gridpts() - if not (null_hypos is None): - self.null_hypos = null_hypos - - def __iter__(self): - return SimpleBatchIter(self) diff --git a/python/pyimprint/bound/__init__.py b/python/pyimprint/bound/__init__.py deleted file mode 100644 index ea8235df..00000000 --- a/python/pyimprint/bound/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.core.bound import * diff --git a/python/pyimprint/driver/__init__.py b/python/pyimprint/driver/__init__.py deleted file mode 100644 index c126e90c..00000000 --- a/python/pyimprint/driver/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.driver.accumulate import * diff --git a/python/pyimprint/driver/accumulate.py b/python/pyimprint/driver/accumulate.py deleted file mode 100644 index 03bcb844..00000000 --- a/python/pyimprint/driver/accumulate.py +++ /dev/null @@ -1,106 +0,0 @@ -import os - -from pyimprint.core.bound import TypeIErrorAccum -from pyimprint.core.driver import accumulate - - -def accumulate_process( - model, grid_range, sim_size, base_seed, n_threads=os.cpu_count() -): - """ - Runs simulations for a given range of grid-points and a model. - Splits the workload evenly across n_threads number of threads - where each thread accumulates with sim_size /= n_threads - (some threads have an additional simulation). - Stores the (pooled) output in a SQL database. - - NOTE: it is implementation-specific how we spawn/manage threads. - TODO: currently we're just returning the output instead of - storing in a database. - - Parameters - ---------- - - model : model object. - grid_range : grid range object. - sim_size : number of simulations for each grid-point. - base_seed : each thread will receive a seed of base_seed + thread_id. - n_threads : number of threads to spawn. - Must be a positive integer. - Default is os.cpu_count(). - - Returns - ------- - InterSum object updated with sim_size - number of simulations under the given model. - """ - - if n_threads <= 0: - raise ValueError("n_threads must be positive.") - - max_threads = os.cpu_count() - if n_threads > max_threads: - n_threads = n_threads % max_threads - - # create sim global state - sgs = model.make_sim_global_state(grid_range) - - # create sim states - ss_s = [sgs.make_sim_state(base_seed + i) for i in range(n_threads)] - - # prepare output - acc_o = TypeIErrorAccum( - model.n_models(), grid_range.n_tiles(), grid_range.n_params() - ) - - # run C++ core routine - accumulate( - vec_sim_states=ss_s, - grid_range=grid_range, - accum=acc_o, - sim_size=sim_size, - n_threads=n_threads, - ) - - return acc_o - - -def accumulate_driver(batcher, model, base_seed, n_threads=os.cpu_count()): - """ - Batches grid points using batcher - and simulates each batch on a node in a cluster. - - TODO: for PoC, we're currently just sequentially - processing each batch and yielding each result. - Eventually, once accumulate_process stores into SQL, - accumulate_driver doesn't need to yield or output anything. - - Parameters - ---------- - - batcher : object that batches grid points. - Must be iterable where each iterator - returns the next batch of grid points - as a GridRange and the number - of simulation size to run. - model : model object. - base_seed : base seed for each node (process). - n_threads : number of threads to spawn in each node. - - Returns - ------- - - Yields each InterSum output for each batch - """ - - for batch, sim_size in batcher: - # TODO: accumulate_process won't output anything later - acc_o = accumulate_process( - model=model, - grid_range=batch, - sim_size=sim_size, - base_seed=base_seed, - n_threads=n_threads, - ) - # TODO: no need to yield anything later - yield acc_o diff --git a/python/pyimprint/grid/__init__.py b/python/pyimprint/grid/__init__.py deleted file mode 100644 index 01ad0df0..00000000 --- a/python/pyimprint/grid/__init__.py +++ /dev/null @@ -1,83 +0,0 @@ -from types import MethodType - -import numpy as np -from pyimprint.core.grid import * -from pyimprint.core.grid import Gridder -from pyimprint.core.grid import GridRange -from pyimprint.grid.adagrid import AdaGrid - -# TODO: note that AdaGridInternal really should not be exposed. - - -def n_tiles_per_pt(gr): - cum_n_tiles = np.array(gr.cum_n_tiles()) - return cum_n_tiles[1:] - cum_n_tiles[:-1] - - -def theta_tiles(gr): - return np.repeat(gr.thetas().T, n_tiles_per_pt(gr), axis=0) - - -def radii_tiles(gr): - return np.repeat(gr.radii().T, n_tiles_per_pt(gr), axis=0) - - -def sim_sizes_tiles(gr): - return np.repeat(gr.sim_sizes(), n_tiles_per_pt(gr), axis=0) - - -def is_null_per_arm(gr): - tiles = theta_tiles(gr) - n_arms = tiles.shape[-1] - return np.array( - [[gr.check_null(i, j) for j in range(n_arms)] for i in range(tiles.shape[0])] - ) - - -def collect_corners(gr): - # gr.corners expects a 2D array with shape: (n_tiles * 2^(d+1), d) - # unfilled indices will left as nan in order to be easily filtered out - # later on. - # We pass 2^(d+1) corner slots for each tile since that is guaranteed to be - # greater than the true number of corners. Since we only split a tile once, - # the true maximum should actually be (2^d) + d - 1. - corners = np.full((gr.n_tiles() * 2 ** (gr.n_params() + 1), gr.n_params()), np.nan) - - # gr.corners(...) fills the corners array in place. - gr.corners(corners) - - # After this reshape, the corners array will be: (n_tiles, 2^(d+1), d) - # Then, we will remove any corner indices that are entirely nan. After this - # loop the second dimension will be reduced in length from 2^(d+1) to the - # maximum number of corners for any tile. - corners = corners.reshape((gr.n_tiles(), -1, gr.n_params())) - for i in range(2 ** (gr.n_params() + 1)): - if np.all(np.isnan(corners[:, i, :])): - corners = corners[:, :i] - break - return corners - - -def make_cartesian_grid_range(size, lower, upper, grid_sim_size): - assert lower.shape[0] == upper.shape[0] - - # make initial 1d grid - theta_grids = ( - Gridder.make_grid(size, lower[i], upper[i]) for i in range(len(lower)) - ) - # make corresponding radius - radius = [Gridder.radius(size, lower[i], upper[i]) for i in range(len(lower))] - - coords = np.meshgrid(*theta_grids) - grid = np.concatenate([c.flatten().reshape(-1, 1) for c in coords], axis=1) - gr = GridRange(grid.shape[1], grid.shape[0]) - - gr.thetas()[...] = np.transpose(grid) - - radii = gr.radii() - for i, row in enumerate(radii): - row[...] = radius[i] - - gr.sim_sizes()[...] = grid_sim_size - - return gr diff --git a/python/pyimprint/grid/adagrid.py b/python/pyimprint/grid/adagrid.py deleted file mode 100644 index 87114c73..00000000 --- a/python/pyimprint/grid/adagrid.py +++ /dev/null @@ -1,306 +0,0 @@ -import copy -import os - -import numpy as np -from pyimprint.bound import TypeIErrorBound -from pyimprint.core.grid import AdaGridInternal -from pyimprint.core.grid import GridRange -from pyimprint.driver import accumulate_process - - -class AdaGrid(AdaGridInternal): - """ - AdaGrid (adaptive gridding) is a strategy for - sampling grid-points in a grid in a way that samples - more near the points of interest (large Type I error), - and less in the other regions. - """ - - def __init__(self): - AdaGridInternal.__init__(self) - - # TODO: This is totally incomplete for now. - # For now, we let the users pass in initial thresholds. - def init_thresh__(self, model, grid_range, null_hypo, alpha, seed, n_threads): - """ - Initializes threshold estimates. - - Note: this assumes that we're doing an one-sided upper-tail test - because we're always taking the maximum of the thresholds as the - conservative lambda. This loop is to get a reasonable estimate for the - thresholds. By construction, they always correspond to threshold such - that at all initial grid points, - alpha_hat, alpha_minus_hat <= true alpha, true alpha_minus. - """ - - # model.set_grid_range(grid_range, null_hypo) - # model_state = model.make_state() - - # sim_sizes = grid_range.sim_sizes() - # it_o = InitThresh(alpha) - # gen = mt19937() - - # for j in range(grid_range.size()): - # gen.seed(seed) - # sim_size_j = sim_sizes[j] - # it_o.reset(sim_size_j) - # for i in range(sim_size_j): - # model_state.rng(gen) - # model_state.suff_stat() - # it_o.update(model_state, j) - # it_o.create(model_state, j) - - # thresh = it_o.thresh() - # alpha_minus = it_o.alpha_minus() - - # i_star = np.argmax(thresh[0,:]) # argmax of thresh - - # self.alpha_target = alpha - # self.alpha_minus_target = alpha_minus[i_star] - # self.thr = thresh[0,i_star] - # self.thr_minus = thresh[1,i_star] - # self.da_dthr = (self.alpha_target - self.alpha_minus_target) / - # (self.thr-self.thr_minus) - - # print('da_dthresh={dd}, alpha_t={at}, alpha_minus_t={amt}'.format( - # dd=self.da_dthr, at=self.alpha_target, amt=self.alpha_minus_target)) - - def fit_internal__( - self, - batcher, - model, - null_hypos, - grid_range, - thr, - thr_minus, - alpha, - delta, - N_max, - base_seed, - n_threads, - finalize_thr, - ): - """ - Simulates the model for the current grid range. - Based on the upper bound object, - it returns finalized points into grid_final, - and grid_range as the new set of points. - - """ - - # set thresholds for model - model.critical_values(np.array([thr_minus, thr])) - - # attach batcher to current grid range - batcher.reset(grid_range=grid_range, null_hypos=null_hypos) - - # TODO: THIS ASSUMES EACH BATCH FINISHES ALL SIMS. - # Later do a SQL query instead of getting yields, - # which will remove this problem - # because by the time the driver is finished - # the updates are all done regardless of how sims were divided up. - # For now, we'll just create one big InterSum from all InterSums. - grs = [] - gfs = [] - for gr, sim_size in batcher: - is_o = accumulate_process( - model=model, - grid_range=gr, - sim_size=sim_size, - base_seed=base_seed, - n_threads=n_threads, - ) - ub = TypeIErrorBound() - kbs = model.make_imprint_bound_state(gr) - ub.create(kbs, is_o, gr, delta) - - # extract estimates of alpha, alpha_minus, N_crit - d0 = ub.delta_0() - N = gr.sim_sizes() - - i_star = np.argmax(d0[1, :]) - alpha_hat = d0[1, i_star] - alpha_minus_hat = d0[0, i_star] - - ntcs = np.cumsum(gr.n_tiles()) - N_crit = N[np.where(ntcs > i_star)[0][0]] - - # call internal C++ routine to update grid ranges - gf = GridRange() - self.update( - ub, - gr, - gf, - N_max, - finalize_thr, - ) - - # append to list - grs.append(gr) - gfs.append(gf) - - def copy_gr(gs, og): - pos = 0 - for g in gs: - og.thetas()[:, pos : (pos + g.n_gridpts())] = g.thetas() - og.radii()[:, pos : (pos + g.n_gridpts())] = g.radii() - og.sim_sizes()[pos : (pos + g.n_gridpts())] = g.sim_sizes() - pos += g.n_gridpts() - - grid_range = GridRange( - grid_range.n_params(), np.sum(np.array([gr.n_gridpts() for gr in grs])) - ) - grid_final = GridRange( - grid_range.n_params(), np.sum(np.array([gf.n_gridpts() for gf in gfs])) - ) - copy_gr(grs, grid_range) - copy_gr(gfs, grid_final) - - return alpha_hat, alpha_minus_hat, N_crit, grid_range, grid_final - - def fit( - self, - batcher, - model, - null_hypos, - init_grid, - alpha, - delta, - seed, - max_iter, - N_max, - alpha_minus, - thr, - thr_minus, - finalize_thr=None, - n_threads=os.cpu_count(), - rand_iter=True, - debug=False, - ): - """ - Samples grid-points by piloting the given model - under the given configuration. - - Parameters - ---------- - batcher : grid-range batch object. - model : model object. - null_hypo : functor whose input is unspecified and is model-specific. - Must satisfy model.set_grid_range(..., null_hypo). - null_hypos : list of surface objects that define the null-hypothesis region. - init_grid : initial GridRange object. - alpha : desired nominal level of model test. - delta : 1-confidence bound for provable upper bound. - seed : seed for RNG internally. - max_iter : max iteration of splitting grid-points. - N_max : max simulation size. - finalize_thr: threshold to determine when a gridpoint is finalized. - A gridpoint is finalized if - its upper bound value is less than finalize_thr. - Default is alpha * 1.1. - n_threads : number of threads for simulation. - rand_iter : True if change seed at every iteration. - At iteration i, seed will be seed + i. - Note that i=0 is the fit to the initial grid - to get an estimate of the thresholds. - Otherwise, each iteration will use seed as seed. - Default is True. - debug : prints debug messages if True. - - TODO: temporary parameters - alpha_minus : target for lower nominal level from alpha. - thr : threshold for test associated with level alpha. - thr_minus : threshold for test associated with level alpha_minus. - """ - - if finalize_thr is None: - finalize_thr = alpha * 1.1 - - # create the first grid range - grid_range = init_grid - - # list of grid ranges for each iteration that were finalized points. - grid_finals = [] - - # TODO: eventually we want to compute these quantities - # For now, we get them from user. - # Initialization is just to get good starting estimates - # of thr and thr_minus. - alpha = alpha - alpha_minus = alpha_minus - thr = thr - thr_minus = thr_minus - - itr = 0 - while (grid_range.n_gridpts() > 0) and (itr < max_iter): - - if rand_iter: - # TODO: how do we ensure that the seed change - # won't correlate the simulations across iterations? - # Currently, we are assuming that fit_driver - # passes the base seed and each process creates - # base seed + thread-id for each thread. - # So, the following implementation guarantees uncorrelated data. - # Possible solution: mangle the seed. - seed += n_threads - - if debug: - print( - "thr={thr}, thr_minus={thr_minus}".format( - thr=thr, thr_minus=thr_minus - ) - ) - - grid_range_old = copy.deepcopy(grid_range) - - # get estimates for alpha_hat, alpha_minus_hat, N_crit, upper bound - # updates in-place: - # - grid_range as the next set of grid-range. - # - grid_final is appended with points. - ( - alpha_hat, - alpha_minus_hat, - N_crit, - grid_range, - grid_final, - ) = self.fit_internal__( - batcher=batcher, - model=model, - null_hypos=null_hypos, - grid_range=grid_range, - thr=thr, - thr_minus=thr_minus, - alpha=alpha, - delta=delta, - N_max=N_max, - base_seed=seed, - n_threads=n_threads, - finalize_thr=finalize_thr, - ) - - # append current iteration of final grid-points - # TODO: eventually, all final points should be stored in SQL. - grid_finals.append(grid_final) - - if debug: - print( - "alpha={alpha}, alpha_minus={alpha_minus}".format( - alpha=alpha_hat, alpha_minus=alpha_minus_hat - ) - ) - - # update invariants - alpha_minus = max( - 1e-8, # just in case the latter becomes too small (or negative) - alpha - 2 * np.sqrt(alpha * (1.0 - alpha) / N_crit), - ) - da_dthr = (alpha_hat - alpha_minus_hat) / (thr - thr_minus) - thr += (alpha - alpha_hat) / da_dthr - thr_minus += (alpha_minus - alpha_minus_hat) / da_dthr - - # increment iteration idx - itr += 1 - - # yield current set of grid points we would have returned - # if this were the last iteration. - yield grid_range_old, grid_finals diff --git a/python/pyimprint/model/__init__.py b/python/pyimprint/model/__init__.py deleted file mode 100644 index ebd55e1d..00000000 --- a/python/pyimprint/model/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from pyimprint.model.binomial import * -from pyimprint.model.exponential import * diff --git a/python/pyimprint/model/binomial/__init__.py b/python/pyimprint/model/binomial/__init__.py deleted file mode 100644 index 4e9d3b12..00000000 --- a/python/pyimprint/model/binomial/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.core.model.binomial import * diff --git a/python/pyimprint/model/exponential/__init__.py b/python/pyimprint/model/exponential/__init__.py deleted file mode 100644 index f0bde771..00000000 --- a/python/pyimprint/model/exponential/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.core.model.exponential import * diff --git a/python/pyimprint/model/normal/__init__.py b/python/pyimprint/model/normal/__init__.py deleted file mode 100644 index b5cc09b1..00000000 --- a/python/pyimprint/model/normal/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from pyimprint.model.normal.simple import Simple diff --git a/python/pyimprint/model/normal/simple.py b/python/pyimprint/model/normal/simple.py deleted file mode 100644 index 68871916..00000000 --- a/python/pyimprint/model/normal/simple.py +++ /dev/null @@ -1,57 +0,0 @@ -import numpy as np -from pyimprint.core.model import ModelBase -from pyimprint.core.model import SimStateBase - - -class SimState(SimStateBase): - def __init__(self, outer, seed): - SimStateBase.__init__(self) - self.outer = outer - self.std_normal = 0 - np.random.seed(seed) - - def simulate__(mus, comp, nulls): - return nulls & (mus[0, :] > comp) - - def simulate(self, rej_len): - cvs = self.outer.outer.critical_values() - - self.std_normal = np.random.normal() - - rej_len[...] = SimState.simulate__( - self.outer.thetas, - cvs[0] - self.std_normal, - self.outer.nulls, - ) - - def score(self, gridpt_idx, out): - out[...] = self.std_normal - - -class SimGlobalState: - def __init__(self, outer, gr): - self.outer = outer - self.thetas = gr.thetas() - self.nulls = np.array( - [ - gr.check_null(i, j, 0) - for i in range(gr.n_gridpts()) - for j in range(gr.n_tiles(i)) - ] - ) - - def make_sim_state(self, seed): - return SimState(self, seed) - - -class Simple(ModelBase): - def __init__(self, cvs): - """ - cvs: critical values (descending order) - """ - self.n_arms = 1 - self.n_arm_samples = 1 - ModelBase.__init__(self, cvs) - - def make_sim_global_state(self, gr): - return SimGlobalState(self, gr) diff --git a/python/pyproject.toml b/python/pyproject.toml deleted file mode 100644 index f6763108..00000000 --- a/python/pyproject.toml +++ /dev/null @@ -1,7 +0,0 @@ -[build-system] -requires = [ - 'setuptools>=42', - 'wheel', - 'pybind11~=2.9' -] -build-backend = "setuptools.build_meta" diff --git a/python/setup.py b/python/setup.py deleted file mode 100644 index b5428cd9..00000000 --- a/python/setup.py +++ /dev/null @@ -1,38 +0,0 @@ -import os - -from setuptools import find_packages -from setuptools import setup - -CWD = os.path.abspath(os.path.dirname(__file__)) - -# Get long description by reading README.md (as one should). -with open(os.path.join(CWD, "README.md"), encoding="utf-8") as f: - long_description = f.read() - -if "VERSION" in os.environ: - version = os.environ["VERSION"] -else: - version = "0.1" - -setup( - name="pyimprint", - description="Imprint exports to Python.", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/Confirm-Solutions/imprint", - author="Confirm Solutions Modelling", - author_email="contact@confirmsol.org", - # TODO: lol we need one: license="BSD", - classifiers=[ # Optional - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - ], - packages=find_packages(), - install_requires=["numpy", "pybind11"], - data_files=[("../../pyimprint", ["core.so"])], - zip_safe=False, - version=version, -) diff --git a/python/src/bound/bound.cpp b/python/src/bound/bound.cpp deleted file mode 100644 index dc3b719c..00000000 --- a/python/src/bound/bound.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace bound { - -namespace py = pybind11; - -void add_to_module(py::module_& m) { - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using sgs_t = model::SimGlobalStateBase; - using ss_t = typename sgs_t::sim_state_t; - using kbs_t = model::ImprintBoundStateBase; - using acc_t = TypeIErrorAccum; - using kb_t = TypeIErrorBound; - - add_typeI_error_accum(m); - add_typeI_error_bound(m); -} - -} // namespace bound -} // namespace imprint diff --git a/python/src/bound/bound.hpp b/python/src/bound/bound.hpp deleted file mode 100644 index b6099976..00000000 --- a/python/src/bound/bound.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace bound { - -void add_to_module(pybind11::module_&); - -} // namespace bound -} // namespace imprint diff --git a/python/src/bound/typeI_error_accum.hpp b/python/src/bound/typeI_error_accum.hpp deleted file mode 100644 index 3a75228a..00000000 --- a/python/src/bound/typeI_error_accum.hpp +++ /dev/null @@ -1,70 +0,0 @@ -#pragma once -#include - -#include -#include - -namespace imprint { -namespace bound { - -namespace py = pybind11; - -template -void add_typeI_error_accum(pybind11::module_& m) { - using ss_t = SSType; - using acc_t = AccType; - using grid_range_t = GridRangeType; - using uint_t = typename acc_t::uint_t; - py::class_(m, "TypeIErrorAccum") - .def(py::init<>()) - .def(py::init(), py::arg("n_models"), - py::arg("n_tiles"), py::arg("n_params")) - .def("update", - &acc_t::template update>, - ss_t, grid_range_t>, - py::arg("rej_len"), py::arg("sim_state"), py::arg("grid_range")) - .def("pool", &acc_t::pool, py::arg("other")) - .def("pool_raw", &acc_t::pool_raw, py::arg("typeI_sum"), - py::arg("typeI_score")) - .def("reset", &acc_t::reset, py::arg("n_models"), py::arg("n_tiles"), - py::arg("n_params")) - .def("typeI_sum", py::overload_cast<>(&acc_t::typeI_sum, py::const_), - py::return_value_policy::reference_internal) - .def("score_sum", py::overload_cast<>(&acc_t::score_sum, py::const_), - py::return_value_policy::reference_internal) - .def("n_tiles", &acc_t::n_tiles) - .def("n_params", &acc_t::n_params) - .def("n_models", &acc_t::n_models) - .def(py::pickle( - [](const acc_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.typeI_sum(), p.score_sum(), - p.n_params()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 3) { - throw std::runtime_error("Invalid state!"); - } - - using typeI_sum_t = - std::decay_t().typeI_sum())>; - using score_sum_t = - std::decay_t().score_sum())>; - using n_params_t = - std::decay_t().n_params())>; - - auto typeI_sum = t[0].cast(); - auto score_sum = t[1].cast(); - auto n_params = t[2].cast(); - - /* Create a new C++ instance */ - acc_t p(typeI_sum.rows(), typeI_sum.cols(), n_params); - p.typeI_sum__() = typeI_sum; - p.score_sum__() = score_sum; - - return p; - })); -} - -} // namespace bound -} // namespace imprint diff --git a/python/src/bound/typeI_error_bound.hpp b/python/src/bound/typeI_error_bound.hpp deleted file mode 100644 index 8b9416b1..00000000 --- a/python/src/bound/typeI_error_bound.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace bound { - -namespace py = pybind11; - -template -void add_typeI_error_bound(py::module_& m) { - using gr_t = GRType; - using kbs_t = KBStateType; - using acc_t = AccType; - using kb_t = KBType; - py::class_(m, "TypeIErrorBound") - .def(py::init<>()) - .def("create", &kb_t::template create, - "Create and store the components of upper bound.", py::arg("kbs"), - py::arg("accum"), py::arg("grid_range"), py::arg("delta"), - py::arg("delta_prop_0to1") = 0.5, py::arg("verbose") = false) - .def("get", py::overload_cast<>(&kb_t::get, py::const_), - py::return_value_policy::reference_internal) - .def("delta_0", py::overload_cast<>(&kb_t::delta_0, py::const_), - py::return_value_policy::reference_internal) - .def("delta_0_u", py::overload_cast<>(&kb_t::delta_0_u, py::const_), - py::return_value_policy::reference_internal) - .def("delta_1", py::overload_cast<>(&kb_t::delta_1, py::const_), - py::return_value_policy::reference_internal) - .def("delta_1_u", py::overload_cast<>(&kb_t::delta_1_u, py::const_), - py::return_value_policy::reference_internal) - .def("delta_2_u", py::overload_cast<>(&kb_t::delta_2_u, py::const_), - py::return_value_policy::reference_internal); -} - -} // namespace bound -} // namespace imprint diff --git a/python/src/core.cpp b/python/src/core.cpp deleted file mode 100644 index cdcfed95..00000000 --- a/python/src/core.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace py = pybind11; - -PYBIND11_MODULE(core, m) { - using namespace imprint; - - /* Call each adder function from each subdirectory */ - py::module_ model_m = m.def_submodule("model", "Model submodule."); - model::add_to_module(model_m); - - py::module_ grid_m = m.def_submodule("grid", "Grid submodule."); - grid::add_to_module(grid_m); - - py::module_ driver_m = m.def_submodule("driver", "Driver submodule."); - driver::add_to_module(driver_m); - - py::module_ bound_m = m.def_submodule("bound", "Bound submodule."); - bound::add_to_module(bound_m); - /* Rest of the dependencies */ - - py::class_(m, "mt19937") - .def(py::init()) - .def("uniform_sample", - [](std::mt19937& gen, Eigen::Ref>& out_arr) { - std::uniform_real_distribution unif_; - size_t n_samples = out_arr.size(); - for (size_t i = 0; i < n_samples; i++) { - out_arr[i] = unif_(gen); - } - }); -} diff --git a/python/src/core.hpp b/python/src/core.hpp deleted file mode 100644 index 19054915..00000000 --- a/python/src/core.hpp +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once -#include - -namespace imprint {} // namespace imprint diff --git a/python/src/driver/accumulate.hpp b/python/src/driver/accumulate.hpp deleted file mode 100644 index 8fb8f375..00000000 --- a/python/src/driver/accumulate.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace driver { - -namespace py = pybind11; - -template -inline void add_accumulate(pybind11::module_& m) { - using sgs_t = SGSType; - using ss_t = typename sgs_t::sim_state_t; - using vec_ss_t = std::vector; - using gr_t = GridRangeType; - using acc_t = AccumType; - - m.def( - "accumulate", - [](const vec_ss_t& vec_ss, const gr_t& gr, acc_t& accum, - size_t sim_size, size_t n_threads) { - // release GIL before running long C++ function - py::gil_scoped_release release; - accumulate_(vec_ss, gr, accum, sim_size, n_threads); - }, - py::arg("vec_sim_states"), py::arg("grid_range"), py::arg("accum"), - py::arg("sim_size"), py::arg("n_threads")); -} - -} // namespace driver -} // namespace imprint diff --git a/python/src/driver/driver.cpp b/python/src/driver/driver.cpp deleted file mode 100644 index f56d836c..00000000 --- a/python/src/driver/driver.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace driver { - -namespace py = pybind11; - -void add_to_module(py::module_& m) { - using tile_t = grid::Tile; - using gr_t = grid::GridRange; - using sgs_t = model::SimGlobalStateBase; - using acc_t = bound::TypeIErrorAccum; - - add_accumulate(m); -} - -} // namespace driver -} // namespace imprint diff --git a/python/src/driver/driver.hpp b/python/src/driver/driver.hpp deleted file mode 100644 index e5ab155b..00000000 --- a/python/src/driver/driver.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace driver { - -void add_to_module(pybind11::module_&); - -} // namespace driver -} // namespace imprint diff --git a/python/src/export_utils/types.hpp b/python/src/export_utils/types.hpp deleted file mode 100644 index 52f5bdc0..00000000 --- a/python/src/export_utils/types.hpp +++ /dev/null @@ -1,12 +0,0 @@ -#pragma once -#include -#include - -namespace imprint { - -// default typedefs for pybind exports -using py_double_t = double; -using py_uint_t = uint32_t; -using py_size_t = size_t; - -} // namespace imprint diff --git a/python/src/grid/adagrid_internal.hpp b/python/src/grid/adagrid_internal.hpp deleted file mode 100644 index 35de3a71..00000000 --- a/python/src/grid/adagrid_internal.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace grid { - -namespace py = pybind11; - -template -void add_adagrid_internal(py::module_& m) { - using ada_t = AdaGridInternalType; - using ub_t = ImprintBoundType; - using gr_t = GRType; - using value_t = ValueType; - py::class_(m, "AdaGridInternal") - .def(py::init<>()) - .def("update", &ada_t::template update); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/grid.cpp b/python/src/grid/grid.cpp deleted file mode 100644 index bf7fd0d1..00000000 --- a/python/src/grid/grid.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#include // must enable for automatic conversion of Eigen -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace grid { - -void add_to_module(pybind11::module_& m) { - using tile_t = Tile; - using gr_t = GridRange; - using gridder_t = Gridder; - using adagrid_t = AdaGridInternal; - using ub_t = bound::TypeIErrorBound; - using hp_t = HyperPlane; - using vec_surf_t = std::vector; - using tile_t = Tile; - - add_gridder(m); - add_tile(m); - add_grid_range(m); - add_hyperplane(m); - add_adagrid_internal(m); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/grid.hpp b/python/src/grid/grid.hpp deleted file mode 100644 index 15d3cd5b..00000000 --- a/python/src/grid/grid.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace grid { - -void add_to_module(pybind11::module_&); - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/grid_range.hpp b/python/src/grid/grid_range.hpp deleted file mode 100644 index 35ba4455..00000000 --- a/python/src/grid/grid_range.hpp +++ /dev/null @@ -1,142 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace grid { - -namespace py = pybind11; - -template -void add_grid_range(py::module_& m) { - using gr_t = GRType; - using value_t = typename gr_t::value_t; - using vec_surf_t = VecSurfType; - using uint_t = typename gr_t::uint_t; - py::class_(m, "GridRange") - .def(py::init<>()) - .def(py::init(), py::arg("n_params"), - py::arg("n_gridpts")) - .def(py::init>&, - const Eigen::Ref>&, - const Eigen::Ref>&>(), - py::arg("thetas"), py::arg("radii"), py::arg("sim_sizes")) - .def(py::init>&, - const Eigen::Ref>&, - const Eigen::Ref>&, - const vec_surf_t&, bool>(), - py::arg("thetas"), py::arg("radii"), py::arg("sim_sizes"), - py::arg("surfaces"), py::arg("prune") = true) - .def("create_tiles", &gr_t::template create_tiles, - py::arg("surfaces")) - .def("prune", &gr_t::prune) - .def("n_tiles", py::overload_cast(&gr_t::n_tiles, py::const_), - py::arg("gridpt_idx")) - .def("n_tiles", py::overload_cast<>(&gr_t::n_tiles, py::const_)) - .def("cum_n_tiles", &gr_t::cum_n_tiles) - .def("n_gridpts", &gr_t::n_gridpts) - .def("n_params", &gr_t::n_params) - .def("thetas", py::overload_cast<>(&gr_t::thetas), - py::return_value_policy::reference_internal) - .def("thetas_const", py::overload_cast<>(&gr_t::thetas, py::const_), - py::return_value_policy::reference_internal) - .def("radii", py::overload_cast<>(&gr_t::radii), - py::return_value_policy::reference_internal) - .def("radii_const", py::overload_cast<>(&gr_t::radii, py::const_), - py::return_value_policy::reference_internal) - .def("sim_sizes", py::overload_cast<>(&gr_t::sim_sizes), - py::return_value_policy::reference_internal) - .def("sim_sizes_const", - py::overload_cast<>(&gr_t::sim_sizes, py::const_), - py::return_value_policy::reference_internal) - .def("corners", - [](gr_t& gr, - Eigen::Ref>& out) { - // out is expected to be full of nans and to have shape: - // (n_tiles * max_corners, dim). - int dim = gr.thetas().rows(); - colvec_type bits(dim); - int two_to_dim = std::pow(2, dim); - int max_corners = 2 * two_to_dim; - - // loop over each tile and assign the corners for that tile to - // the out array. - for (size_t i = 0; i < gr.n_tiles(); i++) { - auto& t = gr.tiles__()[i]; - if (t.is_regular()) { - for (int v_idx = 0; v_idx < two_to_dim; v_idx++) { - for (int k = 0; k < dim; k++) { - bits(k) = - 2 * static_cast(static_cast( - v_idx & (1 << (dim - 1 - k)))) - - 1; - } - out.row(i * max_corners + v_idx) = - t.regular_vertex(bits); - } - } else { - auto begin = t.begin(); - auto end = t.end(); - int v_idx = 0; - for (; begin != end; ++begin, v_idx++) { - out.row(i * max_corners + v_idx) = *begin; - } - } - } - }) - .def("check_null", - py::overload_cast(&gr_t::check_null, py::const_), - py::arg("tile_idx"), py::arg("hypo_idx")) - .def("check_null", - py::overload_cast(&gr_t::check_null, - py::const_), - py::arg("gridpt_idx"), py::arg("rel_tile_idx"), - py::arg("hypo_idx")) - .def(py::pickle( - [](const gr_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.thetas(), p.radii(), p.sim_sizes(), - p.cum_n_tiles__(), p.tiles(), p.bits__()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 6) { - throw std::runtime_error("Invalid state!"); - } - - using t_t = - std::decay_t().thetas())>; - using r_t = - std::decay_t().radii())>; - using s_t = - std::decay_t().sim_sizes())>; - using nt_t = std::decay_t< - decltype(std::declval().cum_n_tiles__())>; - using tt_t = - std::decay_t().tiles())>; - using b_t = - std::decay_t().bits__())>; - - auto thetas = t[0].cast(); - auto radii = t[1].cast(); - auto sim_sizes = t[2].cast(); - auto cum_n_tiles = t[3].cast(); - auto tiles = t[4].cast(); - auto bits = t[5].cast(); - - /* Create a new C++ instance */ - gr_t p; - p.thetas() = thetas; - p.radii() = radii; - p.sim_sizes() = sim_sizes; - p.cum_n_tiles__() = cum_n_tiles; - p.tiles__() = tiles; - p.bits__() = bits; - - return p; - })); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/gridder.hpp b/python/src/grid/gridder.hpp deleted file mode 100644 index b8bdda02..00000000 --- a/python/src/grid/gridder.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace grid { - -namespace py = pybind11; - -template -colvec_type make_grid_wrap(UIntType n, ValueType l, ValueType u) { - return GridderType::make_grid(n, l, u); -} - -template -void add_gridder(pybind11::module_& m) { - using gridder_t = GridderType; - using value_t = ValueType; - using uint_t = UIntType; - py::class_(m, "Gridder") - .def(py::init<>()) - .def("radius", &gridder_t::template radius) - .def("make_grid", &make_grid_wrap); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/hyperplane.hpp b/python/src/grid/hyperplane.hpp deleted file mode 100644 index ef59ce94..00000000 --- a/python/src/grid/hyperplane.hpp +++ /dev/null @@ -1,46 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace grid { - -namespace py = pybind11; - -template -void add_hyperplane(py::module_& m) { - using hp_t = HyperPlaneType; - using value_t = typename hp_t::value_t; - py::class_(m, "HyperPlane") - .def(py::init>, - const value_t&>(), - py::arg("normal"), - py::arg("shift")) - .def(py::pickle( - [](const hp_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - colvec_type n = p.normal(); - return py::make_tuple(n, p.shift()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 2) { - throw std::runtime_error("Invalid state!"); - } - - using n_t = colvec_type; - using s_t = - std::decay_t().shift())>; - - auto normal = t[0].cast(); - auto shift = t[1].cast(); - - /* Create a new C++ instance */ - hp_t p(normal, shift); - - return p; - })); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/grid/tile.hpp b/python/src/grid/tile.hpp deleted file mode 100644 index 99155439..00000000 --- a/python/src/grid/tile.hpp +++ /dev/null @@ -1,50 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace grid { - -namespace py = pybind11; - -template -void add_tile(py::module_& m) { - using tile_t = TileType; - using value_t = typename tile_t::value_t; - py::class_(m, "Tile") - .def(py::init>, - const Eigen::Ref>>(), - py::arg("center"), - py::arg("radius")) - .def(py::pickle( - [](const tile_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.vertices__()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 1) { - throw std::runtime_error("Invalid state!"); - } - - using v_t = - std::decay_t().vertices__())>; - - auto&& vertices = t[0].cast(); - - // NOTE: for now, it's ok to set these as nullptrs. - // The only time this gets pickled is when GridRange gets - // pickled. - Eigen::Map> center(nullptr, 0); - Eigen::Map> radius(nullptr, 0); - - /* Create a new C++ instance */ - tile_t p(center, radius); - p.vertices__() = vertices; - - return p; - })); -} - -} // namespace grid -} // namespace imprint diff --git a/python/src/model/base.hpp b/python/src/model/base.hpp deleted file mode 100644 index b1bd1aa6..00000000 --- a/python/src/model/base.hpp +++ /dev/null @@ -1,77 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { - -namespace py = pybind11; - -template -struct PySimStateBase : SS { - using base_t = SS; - using typename base_t::uint_t; - using typename base_t::value_t; - - using base_t::base_t; - - void simulate(Eigen::Ref> rej_len) override { - PYBIND11_OVERRIDE_PURE(void, base_t, simulate, rej_len); - } - - void score(size_t gridpt_idx, - Eigen::Ref> out) const override { - PYBIND11_OVERRIDE_PURE(void, base_t, score, gridpt_idx, out); - } -}; - -template -void add_model_base(py::module_& m) { - using mb_t = MB; - using value_t = typename mb_t::value_t; - py::class_(m, "ModelBase") - .def(py::init<>()) - .def(py::init>&>()) - .def("n_models", &mb_t::n_models) - .def("critical_values", py::overload_cast<>(&mb_t::critical_values), - py::return_value_policy::reference_internal) - .def("critical_values", - py::overload_cast<>(&mb_t::critical_values, py::const_), - py::return_value_policy::reference_internal) - .def("critical_values", - py::overload_cast>&>( - &mb_t::critical_values), - py::arg("critical_values")); -} - -template -void add_sim_global_state_base(pybind11::module_& m) { - using sbs_t = SGSB; - py::class_(m, "SimGlobalStateBase") - .def("make_sim_state", &sbs_t::make_sim_state); - ; - - using ss_t = typename sbs_t::sim_state_t; - using py_ss_t = PySimStateBase; - py::class_(m, "SimStateBase") - .def(py::init<>()) - .def("simulate", &ss_t::simulate, py::arg("rejection_length")) - .def("score", &ss_t::score, py::arg("gridpt_idx"), py::arg("output")); -} - -template -void add_imprint_bound_state_base(pybind11::module_& m) { - using kbs_t = KBSB; - py::class_(m, "ImprintBoundStateBase") - .def("apply_eta_jacobian", &kbs_t::apply_eta_jacobian, - py::arg("gridpt_idx"), py::arg("v"), py::arg("output")) - .def("covar_quad", &kbs_t::covar_quadform, py::arg("gridpt_idx"), - py::arg("v")) - .def("hessian_quadform_bound", &kbs_t::hessian_quadform_bound, - py::arg("gridpt_idx"), py::arg("tile_idx"), py::arg("v")) - .def("n_natural_params", &kbs_t::n_natural_params); -} - -} // namespace model -} // namespace imprint diff --git a/python/src/model/binomial/fixed_n_default.hpp b/python/src/model/binomial/fixed_n_default.hpp deleted file mode 100644 index c6c3b2cf..00000000 --- a/python/src/model/binomial/fixed_n_default.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { -namespace binomial { - -namespace py = pybind11; - -template -void add_fixed_n_default(py::module_& m) { - using sgs_t = SGS; - using sgs_base_t = typename sgs_t::base_t; - py::class_(m, "SimGlobalStateFixedNDefault"); - - using ss_t = typename sgs_t::sim_state_t; - using ss_base_t = typename ss_t::base_t; - py::class_(m, "SimStateFixedNDefault"); - - using kbs_t = KBS; - using kbs_base_t = typename kbs_t::base_t; - py::class_(m, "ImprintBoundStateFixedNDefault"); -} - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/python/src/model/binomial/simple_selection.hpp b/python/src/model/binomial/simple_selection.hpp deleted file mode 100644 index 411525d1..00000000 --- a/python/src/model/binomial/simple_selection.hpp +++ /dev/null @@ -1,83 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { -namespace binomial { - -namespace py = pybind11; - -template -void add_simple_selection(py::module_& m) { - using model_t = SSModel; - using arm_base_t = typename model_t::arm_base_t; - using base_t = typename model_t::base_t; - using model_value_t = typename model_t::value_t; - using gen_t = GenType; - using value_t = ValueType; - using uint_t = UIntType; - using gr_t = GridRangeType; - - using sgs_t = typename model_t::template sim_global_state_t; - using kbs_t = typename model_t::template imprint_bound_state_t; - - py::class_(m, "SimpleSelection") - .def(py::init>&>(), - py::arg("n_arms"), py::arg("n_arm_samples"), - py::arg("n_phase2_samples"), py::arg("critical_values")) - // Note that exporting critical_values() - // somehow hides export of base class version. - // This is actually what we want! - .def("critical_values", - (void(model_t::*)( - const Eigen::Ref>&)) & - model_t::critical_values, - py::arg("critical_values")) - .def("critical_values", - static_cast() - .critical_values()) (model_t::*)() const>( - &model_t::critical_values)) - .def("n_phase2_samples", &model_t::n_phase2_samples) - .def("make_sim_global_state", - static_cast( - &model_t::template make_sim_global_state), - py::arg("grid_range")) - .def("make_imprint_bound_state", - static_cast( - &model_t::template make_imprint_bound_state)) - .def(py::pickle( - [](const model_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.critical_values(), p.n_arms(), - p.n_phase2_samples(), p.n_arm_samples()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 4) { - throw std::runtime_error("Invalid state!"); - } - - /* Create a new C++ instance */ - auto&& thresh = t[0].cast().critical_values())>>(); - model_t p(t[1].cast(), t[3].cast(), - t[2].cast(), thresh); - return p; - })); - - using sgs_base_t = typename sgs_t::interface_t; - py::class_(m, "SimpleSelectionSimGlobalState"); - - using ss_t = typename sgs_t::sim_state_t; - using ss_base_t = typename ss_t::base_t; - py::class_(m, "SimpleSelectionSimState"); -} - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/python/src/model/binomial/thompson.hpp b/python/src/model/binomial/thompson.hpp deleted file mode 100644 index 29e60f30..00000000 --- a/python/src/model/binomial/thompson.hpp +++ /dev/null @@ -1,84 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { -namespace binomial { - -namespace py = pybind11; - -template -void add_thompson(py::module_& m) { - using model_t = TModel; - using arm_base_t = typename model_t::arm_base_t; - using base_t = typename model_t::base_t; - using model_value_t = typename model_t::value_t; - using gen_t = GenType; - using value_t = ValueType; - using uint_t = UIntType; - using gr_t = GridRangeType; - - using sgs_t = typename model_t::template sim_global_state_t; - using kbs_t = typename model_t::template imprint_bound_state_t; - - py::class_(m, "Thompson") - .def(py::init>&>(), - py::arg("n_arm_samples"), py::arg("alpha_prior"), - py::arg("beta_prior"), py::arg("p_thresh"), - py::arg("critical_values")) - // Note that exporting critical_values() - // somehow hides export of base class version. - // This is actually what we want! - .def("critical_values", - (void(model_t::*)( - const Eigen::Ref>&)) & - model_t::critical_values, - py::arg("critical_values")) - .def("critical_values", - static_cast() - .critical_values()) (model_t::*)() const>( - &model_t::critical_values)) - .def("make_sim_global_state", - static_cast( - &model_t::template make_sim_global_state), - py::arg("grid_range")) - .def("make_imprint_bound_state", - static_cast( - &model_t::template make_imprint_bound_state)) - .def(py::pickle( - [](const model_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.n_arm_samples(), p.alpha_prior(), - p.beta_prior(), p.p_threshold(), - p.critical_values()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 5) { - throw std::runtime_error("Invalid state!"); - } - - /* Create a new C++ instance */ - auto&& thresh = t[4].cast().critical_values())>>(); - model_t p(t[0].cast(), t[1].cast(), - t[2].cast(), t[3].cast(), thresh); - return p; - })); - - using sgs_base_t = typename sgs_t::interface_t; - py::class_(m, "ThompsonSimGlobalState"); - - using ss_t = typename sgs_t::sim_state_t; - using ss_base_t = typename ss_t::base_t; - py::class_(m, "ThompsonSimState"); -} - -} // namespace binomial -} // namespace model -} // namespace imprint diff --git a/python/src/model/exponential/fixed_n_log_hazard_rate.hpp b/python/src/model/exponential/fixed_n_log_hazard_rate.hpp deleted file mode 100644 index ada2fa14..00000000 --- a/python/src/model/exponential/fixed_n_log_hazard_rate.hpp +++ /dev/null @@ -1,29 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { -namespace exponential { - -namespace py = pybind11; - -template -void add_fixed_n_log_hazard_rate(py::module_& m) { - using sgs_t = SGS; - using sgs_base_t = typename sgs_t::base_t; - py::class_(m, "SimGlobalStateFixedNLogHazardRate"); - - using ss_t = typename sgs_t::sim_state_t; - using ss_base_t = typename ss_t::base_t; - py::class_(m, "SimStateFixedNLogHazardRate"); - - using kbs_t = KBS; - using kbs_base_t = typename kbs_t::base_t; - py::class_(m, "ImprintBoundStateFixedNLogHazardRate"); -} - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/python/src/model/exponential/simple_log_rank.hpp b/python/src/model/exponential/simple_log_rank.hpp deleted file mode 100644 index 8ce3bcb3..00000000 --- a/python/src/model/exponential/simple_log_rank.hpp +++ /dev/null @@ -1,79 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { -namespace exponential { - -namespace py = pybind11; - -template -void add_simple_log_rank(py::module_& m) { - using model_t = SLR; - using gen_t = GenType; - using value_t = ValueType; - using uint_t = UIntType; - using gr_t = GridRangeType; - - using arm_base_t = typename model_t::arm_base_t; - using mb_t = typename model_t::base_t; - using model_value_t = typename model_t::value_t; - - using sgs_t = typename model_t::template sim_global_state_t; - using kbs_t = typename model_t::template imprint_bound_state_t; - - py::class_(m, "SimpleLogRank") - .def(py::init>&>(), - py::arg("n_arm_samples"), py::arg("censor_time"), - py::arg("critical_values")) - .def("censor_time", &model_t::censor_time) - .def("critical_values", - (void(model_t::*)( - const Eigen::Ref>&)) & - model_t::critical_values, - py::arg("critical_values")) - .def("critical_values", - static_cast() - .critical_values()) (model_t::*)() const>( - &model_t::critical_values)) - .def("make_sim_global_state", - static_cast( - &model_t::template make_sim_global_state), - py::arg("grid_range")) - .def("make_imprint_bound_state", - static_cast( - &model_t::template make_imprint_bound_state)) - .def(py::pickle( - [](const model_t& p) { // __getstate__ - /* Return a tuple that fully encodes the state of the object */ - return py::make_tuple(p.n_arm_samples(), p.censor_time(), - p.critical_values()); - }, - [](py::tuple t) { // __setstate__ - if (t.size() != 3) { - throw std::runtime_error("Invalid state!"); - } - - /* Create a new C++ instance */ - model_t p(t[0].cast(), t[1].cast(), - t[2].cast>>()); - return p; - })); - - using sgs_base_t = typename sgs_t::base_t; - py::class_(m, "SimpleLogRankSimGlobalState"); - - using ss_t = typename sgs_t::sim_state_t; - using ss_base_t = typename ss_t::base_t; - py::class_(m, "SimpleLogRankSimState"); -} - -} // namespace exponential -} // namespace model -} // namespace imprint diff --git a/python/src/model/fixed_single_arm_size.hpp b/python/src/model/fixed_single_arm_size.hpp deleted file mode 100644 index b5f8adad..00000000 --- a/python/src/model/fixed_single_arm_size.hpp +++ /dev/null @@ -1,20 +0,0 @@ -#pragma once -#include - -#include - -namespace imprint { -namespace model { - -namespace py = pybind11; - -template -void add_fixed_single_arm_size(py::module_& m) { - using base_t = FSAS; - py::class_(m, "FixedSingleArmSize") - .def("n_arms", &base_t::n_arms) - .def("n_arm_samples", &base_t::n_arm_samples); -} - -} // namespace model -} // namespace imprint diff --git a/python/src/model/model.cpp b/python/src/model/model.cpp deleted file mode 100644 index 7e615b15..00000000 --- a/python/src/model/model.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace imprint { -namespace model { - -namespace py = pybind11; - -using value_t = py_double_t; -using uint_t = py_uint_t; -using gen_t = std::mt19937; -using tile_t = grid::Tile; -using gr_t = grid::GridRange; - -/* - * Adds binomial models. - */ -void add_binomial_to_module(py::module_& m) { - using namespace binomial; - - using sgs_fixed_n_default_t = - SimGlobalStateFixedNDefault; - using kbs_fixed_n_default_t = ImprintBoundStateFixedNDefault; - - add_fixed_n_default(m); - - using simple_selection_t = SimpleSelection; - add_simple_selection(m); - - using thompson_t = Thompson; - add_thompson(m); -} - -/* - * Adds exponential models. - */ -void add_exponential_to_module(py::module_& m) { - using namespace exponential; - using sgs_fixed_n_log_hazard_rate_t = - SimGlobalStateFixedNLogHazardRate; - using kbs_fixed_n_log_hazard_rate_t = - ImprintBoundStateFixedNLogHazardRate; - using simple_log_rank_t = exponential::SimpleLogRank; - - add_fixed_n_log_hazard_rate(m); - - add_simple_log_rank(m); -} - -/* - * Function to add all model classes into module m. - * Populate this function as more models are exported. - */ -void add_to_module(py::module_& m) { - using mb_t = ModelBase; - using sgs_t = SimGlobalStateBase; - using kbs_t = ImprintBoundStateBase; - - add_model_base(m); - add_sim_global_state_base(m); - add_imprint_bound_state_base(m); - - using fsas_t = FixedSingleArmSize; - add_fixed_single_arm_size(m); - - py::module_ binom_m = - m.def_submodule("binomial", "Binomial model submodule."); - add_binomial_to_module(binom_m); - - py::module_ exp_m = - m.def_submodule("exponential", "Exponential model submodule."); - add_exponential_to_module(exp_m); -} - -} // namespace model -} // namespace imprint diff --git a/python/src/model/model.hpp b/python/src/model/model.hpp deleted file mode 100644 index c907ab57..00000000 --- a/python/src/model/model.hpp +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once -#include - -namespace imprint { -namespace model { - -void add_to_module(pybind11::module_&); - -} // namespace model -} // namespace imprint diff --git a/python/test/BUILD.bazel b/python/test/BUILD.bazel deleted file mode 100644 index 37cede96..00000000 --- a/python/test/BUILD.bazel +++ /dev/null @@ -1,26 +0,0 @@ -load("@pybind11_bazel//:build_defs.bzl", "pybind_extension") - -pybind_extension( - name = "core_test", - srcs = glob([ - "src/**/*cpp", - "src/**/*hpp", - ]), - includes = ["src/"], - deps = ["//imprint", "//python:pyimprint_headers"], - visibility = ["//visibility:public"], -) - -[py_test( - name = name, - srcs = ["{}_main.py".format(name)], - data = ["//python:pyimprint/core.so", ":core_test.so"], - deps = [ - "//python:pyimprint_lib", - ], - imports = ["."], - main = "{}_main.py".format(name), -) for name in [ - "core", - "model", -]] diff --git a/python/test/core/__init__.py b/python/test/core/__init__.py deleted file mode 100644 index e95e33f0..00000000 --- a/python/test/core/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -from core.grid import * -from core.model import * diff --git a/python/test/core/grid/__init__.py b/python/test/core/grid/__init__.py deleted file mode 100644 index 9e306455..00000000 --- a/python/test/core/grid/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from core.grid.grid_range_unittest import * diff --git a/python/test/core/grid/grid_range_unittest.py b/python/test/core/grid/grid_range_unittest.py deleted file mode 100644 index b19d9c99..00000000 --- a/python/test/core/grid/grid_range_unittest.py +++ /dev/null @@ -1,21 +0,0 @@ -import unittest - -import numpy as np -from pyimprint.core.grid import GridRange - - -class TestGridRange(unittest.TestCase): - def test_constructor(self): - gr = GridRange(2, 3) - self.assertEqual(gr.n_params(), 2) - self.assertEqual(gr.n_gridpts(), 3) - self.assertEqual(gr.n_tiles(), 0) - - def test_constructor_sugar(self): - thetas = np.zeros((3, 2)) - radii = np.ones(thetas.shape) - sim_sizes = 100 * np.ones(thetas.shape[1]) - gr = GridRange(thetas, radii, sim_sizes) - self.assertTrue((thetas == gr.thetas()).all()) - self.assertTrue((radii == gr.radii()).all()) - self.assertTrue((sim_sizes == gr.sim_sizes()).all()) diff --git a/python/test/core/model/__init__.py b/python/test/core/model/__init__.py deleted file mode 100644 index 2867ed1c..00000000 --- a/python/test/core/model/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -from core.model.base_unittest import * -from core.model.binomial import * -from core.model.exponential import * diff --git a/python/test/core/model/base_unittest.py b/python/test/core/model/base_unittest.py deleted file mode 100644 index d9087654..00000000 --- a/python/test/core/model/base_unittest.py +++ /dev/null @@ -1,38 +0,0 @@ -import unittest - -from core_test.model import test_py_ss_score -from core_test.model import test_py_ss_simulate -from pyimprint.core.model import SimStateBase - - -class PySS(SimStateBase): - def __init__(self, seed): - SimStateBase.__init__(self) - - def simulate(self, rej_len): - rej_len[...] = 3 - - def score(self, gridpt_idx, out): - out[...] = 2.1 - - -class PySGS: - def make_sim_state(self, seed): - return PySS(seed) - - -class TestBase(unittest.TestCase): - def make_py_sgs(self): - return PySGS() - - def test_py_ss_simulate(self): - sgs = self.make_py_sgs() - ss = sgs.make_sim_state(0) - rej_len = test_py_ss_simulate(ss) - self.assertTrue((rej_len == 3).all()) - - def test_py_ss_score(self): - sgs = self.make_py_sgs() - ss = sgs.make_sim_state(0) - out = test_py_ss_score(ss) - self.assertTrue((out == 2.1).all()) diff --git a/python/test/core/model/binomial/__init__.py b/python/test/core/model/binomial/__init__.py deleted file mode 100644 index d768e56c..00000000 --- a/python/test/core/model/binomial/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from core.model.binomial.simple_selection_unittest import * diff --git a/python/test/core/model/binomial/simple_selection_unittest.py b/python/test/core/model/binomial/simple_selection_unittest.py deleted file mode 100644 index 17cfae65..00000000 --- a/python/test/core/model/binomial/simple_selection_unittest.py +++ /dev/null @@ -1,50 +0,0 @@ -import unittest - -import numpy as np -import pyimprint.core.grid as grid -import pyimprint.core.model.binomial as binom - - -class TestSimpleSelection(unittest.TestCase): - def make_model(self, n_arms, n_arm_samples, n_phase2_samples, critical_values): - return binom.SimpleSelection( - n_arms=n_arms, - n_arm_samples=n_arm_samples, - n_phase2_samples=n_phase2_samples, - critical_values=critical_values, - ) - - def make_grid_range(self, n_params, n_gridpts): - return grid.GridRange(n_params, n_gridpts) - - def test_constructor(self): - self.make_model(3, 10, 5, [3]) - - def test_n_arms(self): - m = self.make_model(3, 10, 5, [3]) - self.assertEqual(m.n_arms(), 3) - - def test_n_arm_samples(self): - m = self.make_model(3, 10, 5, [3]) - self.assertEqual(m.n_arm_samples(), 10) - - def test_n_phase2_samples(self): - m = self.make_model(3, 10, 5, [3]) - self.assertEqual(m.n_phase2_samples(), 5) - - def test_critical_values(self): - m = self.make_model(3, 10, 5, [3]) - self.assertTrue((m.critical_values() == np.array([3])).all()) - - m.critical_values([2, 5]) - self.assertTrue((m.critical_values() == np.array([5, 2])).all()) - - def test_make_state(self): - m = self.make_model(3, 10, 5, [3]) - - # the following just needs to run without error - gr = self.make_grid_range(3, 5) - sgs = m.make_sim_global_state(gr) - sgs.make_sim_state(0) - - m.make_imprint_bound_state(gr) diff --git a/python/test/core/model/exponential/__init__.py b/python/test/core/model/exponential/__init__.py deleted file mode 100644 index 9bd4ec26..00000000 --- a/python/test/core/model/exponential/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from core.model.exponential.simple_log_rank_unittest import * diff --git a/python/test/core/model/exponential/simple_log_rank_unittest.py b/python/test/core/model/exponential/simple_log_rank_unittest.py deleted file mode 100644 index 30b92892..00000000 --- a/python/test/core/model/exponential/simple_log_rank_unittest.py +++ /dev/null @@ -1,44 +0,0 @@ -import unittest - -import numpy as np -import pyimprint.core.grid as grid -from pyimprint.core.model.exponential import SimpleLogRank - - -class TestSimpleLogRank(unittest.TestCase): - def make_model(self, n_arm_samples, censor_time, critical_values): - return SimpleLogRank( - n_arm_samples=n_arm_samples, - censor_time=censor_time, - critical_values=critical_values, - ) - - def make_grid_range(self, n_params, n_gridpts): - return grid.GridRange(n_params, n_gridpts) - - def test_constructor(self): - self.make_model(10, 2, [3]) - - def test_n_arm_samples(self): - m = self.make_model(10, 2, [3]) - self.assertEqual(m.n_arm_samples(), 10) - - def test_censor_time(self): - m = self.make_model(10, 2, [3]) - self.assertEqual(m.censor_time(), 2) - - def test_critical_values(self): - m = self.make_model(10, 2, [3]) - self.assertTrue((m.critical_values() == np.array([3])).all()) - m.critical_values(np.array([2, 5])) - self.assertTrue((m.critical_values() == np.array([5, 2])).all()) - - def test_make_state(self): - m = self.make_model(10, 2, [3]) - - # the following just needs to run without error - gr = self.make_grid_range(3, 5) - sgs = m.make_sim_global_state(gr) - sgs.make_sim_state(0) - - m.make_imprint_bound_state(gr) diff --git a/python/test/core_main.py b/python/test/core_main.py deleted file mode 100644 index 9de6e3bf..00000000 --- a/python/test/core_main.py +++ /dev/null @@ -1,6 +0,0 @@ -import unittest - -from core import * # noqa: F403, F401 - -if __name__ == "__main__": - unittest.main() diff --git a/python/test/model/__init__.py b/python/test/model/__init__.py deleted file mode 100644 index df1d7f6c..00000000 --- a/python/test/model/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from model.normal import * diff --git a/python/test/model/normal/__init__.py b/python/test/model/normal/__init__.py deleted file mode 100644 index ec6afde9..00000000 --- a/python/test/model/normal/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from model.normal.simple_unittest import * diff --git a/python/test/model/normal/simple_unittest.py b/python/test/model/normal/simple_unittest.py deleted file mode 100644 index dbdf080d..00000000 --- a/python/test/model/normal/simple_unittest.py +++ /dev/null @@ -1,59 +0,0 @@ -import unittest - -import numpy as np -from pyimprint.driver import accumulate_process -from pyimprint.grid import Gridder -from pyimprint.grid import GridRange -from pyimprint.model.normal import Simple - - -class TestSimple(unittest.TestCase): - def make_model(self, cvs): - return Simple(cvs) - - def make_grid_range(self, n, lower, upper): - thetas = Gridder.make_grid(n, lower, upper).reshape((1, n)) - radii = Gridder.radius(n, lower, upper) * np.ones((1, n)) - sim_sizes = 10 * np.ones(n, dtype=np.uint32) - gr = GridRange(thetas, radii, sim_sizes, []) - return gr - - def test_make_model(self): - model = self.make_model([1.96]) - self.assertTrue(model.critical_values()[0] == 1.96) - - def test_make_sim_global_state(self): - model = self.make_model([1.96]) - gr = self.make_grid_range(10, -3, 0) - sgs = model.make_sim_global_state(gr) - assert sgs - - def test_ss_simulate(self): - from core_test.model import test_py_ss_simulate - - model = self.make_model([1.96]) - gr = self.make_grid_range(10, -3, 0) - sgs = model.make_sim_global_state(gr) - ss = sgs.make_sim_state(0) - out = test_py_ss_simulate(ss) - self.assertTrue((out == 0).all()) - - def test_ss_score(self): - from core_test.model import test_py_ss_score - - model = self.make_model([1.96]) - gr = self.make_grid_range(10, -3, 0) - sgs = model.make_sim_global_state(gr) - ss = sgs.make_sim_state(0) - out = test_py_ss_score(ss) - self.assertTrue((out == 0).all()) - - def test_example(self): - lower = -3.0 - upper = 1.4 - cv = 1.96 - model = self.make_model([upper + cv]) - gr = self.make_grid_range(10, lower, upper) - sim_size = int(1e3) - acc_o = accumulate_process(model, gr, sim_size=sim_size, base_seed=0) - print(acc_o.typeI_sum() / sim_size) diff --git a/python/test/model_main.py b/python/test/model_main.py deleted file mode 100644 index b6228b70..00000000 --- a/python/test/model_main.py +++ /dev/null @@ -1,6 +0,0 @@ -import unittest - -from model import * # noqa: F403, F401 - -if __name__ == "__main__": - unittest.main() diff --git a/python/test/src/core_test.cpp b/python/test/src/core_test.cpp deleted file mode 100644 index d97ebc39..00000000 --- a/python/test/src/core_test.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include -#include -#include - -#include -#include -#include - -namespace py = pybind11; - -using value_t = imprint::py_double_t; -using uint_t = imprint::py_uint_t; - -void add_model_to_module(py::module_& m) { - using namespace imprint::model; - using sgs_t = SimGlobalStateBase; - add_base_tests(m); -} - -PYBIND11_MODULE(core_test, m) { - py::module_ model_m = m.def_submodule("model", "Model test submodule."); - add_model_to_module(model_m); -} diff --git a/python/test/src/model.hpp b/python/test/src/model.hpp deleted file mode 100644 index 016689d3..00000000 --- a/python/test/src/model.hpp +++ /dev/null @@ -1,33 +0,0 @@ -#pragma once -#include - -#include -#include -#include - -namespace imprint { -namespace model { - -namespace py = pybind11; - -template -void add_base_tests(py::module_& m) { - using sbs_t = SGSB; - using ss_t = typename sbs_t::sim_state_t; - - m.def("test_py_ss_simulate", [](ss_t& s) { - using uint_t = typename sbs_t::uint_t; - colvec_type rej_len(10); - s.simulate(rej_len); - return rej_len; - }); - m.def("test_py_ss_score", [](const ss_t& s) { - using value_t = typename sbs_t::value_t; - colvec_type score(3); - s.score(0, score); - return score; - }); -} - -} // namespace model -} // namespace imprint diff --git a/python/test/test_imprint.py b/python/test/test_imprint.py deleted file mode 100644 index 65de24b9..00000000 --- a/python/test/test_imprint.py +++ /dev/null @@ -1,2 +0,0 @@ -def test_one(): - pass diff --git a/research/berry/binomial.py b/research/berry/binomial.py deleted file mode 100644 index be2bcdce..00000000 --- a/research/berry/binomial.py +++ /dev/null @@ -1,214 +0,0 @@ -import jax.numpy as jnp -import jax.scipy.special -import numpy as np -import scipy.special -import scipy.stats - - -def binomial_accumulator(rejection_fnc): - """ - A simple re-implementation of accumulation. This is useful for distilling - what is happening during accumulation down to a simple linear sequence of - operations. Retaining this could be useful for tutorials or conceptual - introductions to Imprint since we can explain this code without introducing - most of the framework. - - NOTE: to implement the early stopping procedure from Berry, we will need to - change all the steps. This function is only valid for a trial with a single - final analysis. - - theta_tiles: (n_tiles, n_arms), the logit-space parameters for each tile. - is_null_per_arm: (n_tiles, n_arms), whether each arm's parameter is within - the null space. - uniform_samples: (sim_size, n_arm_samples, n_arms), uniform [0, 1] samples - used to evaluate binomial count samples. - """ - - # We wrap and return this function since rejection_fnc needs to be known at - # jit time. - @jax.jit - def fnc(theta_tiles, is_null_per_arm, uniform_samples): - sim_size, n_arm_samples, n_arms = uniform_samples.shape - - # 1. Calculate the binomial count data. - # The sufficient statistic for binomial is just the number of uniform draws - # above the threshold probability. But the `p_tiles` array has shape (n_tiles, - # n_arms). So, we add empty dimensions to broadcast and then sum across - # n_arm_samples to produce an output `y` array of shape: (n_tiles, - # sim_size, n_arms) - - p_tiles = jax.scipy.special.expit(theta_tiles) - y = jnp.sum(uniform_samples[None] < p_tiles[:, None, None, :], axis=2) - - # 2. Determine if we rejected each simulated sample. - # rejection_fnc expects inputs of shape (n, n_arms) so we must flatten - # our 3D arrays. We reshape exceedance afterwards to bring it back to 3D - # (n_tiles, sim_size, n_arms) - y_flat = y.reshape((-1, n_arms)) - n_flat = jnp.full_like(y_flat, n_arm_samples) - data = jnp.stack((y_flat, n_flat), axis=-1) - did_reject = rejection_fnc(data).reshape(y.shape) - - # 3. Determine type I family wise error rate. - # a. type I is only possible when the null hypothesis is true. - # b. check all null hypotheses. - # c. sum across all the simulations. - false_reject = ( - did_reject - & is_null_per_arm[ - :, - None, - ] - ) - any_rejection = jnp.any(false_reject, axis=-1) - typeI_sum = any_rejection.sum(axis=-1) - - # 4. Calculate score. The score function is the primary component of the - # gradient used in the bound: - # a. for binomial, it's just: y - n * p - # b. only summed when there is a rejection in the given simulation - score = y - n_arm_samples * p_tiles[:, None, :] - typeI_score = jnp.sum(any_rejection[:, :, None] * score, axis=1) - - return typeI_sum, typeI_score - - return fnc - - -def build_rejection_table(n_arms, n_arm_samples, rejection_fnc): - """ - The Berry model generally deals with n_arm_samples <= 35. This means it is - tractable to pre-calculate whether each dataset will reject the null because - 35^4 is a fairly manageable number. We can actually reduce the number of - calculations because the arms are symmetric and we can run only for sorted - datasets and then extrapolate to unsorted datasets. - """ - - # 1. Construct the n_arms-dimensional grid. - ys = np.arange(n_arm_samples + 1) - Ygrids = np.stack(np.meshgrid(*[ys] * n_arms, indexing="ij"), axis=-1) - Yravel = Ygrids.reshape((-1, n_arms)) - - # 2. Sort the grid arms while tracking the sorting order so that we can - # unsort later. - colsortidx = np.argsort(Yravel, axis=-1) - inverse_colsortidx = np.zeros(Yravel.shape, dtype=np.int32) - axis0 = np.arange(Yravel.shape[0])[:, None] - inverse_colsortidx[axis0, colsortidx] = np.arange(n_arms) - Y_colsorted = Yravel[axis0, colsortidx] - - # 3. Identify the unique datasets. In a 35^4 grid, this will be about 80k - # datasets instead of 1.7m. - Y_unique, inverse_unique = np.unique(Y_colsorted, axis=0, return_inverse=True) - - # 4. Compute the rejections for each unique dataset. - N = np.full_like(Y_unique, n_arm_samples) - data = np.stack((Y_unique, N), axis=-1) - reject_unique = rejection_fnc(data) - - # 5. Invert the unique and the sort operations so that we know the rejection - # value for every possible dataset. - reject = reject_unique[inverse_unique][axis0, inverse_colsortidx] - return reject - - -@jax.jit -def lookup_rejection(table, y, n_arm_samples=35): - """ - Convert the y tuple datasets into indices and lookup from the table - constructed by `build_rejection_table`. - - This assumes n_arm_samples is constant across arms. - """ - n_arms = y.shape[-1] - # Compute the strided array access. For example in 3D for y = [4,8,3], and - # n_arm_samples=35, we'd have: - # y_index = 4 * (36 ** 2) + 8 * (36 ** 1) + 3 * (36 ** 0) - # = 4 * (36 ** 2) + 8 * 36 + 3 - y_index = (y * ((n_arm_samples + 1) ** jnp.arange(n_arms)[::-1])[None, :]).sum( - axis=-1 - ) - return table[y_index, :] - - -def upper_bound( - theta_tiles, - tile_radii, - corners, - sim_sizes, - n_arm_samples, - typeI_sum, - typeI_score, - delta=0.025, - delta_prop_0to1=0.5, -): - """ - Compute the Imprint upper bound after simulations have been run. - """ - p_tiles = scipy.special.expit(theta_tiles) - v_diff = corners - theta_tiles[:, None] - v_sq = v_diff**2 - - # - # Step 1. 0th order terms. - # - # monte carlo estimate of type I error at each theta. - d0 = typeI_sum / sim_sizes - # clopper-pearson upper bound in beta form. - d0u_factor = 1.0 - delta * delta_prop_0to1 - d0u = scipy.stats.beta.ppf(d0u_factor, typeI_sum + 1, sim_sizes - typeI_sum) - d0 - # If typeI_sum == sim_sizes, scipy.stats outputs nan. Output 0 instead - # because there is no way to go higher than 1.0 - d0u = np.where(np.isnan(d0u), 0, d0u) - - # - # Step 2. 1st order terms. - # - # Monte carlo estimate of gradient of type I error at the grid points - # then dot product with the vector from the center to the corner. - d1 = ((typeI_score / sim_sizes[:, None])[:, None] * v_diff).sum(axis=-1) - d1u_factor = np.sqrt(1 / ((1 - delta_prop_0to1) * delta) - 1.0) - covar_quadform = ( - n_arm_samples * v_sq * p_tiles[:, None] * (1 - p_tiles[:, None]) - ).sum(axis=-1) - # Upper bound on d1! - d1u = np.sqrt(covar_quadform) * (d1u_factor / np.sqrt(sim_sizes)[:, None]) - - # - # Step 3. 2nd order terms. - # - n_corners = corners.shape[1] - - p_lower = np.tile( - scipy.special.expit(theta_tiles - tile_radii)[:, None], (1, n_corners, 1) - ) - p_upper = np.tile( - scipy.special.expit(theta_tiles + tile_radii)[:, None], (1, n_corners, 1) - ) - - special = (p_lower <= 0.5) & (0.5 <= p_upper) - max_p = np.where(np.abs(p_upper - 0.5) < np.abs(p_lower - 0.5), p_upper, p_lower) - hess_comp = np.where(special, 0.25 * v_sq, (max_p * (1 - max_p) * v_sq)) - - hessian_quadform_bound = hess_comp.sum(axis=-1) * n_arm_samples - d2u = 0.5 * hessian_quadform_bound - - # - # Step 4. Identify the corners with the highest upper bound. - # - - # The total of the bound component that varies between corners. - total_var = d1u + d2u + d1 - total_var = np.where(np.isnan(total_var), 0, total_var) - worst_corner = total_var.argmax(axis=1) - ti = np.arange(d1.shape[0]) - d1w = d1[ti, worst_corner] - d1uw = d1u[ti, worst_corner] - d2uw = d2u[ti, worst_corner] - - # - # Step 5. Compute the total bound and return it - # - total_bound = d0 + d0u + d1w + d1uw + d2uw - - return total_bound, d0, d0u, d1w, d1uw, d2uw diff --git a/research/berry/grid.py b/research/berry/grid.py deleted file mode 100644 index de3bb8ed..00000000 --- a/research/berry/grid.py +++ /dev/null @@ -1,349 +0,0 @@ -import warnings -from dataclasses import dataclass -from itertools import product -from typing import List - -import numpy as np - - -def make_cartesian_gridpts(n_theta_1d, lower, upper): - n_arms = lower.shape[0] - theta1d = [ - np.linspace(lower[i], upper[i], 2 * n_theta_1d + 1)[1::2] for i in range(n_arms) - ] - theta = np.stack(np.meshgrid(*theta1d), axis=-1).reshape((-1, len(theta1d))) - radii = np.empty(theta.shape) - for i in range(theta.shape[1]): - radii[:, i] = 0.5 * (theta1d[i][1] - theta1d[i][0]) - return theta, radii - - -@dataclass -class HyperPlane: - """A plane defined by: - x \cdot n + c = 0 - """ - - n: np.ndarray - c: float - - -@dataclass -class Grid: - """ - The first two arrays define the grid points/cells: - - thetas: the center of each hyperrectangle. - - radii: the half-width of each hyperrectangle in each dimension. - (NOTE: we could rename this since it's sort of a lie.) - - The next four arrays define the tiles: - - vertices contains the vertices of each tiles. After splitting, tiles - may have differing numbers of vertices. The vertices array will be - shaped: (n_tiles, max_n_vertices, n_params). For tiles that have fewer - than max_n_vertices, the unused entries will be filled with nans. - - grid_pt_idx is an array with an entry for each tile that contains to - index of the original grid point from which that tile was created - - is_regular indicates whether each tile has ever been split. Tiles that - have been split are considered "irregular" and tiles that have never been - split are considered "regular". - - null_truth indicates the truth of each null hypothesis for each tile. - """ - - thetas: np.ndarray - radii: np.ndarray - vertices: np.ndarray - is_regular: np.ndarray - null_truth: np.ndarray - grid_pt_idx: np.ndarray - - @property - def n_tiles(self): - return self.vertices.shape[0] - - @property - def n_grid_pts(self): - return self.thetas.shape[0] - - def n_tiles_per_pt(self): - _, out = np.unique(self.grid_pt_idx, return_counts=True) - return out - - -def build_grid( - thetas: np.ndarray, radii: np.ndarray, null_hypos: List[HyperPlane], debug=False -): - """ - Construct a Imprint grid from a set of grid point centers, radii and null - hypothesis. - 1. Initially, we construct simple hyperrectangle cells. - 2. Then, we split cells that are intersected by the null hypothesis boundaries. - - Note that we do not split cells twice. This is a simplification that makes - the software much simpler and probably doesn't cost us much in terms of - bound tightness because very few cells are intersected by multiple - hyperplanes. - - Parameters - ---------- - thetas - The centers of the hyperrectangle grid. - radii - The half-width of each hyperrectangle in each dimension. - null_hypos - A list of hyperplanes defining the boundary of the null hypothesis. The - normal vector of these hyperplanes point into the null domain. - - - Returns - ------- - a Grid object - """ - n_grid_pts, n_params = thetas.shape - - # For splitting cells, we will need to know the nD edges of each cell and - # the vertices of each tile. - edges = get_edges(thetas, radii) - unit_vs = hypercube_vertices(n_params) - tile_vs = thetas[:, None, :] + (unit_vs[None, :, :] * radii[:, None, :]) - - # Keep track of the various tile properties. See the Grid class docstring - # for definitions. - grid_pt_idx = np.arange(n_grid_pts) - is_regular = np.ones(n_grid_pts, dtype=bool) - null_truth = np.full((n_grid_pts, len(null_hypos)), -1) - eps = 1e-15 - - history = [] - for iH, H in enumerate(null_hypos): - max_v_count = tile_vs.shape[1] - - # Measure the distance of each vertex from the null hypo boundary - # 0 means alt true, 1 means null true - # it's important to allow nan dist because some tiles may not have - # every vertex slot filled. unused vertex slots will contain nans. - dist = tile_vs.dot(H.n) - H.c - is_null = ((dist >= 0) | np.isnan(dist)).all(axis=1) - null_truth[is_null, iH] = 1 - null_truth[~is_null, iH] = 0 - - # Identify the tiles to be split. Give some floating point slack around - # zero so we don't suffer from imprecision. - to_split = ~( - ((dist >= -eps) | np.isnan(dist)).all(axis=1) - | ((dist <= eps) | np.isnan(dist)).all(axis=1) - ) - - # Track which tile indices will be split or copied. - # Tiles that have already been split ("irregular tiles") are not split, - # just copied. This is just a simplification that makes the software - # much simpler - split_or_copy_idxs = np.where(to_split)[0] - split_idxs = np.where(to_split & is_regular)[0] - - # Intersect every tile edge with the hyperplane to find the new vertices. - split_edges = edges[grid_pt_idx[split_idxs]] - # The first n_params columns of split_edges are the vertices from which - # the edge originates and the second n_params are the edge vector. - split_vs = split_edges[..., :n_params] - split_dir = split_edges[..., n_params:] - with warnings.catch_warnings(): - warnings.simplefilter("ignore") - # Intersect each edge with the plane. - alpha = (H.c - split_vs.dot(H.n)) / (split_dir.dot(H.n)) - # Now we need to identify the new tile vertices. We have three - # possible cases here: - # 1. Intersection: indicated by 0 < alpha < 1. We give a little - # eps slack to ignore intersections for null planes that just barely - # touch a corner of a tile. In this case, we - # 2. Non-intersection indicated by alpha not in [0, 1]. In this - # case, the new vertex will just be marked nan to be filtered out - # later. - # 3. Non-finite alpha which also indicates no intersection. Again, - # we produced a nan vertex to filter out later. - new_vs = split_vs + alpha[:, :, None] * split_dir - new_vs = np.where( - (np.isfinite(new_vs)) & ((alpha > eps) & (alpha < 1 - eps))[..., None], - new_vs, - np.nan, - ) - - # Create the array for the new vertices. We expand the original tile_vs - # array in both dimensions: - # 1. We create a new row for each tile that is being split using np.repeat. - # 2. We create a new column for each potential additional vertex from - # the intersection operation above using np.concatenate. This is far - # more new vertices than necessary, but facilitates a nice vectorized - # implementation.. We will just filter out the unnecessary slots later. - # (note: to_split + 1 will be 1 for each unsplit tile and 2 for each - # split tile, so this np.repeat will duplicated rows that are - # being split) - new_tile_vs = np.repeat(tile_vs, to_split + 1, axis=0) - new_tile_vs = np.concatenate( - ( - new_tile_vs, - np.full((new_tile_vs.shape[0], edges.shape[1], n_params), np.nan), - ), - axis=1, - ) - - # For each split tile, we need the indices of the tiles *after* the - # creation of the new array. This will be the existing index plus the - # count of lower-index split tiles. - new_split_or_copy_idxs = split_or_copy_idxs + np.arange( - split_or_copy_idxs.shape[0] - ) - is_regular = np.repeat(is_regular, to_split + 1) - new_split_idxs = new_split_or_copy_idxs[is_regular[new_split_or_copy_idxs]] - # Update the is_regular array: - # - split tiles are marked irregular. - is_regular[new_split_or_copy_idxs] = False - is_regular[new_split_or_copy_idxs + 1] = False - np.testing.assert_allclose( - new_tile_vs[new_split_idxs, :max_v_count], tile_vs[split_idxs] - ) - - # For each original tile vertex, we need to determine whether the tile - # lies in the new null tile or the new alt tile. - include_in_null_tile = dist[split_idxs] >= -eps - include_in_alt_tile = dist[split_idxs] <= eps - - # Since we copied the entire tiles, we can "delete" vertices by multiply by nan - # note: new_split_idxs marks the index of the new null tile - # new_split_idxs + 1 marks the index of the new alt tile - new_tile_vs[new_split_idxs, :max_v_count] *= np.where( - include_in_null_tile, 1, np.nan - )[..., None] - new_tile_vs[new_split_idxs + 1, :max_v_count] *= np.where( - include_in_alt_tile, 1, np.nan - )[..., None] - # The intersection vertices get added to both new tiles. - new_tile_vs[new_split_idxs, max_v_count:] = new_vs - new_tile_vs[new_split_idxs + 1, max_v_count:] = new_vs - - # Trim the new tile array: - # We now are left with an array of tile vertices that has many more - # vertex slots per tile than necessary with the unused slots filled - # with nan. - # To deal with this: - # 1. We sort along the vertices axis. This has the effect of - # moving all the nan vertices to the end of the list. - new_tile_vs.sort(axis=1) - # 2. Identify the maximum number of vertices of any tile and trim the - # array so that is the new vertex dimension size - finite_corners = (~np.isfinite(new_tile_vs)).all(axis=(0, 2)) - if finite_corners[-1]: - first_all_nan_corner = finite_corners.argmax() - new_tile_vs = new_tile_vs[:, :first_all_nan_corner] - - # For debugging purposes, it can be helpful to track the parent tile - # index of each new tile. - if debug: - parents = np.repeat(np.arange(tile_vs.shape[0]), to_split + 1) - - # Hurray, we made it! Replace the tile array! - tile_vs = new_tile_vs - - # Update the remaining tile characteristics. - # - the two sides of a split tile have their null hypo truth indicators updated. - null_truth = np.repeat(null_truth, to_split + 1, axis=0) - null_truth[new_split_or_copy_idxs, iH] = 1 - null_truth[new_split_or_copy_idxs + 1, iH] = 0 - # - duplicate the reference to the original grid pt for each split tile. - grid_pt_idx = np.repeat(grid_pt_idx, to_split + 1) - - # Data on the intermediate state of the splitting can be helpful for - # debugging. - if debug: - history.append( - dict( - parents=parents, - split_vs=split_vs, - split_dir=split_dir, - split_idxs=split_idxs, - alpha=alpha, - grid=Grid( - thetas, radii, tile_vs, is_regular, null_truth, grid_pt_idx - ), - ) - ) - - out = Grid(thetas, radii, tile_vs, is_regular, null_truth, grid_pt_idx) - if debug: - return out, history - else: - return out - - -def prune(g): - """Remove tiles that are entirely within the alternative hypothesis space. - - Parameters - ---------- - g - the Grid object - - Returns - ------- - the pruned Grid object. - """ - if g.null_truth.shape[1] == 0: - return g - all_alt = (g.null_truth == 0).all(axis=1) - grid_pt_idx = g.grid_pt_idx[~all_alt] - included_grid_pts, grid_pt_inverse = np.unique(grid_pt_idx, return_inverse=True) - return Grid( - g.thetas[included_grid_pts], - g.radii[included_grid_pts], - g.vertices[~all_alt], - g.is_regular[~all_alt], - g.null_truth[~all_alt], - grid_pt_inverse, - ) - - -# https://stackoverflow.com/a/52229385/ -def hypercube_vertices(d): - """ - The corners of a hypercube of dimension d. - - print(vertices(1)) - >>> [(1,), (-1,)] - - print(vertices(2)) - >>> [(1, 1), (1, -1), (-1, 1), (-1, -1)] - - print(vertices(3)) - >>> [ - (1, 1, 1), (1, 1, -1), (1, -1, 1), (1, -1, -1), - (-1, 1, 1), (-1, 1, -1), (-1, -1, 1), (-1, -1, -1) - ] - """ - return np.array(list(product((1, -1), repeat=d))) - - -def get_edges(thetas, radii): - """ - Construct an array indicating the edges of each hyperrectangle. - - edges[:, :, :n_params] are the vertices at the origin of the edges - - edges[:, :, n_params:] are the edge vectors pointing from the start to - the end of the edge - - In total, the edges array has shape: - (n_grid_pts, number of hypercube vertices, 2*n_params) - """ - - n_params = thetas.shape[1] - unit_vs = hypercube_vertices(n_params) - n_vs = unit_vs.shape[0] - unit_edges = [] - for i in range(n_vs): - for j in range(n_params): - if unit_vs[i, j] > 0: - continue - unit_edges.append(np.concatenate((unit_vs[i], np.identity(n_params)[j]))) - - edges = np.tile(np.array(unit_edges)[None, :, :], (thetas.shape[0], 1, 1)) - edges[:, :, :n_params] *= radii[:, None, :] - edges[:, :, n_params:] *= 2 * radii[:, None, :] - edges[:, :, :n_params] += thetas[:, None, :] - return edges diff --git a/research/berry/tutorial.ipynb b/research/berry/tutorial.ipynb deleted file mode 100644 index d609db05..00000000 --- a/research/berry/tutorial.ipynb +++ /dev/null @@ -1,745 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# An introduction to analyzing trial designs with Imprint." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We're going to analyze a three arm basket trial following the design of [Berry et al. (2013)](https://pubmed.ncbi.nlm.nih.gov/23983156/).\n", - "\n", - "Critically, the log-odds for each arm of the trial are assumed to be drawn from a shared normal distribution. This hierarchical design leads to a sharing effect between the log-odds for the different arms. \n", - "\n", - "\\begin{align}\n", - "\\mathbf{y} &\\sim \\mathrm{Binomial}( \\mathbf{p}, \\mathbf{n})\\\\\n", - "\\mathbf{p} &= \\mathrm{expit}(\\mathbf{\\theta} + logit(\\mathbf{p_1}))\\\\\n", - "\\mathbf{\\theta} &\\sim N(\\mu, \\sigma^2)\\\\\n", - "\\mu &\\sim N(\\mu_0, S^2)\\\\\n", - "\\sigma^2 &\\sim \\mathrm{InvGamma}(0.0005, 0.000005)\\\\\n", - "\\end{align}" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "from scipy.special import logit\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "\n", - "n_arms = 3\n", - "# This is the binomial n parameter, the number of patients recruited to each arm of the trial.\n", - "n_arm_samples = 35" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 1: constructing a parameter grid\n", - "\n", - "We're going to use the `grid.make_cartesian_gridpts` function to produce a 3 dimensional set of points covering $\\theta_i \\in [-3.5, 1.0]$. The points lie at the center of (hyper)rectangular cells. The cells cover the whole box." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "import grid\n", - "\n", - "n_theta_1d = 16\n", - "sim_size = 2000\n", - "theta, radii = grid.make_cartesian_gridpts(\n", - " n_theta_1d, np.full(n_arms, -3.5), np.full(n_arms, 1.0)\n", - ")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we need to define the null hypothesis space. There are built-in tools in imprint for defining a null hypothesis as a domain bounded by planes. In this case, the null hypothesis for each arm is defined by $\\theta_i < \\mathrm{logit}(0.1)$. For $i = 0$, the plane defining this surface is defined by:\n", - "\\begin{align}\n", - "\\mathbf{n} \\cdot \\mathbf{x} = \\mathrm{logit}(0.1)\\\\\n", - "\\mathbf{n} = (1, 0, 0)\n", - "\\end{align}\n", - "However, we use the convention that the normal vector of the plane will point interior to the null hypothesis, so instead we define a plane:\n", - "\\begin{align}\n", - "\\mathbf{n_{interior}} \\cdot \\mathbf{x} = -\\mathrm{logit}(0.1)\\\\\n", - "\\mathbf{n_{interior}} = (-1, 0, 0)\n", - "\\end{align}\n", - "\n", - "Once we have defined these planes, we subdivide the cells created above. This subdivision is done by the `grid.build_grid` method. For each hyperrectangular cell, the method intersects with the null hypothesis boundaries and splits into multiple tiles whenever a cell is intersected by a null hypothesis plane. " - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "null_hypos = [\n", - " grid.HyperPlane([-1, 0, 0], -logit(0.1)),\n", - " grid.HyperPlane([0, -1, 0], -logit(0.1)),\n", - " grid.HyperPlane([0, 0, -1], -logit(0.1))\n", - "]\n", - "g = grid.build_grid(theta, radii, null_hypos)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we can optionally prune our grid by calling `grid.prune(g)`. Pruning will remove any tiles that are entirely in the alternative hypothesis space for all arms. Since our goal is to calculate type I error, we do not care about the alternative hypothesis space. For a false positive to occur, the truth must be negative!" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "g = grid.prune(g)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**At this point, you can skip to the next section if you're not interested in learning about the details of the grid object.**\n", - "\n", - "Here, we'll grab a few of the important variables from the grid object and examine them. First, let's look at `theta_tiles`. This array represents the center of each tile in the grid. The shape of the array will be `(n_tiles, 3)` because we have 3 parameter values per point." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(3185, 3)" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "theta_tiles = g.thetas[g.grid_pt_idx]\n", - "theta_tiles.shape" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([-3.359375, -3.078125, -2.796875, -2.515625, -2.234375, -1.953125,\n", - " -1.671875, -1.390625, -1.109375, -0.828125, -0.546875, -0.265625,\n", - " 0.015625, 0.296875, 0.578125, 0.859375])" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "unique_t2 = np.unique(theta_tiles[:,2])\n", - "unique_t2" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In the figure below, we plot $\\theta_0$ and $\\theta_1$ for a couple different values of $\\theta_2$. You can see that the shape of the domain in $(\\theta_0, \\theta_1)$ changes depending on whether $\\theta_2$ is in the null space for arm 2 or not. The solid white region without any tile centers in the right figure represents the region where the alternative hypothesis is true for all three arms. The solid black lines represent the boundaries of the arm 0 and the arm 1 null hypothesis boundary planes. " - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(6,3))\n", - "plt.subplot(1,2,1)\n", - "plt.title(f'$\\\\theta_2 = {unique_t2[3]}$')\n", - "selection = theta_tiles[:, 2] == unique_t2[3]\n", - "plt.plot(theta_tiles[selection,0], theta_tiles[selection, 1], 'k.')\n", - "plt.hlines(logit(0.1), -4, 2)\n", - "plt.vlines(logit(0.1), -4, 2)\n", - "plt.xlim(np.min(theta_tiles[:,0]) - 0.2, np.max(theta_tiles[:,0]) + 0.2)\n", - "plt.ylim(np.min(theta_tiles[:,1]) - 0.2, np.max(theta_tiles[:,1]) + 0.2)\n", - "\n", - "plt.subplot(1,2,2)\n", - "plt.title(f'$\\\\theta_2 = {unique_t2[10]}$')\n", - "selection = theta_tiles[:, 2] == unique_t2[10]\n", - "plt.plot(theta_tiles[selection,0], theta_tiles[selection, 1], 'k.')\n", - "plt.hlines(logit(0.1), -4, 2)\n", - "plt.vlines(logit(0.1), -4, 2)\n", - "plt.xlim(np.min(theta_tiles[:,0]) - 0.2, np.max(theta_tiles[:,0]) + 0.2)\n", - "plt.ylim(np.min(theta_tiles[:,1]) - 0.2, np.max(theta_tiles[:,1]) + 0.2)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's explore another useful array produced for the grid. The `g.null_truth` array will contain whether the null hypothesis is true for each arm for each tile. Naturally, this has the same shape as `theta_tiles`. " - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(3185, 3)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "g.null_truth.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Since we've pruned the grid, the tiles are all in the null hypothesis space for at least one arm." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.all(np.any(g.null_truth, axis=1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The last array that we'll explore is called `n_tiles_per_pt`. To understand this array, we need to return to the tile splitting that occurs in `gr.create_tiles`. Whenever a hypothesis plane splits a cell, that cell is split with one tile for each side of the plane. Since most cells are not split, `n_tiles_per_pt` will be 1 for most input grid points. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([1, 1, 1, ..., 1, 1, 1])" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "n_tiles_per_pt = g.n_tiles_per_pt()\n", - "n_tiles_per_pt" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's look at the list of input cells which are associated with more than one tile. There are quite a few that are split by a single plane into two tiles. A smaller number that are split by two planes into 3 or 4 tiles. And there is a single input cell that is split into 7 tiles because it is intersected by all three null hypothesis planes! (Why isn't this cell split into 8 tiles? Why are some cells split into 3 tiles?)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 7, 3, 3, 3, 3, 3,\n", - " 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2,\n", - " 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2,\n", - " 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2,\n", - " 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3,\n", - " 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2,\n", - " 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2,\n", - " 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2,\n", - " 2, 2, 2, 2, 2, 3])" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "n_tiles_per_pt[n_tiles_per_pt > 1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's plot up the number of tiles per cell below for a particularly interesting slice!" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - " \n", - "selection = (g.thetas[:,2] == unique_t2[4])\n", - "plt.title(f'Tile count per cell, $\\\\theta_2 = {unique_t2[4]}$')\n", - "plt.scatter(g.thetas[selection,0], g.thetas[selection,1], c=n_tiles_per_pt[selection])\n", - "plt.hlines(logit(0.1), -4, 2)\n", - "plt.vlines(logit(0.1), -4, 2)\n", - "plt.xlim(np.min(g.thetas[:,0]) - 0.2, np.max(g.thetas[:,0]) + 0.2)\n", - "plt.ylim(np.min(g.thetas[:,1]) - 0.2, np.max(g.thetas[:,1]) + 0.2)\n", - "plt.colorbar()\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 2: Simulating to compute type I error rates and gradients" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we've constructed and examined our computation grid, let's actually compute type I error and its gradient.\n", - "\n", - "First, in order to do this, we need to build an inference algorithm that tells us whether to reject or not given a particular dataset. We're going to use an implementation of INLA applied to the model described above. The `fi.rejection_inference` function below will implement this inference algorithm. The details of this inference are not particularly important to what we're doing here so we'll leave it unexplained. Please check out the [intro_to_inla.ipynb](./intro_to_inla.ipynb) notebook if you're interested in learning more. \n", - "\n", - "First, we'll check that the inference does something reasonable. It rejects the null for arms 1 and 2 where the success counts are 4 and 8 but does not reject the null for arm 0 where the success count is 3. This seems reasonable!" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "WARNING:absl:No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n" - ] - }, - { - "data": { - "text/plain": [ - "DeviceArray([[False, True, True]], dtype=bool)" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import fast_inla as fast_inla\n", - "y = [[4,5,9]]\n", - "n = [[35,35,35]]\n", - "fi = fast_inla.FastINLA(n_arms=n_arms, critical_value=0.95)\n", - "fi.rejection_inference(np.stack((y, n), axis=-1))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, we're going to simulate a lot of datasets! Specifically, we will construct `sim_size` datasets, each consisting of `(n_arm_samples, n_arms)` uniform draws. We construct the datasets this way so that we can threshold the same data many times for each potential set of true parameter values. " - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "np.random.seed(10)\n", - "samples = np.random.uniform(size=(sim_size, n_arm_samples, n_arms))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Next, the meat of the type I error calculation will be done by `binomial_accumulator`. This is a JAX function that will just in time compile into a very fast compiled version when passed a function that implements the rejection inference. Then, we call the JIT function `accumulator` and pass it the necessary information:\n", - "* the array of tile centers\n", - "* the truth value of each hypothesis for each tile.\n", - "* the simulated data.\n", - "\n", - "Internally, this function will simulate `sim_size` trials for each tile and return:\n", - "* `typeI_sum`: the number of simulations during which any arm had a false rejections (family-wise error).\n", - "* `typeI_score`: the score/gradient of the typeI_sum output with respect to the true parameter values.\n", - "\n", - "Here, we are running 2000 simulations for each of 3185 tiles." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "CPU times: user 3min 19s, sys: 8.09 s, total: 3min 27s\n", - "Wall time: 1min 25s\n" - ] - } - ], - "source": [ - "%%time\n", - "import binomial as binomial\n", - "accumulator = binomial.binomial_accumulator(fi.rejection_inference)\n", - "typeI_sum, typeI_score = accumulator(theta_tiles, g.null_truth, samples)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Before continuing, let's look at a couple slices of this type I error grid:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(8,4), constrained_layout=True)\n", - "for i, t2_idx in enumerate([4, 8]):\n", - " t2 = np.unique(theta_tiles[:, 2])[t2_idx]\n", - " selection = (theta_tiles[:,2] == t2)\n", - "\n", - " plt.subplot(1,2,i+1)\n", - " plt.title(f'slice: $\\\\theta_2 \\\\approx$ {t2:.1f}')\n", - " plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=typeI_sum[selection]/sim_size, s=90)\n", - " cbar = plt.colorbar()\n", - " plt.xlabel(r'$\\theta_0$')\n", - " plt.ylabel(r'$\\theta_1$')\n", - " cbar.set_label('Simulated fraction of Type I errors')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's also look at the magnitude of the gradient in the arm-(0,1) plane. Note the correspondence with the areas of rapid change in the simulated fraction of type I error above." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "typeI_grad_mag01 = np.linalg.norm(typeI_score[:,[0,1]], axis=1)/sim_size\n", - "\n", - "plt.figure(figsize=(8,4), constrained_layout=True)\n", - "for i, t2_idx in enumerate([4, 8]):\n", - " t2 = np.unique(theta_tiles[:, 2])[t2_idx]\n", - " selection = (theta_tiles[:,2] == t2)\n", - "\n", - " plt.subplot(1,2,i+1)\n", - " plt.title(f'slice: $\\\\theta_2 \\\\approx$ {t2:.1f}')\n", - " plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=typeI_grad_mag01[selection], s=90)\n", - " cbar = plt.colorbar()\n", - " plt.xlabel(r'$\\theta_0$')\n", - " plt.ylabel(r'$\\theta_1$')\n", - " cbar.set_label('Simulated gradient of Type I error')\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Bound construction" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The final step in analyzing this model is to combine the piece above into a second order upper bound for the true type I error of the form:\n", - "\n", - "\\begin{align}\n", - "\\forall \\theta \\in \\Theta_0 ~~~ P(f(\\theta) > g(\\theta)) \\leq \\delta\n", - "\\end{align}\n", - "\n", - "where:\n", - "* $\\Theta_0$ is the domain of our grid.\n", - "* $f(\\theta)$ is the true type I error rate.\n", - "* $g(\\theta)$ is our type I error rate **bound**.\n", - "* $\\delta$ is the bound failure rate.\n", - "\n", - "Note that this is a probabilistic bound in that there is a small chance of failure. Even so, any failures are not likely to be egregious due to central tendencies. Below, we set $\\delta = 0.025$ and construct the bound $g(\\theta)$.\n", - "\n", - "Intuitively, this bound is constructed from the three pieces above:\n", - "1. The estimated pointwise type I error provides a starting point with an easily estimated sampling error.\n", - "2. The gradient and also a bound on the hessian of the type I error function are used to extrapolate the pointwise bound across each tile using a second order Taylor expansion. \n", - "\n", - "The code below computes the bound. Note that it requires knowledge of both the grid and the simulation outcomes. The vertices of the grid tiles are needed in order to compute the first and second order bound terms." - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [], - "source": [ - "tile_radii = g.radii[g.grid_pt_idx]\n", - "sim_sizes = np.full(g.n_tiles, sim_size)\n", - "total, d0, d0u, d1w, d1uw, d2uw = binomial.upper_bound(\n", - " theta_tiles,\n", - " tile_radii,\n", - " g.vertices,\n", - " sim_sizes,\n", - " n_arm_samples,\n", - " typeI_sum.to_py(),\n", - " typeI_score,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 4: Bound visualization" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this last step, we're going to visualize the bound a couple different ways. First, we'll just look at the raw bound using matplotlib here in this notebook. Then, we'll open up a Plotly 3D visualization tool.\n", - "\n", - "Note that the upper bound here is going to be quite loose because we have a very coarse grid. The looseness of the bound will be quadratic in cell size because of the second order term. In addition, there is a lot of error in our pointwise type I error estimate because the number of simulations is only 2000." - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [], - "source": [ - "bound_components = np.array([\n", - " d0,\n", - " d0u,\n", - " d1w,\n", - " d1uw,\n", - " d2uw,\n", - " total,\n", - "]).T" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(8,4), constrained_layout=True)\n", - "for i, t2_idx in enumerate([4, 8]):\n", - " t2 = np.unique(theta_tiles[:, 2])[t2_idx]\n", - " selection = (theta_tiles[:,2] == t2)\n", - "\n", - " plt.subplot(1,2,i+1)\n", - " plt.title(f'slice: $\\\\theta_2 \\\\approx$ {t2:.1f}')\n", - " plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=bound_components[selection,5], s=90)\n", - " cbar = plt.colorbar()\n", - " plt.xlabel(r'$\\theta_0$')\n", - " plt.ylabel(r'$\\theta_1$')\n", - " cbar.set_label('Upper bound on type I error')\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [], - "source": [ - "t2 = np.unique(theta_tiles[:, 2])[4]\n", - "selection = (theta_tiles[:,2] == t2)\n", - "\n", - "np.savetxt('P_tutorial.csv', theta_tiles[selection, :].T, fmt=\"%s\", delimiter=\",\")\n", - "np.savetxt('B_tutorial.csv', bound_components[selection, :], fmt=\"%s\", delimiter=\",\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Open [the frontend installation instructions](../../frontend/README.md) and follow them. Copied here:\n", - "\n", - "1. On Mac: `brew install node`. Elsewhere, figure out how to install nodejs!\n", - "2. Install reactjs with `npm i react-scripts`\n", - "\n", - "Finally:\n", - "\n", - "```bash\n", - "cd frontend\n", - "npm start\n", - "```\n", - "\n", - "You should see something that looks like: \n", - "\n", - "\"\"\n", - "\n", - "Click on \"Upload B matrix\" and choose the B matrix we just saved. Do the same for the P matrix. Now you should be able to play around with the 3D visualization! Also, you can select the different layers to see the magnitude of different bound components." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3.10.5 (conda)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.5" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "178441165020b176b22e62ba30f1c1b528e939d0912375b01a518763c6e63836" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/research/berry/tutorial.md b/research/berry/tutorial.md deleted file mode 100644 index b2e96ff6..00000000 --- a/research/berry/tutorial.md +++ /dev/null @@ -1,338 +0,0 @@ ---- -jupyter: - jupytext: - text_representation: - extension: .md - format_name: markdown - format_version: '1.3' - jupytext_version: 1.13.8 - kernelspec: - display_name: Python 3.10.5 (conda) - language: python - name: python3 ---- - -# An introduction to analyzing trial designs with Imprint. - - -We're going to analyze a three arm basket trial following the design of [Berry et al. (2013)](https://pubmed.ncbi.nlm.nih.gov/23983156/). - -Critically, the log-odds for each arm of the trial are assumed to be drawn from a shared normal distribution. This hierarchical design leads to a sharing effect between the log-odds for the different arms. - -\begin{align} -\mathbf{y} &\sim \mathrm{Binomial}( \mathbf{p}, \mathbf{n})\\ -\mathbf{p} &= \mathrm{expit}(\mathbf{\theta} + logit(\mathbf{p_1}))\\ -\mathbf{\theta} &\sim N(\mu, \sigma^2)\\ -\mu &\sim N(\mu_0, S^2)\\ -\sigma^2 &\sim \mathrm{InvGamma}(0.0005, 0.000005)\\ -\end{align} - -```python -from scipy.special import logit -import matplotlib.pyplot as plt -import numpy as np - -n_arms = 3 -# This is the binomial n parameter, the number of patients recruited to each arm of the trial. -n_arm_samples = 35 -``` - -## Step 1: constructing a parameter grid - -We're going to use the `grid.make_cartesian_gridpts` function to produce a 3 dimensional set of points covering $\theta_i \in [-3.5, 1.0]$. The points lie at the center of (hyper)rectangular cells. The cells cover the whole box. - -```python -import grid - -n_theta_1d = 16 -sim_size = 2000 -theta, radii = grid.make_cartesian_gridpts( - n_theta_1d, np.full(n_arms, -3.5), np.full(n_arms, 1.0) -) - -``` - -Next, we need to define the null hypothesis space. There are built-in tools in imprint for defining a null hypothesis as a domain bounded by planes. In this case, the null hypothesis for each arm is defined by $\theta_i < \mathrm{logit}(0.1)$. For $i = 0$, the plane defining this surface is defined by: -\begin{align} -\mathbf{n} \cdot \mathbf{x} = \mathrm{logit}(0.1)\\ -\mathbf{n} = (1, 0, 0) -\end{align} -However, we use the convention that the normal vector of the plane will point interior to the null hypothesis, so instead we define a plane: -\begin{align} -\mathbf{n_{interior}} \cdot \mathbf{x} = -\mathrm{logit}(0.1)\\ -\mathbf{n_{interior}} = (-1, 0, 0) -\end{align} - -Once we have defined these planes, we subdivide the cells created above. This subdivision is done by the `grid.build_grid` method. For each hyperrectangular cell, the method intersects with the null hypothesis boundaries and splits into multiple tiles whenever a cell is intersected by a null hypothesis plane. - -```python -null_hypos = [ - grid.HyperPlane([-1, 0, 0], -logit(0.1)), - grid.HyperPlane([0, -1, 0], -logit(0.1)), - grid.HyperPlane([0, 0, -1], -logit(0.1)) -] -g = grid.build_grid(theta, radii, null_hypos) -``` - -Next, we can optionally prune our grid by calling `grid.prune(g)`. Pruning will remove any tiles that are entirely in the alternative hypothesis space for all arms. Since our goal is to calculate type I error, we do not care about the alternative hypothesis space. For a false positive to occur, the truth must be negative! - -```python -g = grid.prune(g) -``` - -**At this point, you can skip to the next section if you're not interested in learning about the details of the grid object.** - -Here, we'll grab a few of the important variables from the grid object and examine them. First, let's look at `theta_tiles`. This array represents the center of each tile in the grid. The shape of the array will be `(n_tiles, 3)` because we have 3 parameter values per point. - -```python -theta_tiles = g.thetas[g.grid_pt_idx] -theta_tiles.shape -``` - -```python -unique_t2 = np.unique(theta_tiles[:,2]) -unique_t2 -``` - -In the figure below, we plot $\theta_0$ and $\theta_1$ for a couple different values of $\theta_2$. You can see that the shape of the domain in $(\theta_0, \theta_1)$ changes depending on whether $\theta_2$ is in the null space for arm 2 or not. The solid white region without any tile centers in the right figure represents the region where the alternative hypothesis is true for all three arms. The solid black lines represent the boundaries of the arm 0 and the arm 1 null hypothesis boundary planes. - -```python -plt.figure(figsize=(6,3)) -plt.subplot(1,2,1) -plt.title(f'$\\theta_2 = {unique_t2[3]}$') -selection = theta_tiles[:, 2] == unique_t2[3] -plt.plot(theta_tiles[selection,0], theta_tiles[selection, 1], 'k.') -plt.hlines(logit(0.1), -4, 2) -plt.vlines(logit(0.1), -4, 2) -plt.xlim(np.min(theta_tiles[:,0]) - 0.2, np.max(theta_tiles[:,0]) + 0.2) -plt.ylim(np.min(theta_tiles[:,1]) - 0.2, np.max(theta_tiles[:,1]) + 0.2) - -plt.subplot(1,2,2) -plt.title(f'$\\theta_2 = {unique_t2[10]}$') -selection = theta_tiles[:, 2] == unique_t2[10] -plt.plot(theta_tiles[selection,0], theta_tiles[selection, 1], 'k.') -plt.hlines(logit(0.1), -4, 2) -plt.vlines(logit(0.1), -4, 2) -plt.xlim(np.min(theta_tiles[:,0]) - 0.2, np.max(theta_tiles[:,0]) + 0.2) -plt.ylim(np.min(theta_tiles[:,1]) - 0.2, np.max(theta_tiles[:,1]) + 0.2) -plt.show() -``` - -Let's explore another useful array produced for the grid. The `g.null_truth` array will contain whether the null hypothesis is true for each arm for each tile. Naturally, this has the same shape as `theta_tiles`. - -```python -g.null_truth.shape -``` - -Since we've pruned the grid, the tiles are all in the null hypothesis space for at least one arm. - -```python -np.all(np.any(g.null_truth, axis=1)) -``` - -The last array that we'll explore is called `n_tiles_per_pt`. To understand this array, we need to return to the tile splitting that occurs in `gr.create_tiles`. Whenever a hypothesis plane splits a cell, that cell is split with one tile for each side of the plane. Since most cells are not split, `n_tiles_per_pt` will be 1 for most input grid points. - -```python -n_tiles_per_pt = g.n_tiles_per_pt() -n_tiles_per_pt -``` - -Let's look at the list of input cells which are associated with more than one tile. There are quite a few that are split by a single plane into two tiles. A smaller number that are split by two planes into 3 or 4 tiles. And there is a single input cell that is split into 7 tiles because it is intersected by all three null hypothesis planes! (Why isn't this cell split into 8 tiles? Why are some cells split into 3 tiles?) - -```python -n_tiles_per_pt[n_tiles_per_pt > 1] -``` - -Let's plot up the number of tiles per cell below for a particularly interesting slice! - -```python - -selection = (g.thetas[:,2] == unique_t2[4]) -plt.title(f'Tile count per cell, $\\theta_2 = {unique_t2[4]}$') -plt.scatter(g.thetas[selection,0], g.thetas[selection,1], c=n_tiles_per_pt[selection]) -plt.hlines(logit(0.1), -4, 2) -plt.vlines(logit(0.1), -4, 2) -plt.xlim(np.min(g.thetas[:,0]) - 0.2, np.max(g.thetas[:,0]) + 0.2) -plt.ylim(np.min(g.thetas[:,1]) - 0.2, np.max(g.thetas[:,1]) + 0.2) -plt.colorbar() -plt.show() -``` - -## Step 2: Simulating to compute type I error rates and gradients - - -Now that we've constructed and examined our computation grid, let's actually compute type I error and its gradient. - -First, in order to do this, we need to build an inference algorithm that tells us whether to reject or not given a particular dataset. We're going to use an implementation of INLA applied to the model described above. The `fi.rejection_inference` function below will implement this inference algorithm. The details of this inference are not particularly important to what we're doing here so we'll leave it unexplained. Please check out the [intro_to_inla.ipynb](./intro_to_inla.ipynb) notebook if you're interested in learning more. - -First, we'll check that the inference does something reasonable. It rejects the null for arms 1 and 2 where the success counts are 4 and 8 but does not reject the null for arm 0 where the success count is 3. This seems reasonable! - -```python -import fast_inla as fast_inla -y = [[4,5,9]] -n = [[35,35,35]] -fi = fast_inla.FastINLA(n_arms=n_arms, critical_value=0.95) -fi.rejection_inference(np.stack((y, n), axis=-1)) -``` - -Next, we're going to simulate a lot of datasets! Specifically, we will construct `sim_size` datasets, each consisting of `(n_arm_samples, n_arms)` uniform draws. We construct the datasets this way so that we can threshold the same data many times for each potential set of true parameter values. - -```python -np.random.seed(10) -samples = np.random.uniform(size=(sim_size, n_arm_samples, n_arms)) -``` - -Next, the meat of the type I error calculation will be done by `binomial_accumulator`. This is a JAX function that will just in time compile into a very fast compiled version when passed a function that implements the rejection inference. Then, we call the JIT function `accumulator` and pass it the necessary information: -* the array of tile centers -* the truth value of each hypothesis for each tile. -* the simulated data. - -Internally, this function will simulate `sim_size` trials for each tile and return: -* `typeI_sum`: the number of simulations during which any arm had a false rejections (family-wise error). -* `typeI_score`: the score/gradient of the typeI_sum output with respect to the true parameter values. - -Here, we are running 2000 simulations for each of 3185 tiles. - -```python -%%time -import binomial as binomial -accumulator = binomial.binomial_accumulator(fi.rejection_inference) -typeI_sum, typeI_score = accumulator(theta_tiles, g.null_truth, samples) -``` - -Before continuing, let's look at a couple slices of this type I error grid: - -```python -plt.figure(figsize=(8,4), constrained_layout=True) -for i, t2_idx in enumerate([4, 8]): - t2 = np.unique(theta_tiles[:, 2])[t2_idx] - selection = (theta_tiles[:,2] == t2) - - plt.subplot(1,2,i+1) - plt.title(f'slice: $\\theta_2 \\approx$ {t2:.1f}') - plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=typeI_sum[selection]/sim_size, s=90) - cbar = plt.colorbar() - plt.xlabel(r'$\theta_0$') - plt.ylabel(r'$\theta_1$') - cbar.set_label('Simulated fraction of Type I errors') -plt.show() -``` - -Let's also look at the magnitude of the gradient in the arm-(0,1) plane. Note the correspondence with the areas of rapid change in the simulated fraction of type I error above. - -```python -typeI_grad_mag01 = np.linalg.norm(typeI_score[:,[0,1]], axis=1)/sim_size - -plt.figure(figsize=(8,4), constrained_layout=True) -for i, t2_idx in enumerate([4, 8]): - t2 = np.unique(theta_tiles[:, 2])[t2_idx] - selection = (theta_tiles[:,2] == t2) - - plt.subplot(1,2,i+1) - plt.title(f'slice: $\\theta_2 \\approx$ {t2:.1f}') - plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=typeI_grad_mag01[selection], s=90) - cbar = plt.colorbar() - plt.xlabel(r'$\theta_0$') - plt.ylabel(r'$\theta_1$') - cbar.set_label('Simulated gradient of Type I error') -plt.show() -``` - -## Step 3: Bound construction - - -The final step in analyzing this model is to combine the piece above into a second order upper bound for the true type I error of the form: - -\begin{align} -\forall \theta \in \Theta_0 ~~~ P(f(\theta) > g(\theta)) \leq \delta -\end{align} - -where: -* $\Theta_0$ is the domain of our grid. -* $f(\theta)$ is the true type I error rate. -* $g(\theta)$ is our type I error rate **bound**. -* $\delta$ is the bound failure rate. - -Note that this is a probabilistic bound in that there is a small chance of failure. Even so, any failures are not likely to be egregious due to central tendencies. Below, we set $\delta = 0.025$ and construct the bound $g(\theta)$. - -Intuitively, this bound is constructed from the three pieces above: -1. The estimated pointwise type I error provides a starting point with an easily estimated sampling error. -2. The gradient and also a bound on the hessian of the type I error function are used to extrapolate the pointwise bound across each tile using a second order Taylor expansion. - -The code below computes the bound. Note that it requires knowledge of both the grid and the simulation outcomes. The vertices of the grid tiles are needed in order to compute the first and second order bound terms. - -```python -tile_radii = g.radii[g.grid_pt_idx] -sim_sizes = np.full(g.n_tiles, sim_size) -total, d0, d0u, d1w, d1uw, d2uw = binomial.upper_bound( - theta_tiles, - tile_radii, - g.vertices, - sim_sizes, - n_arm_samples, - typeI_sum.to_py(), - typeI_score, -) -``` - -## Step 4: Bound visualization - - -For this last step, we're going to visualize the bound a couple different ways. First, we'll just look at the raw bound using matplotlib here in this notebook. Then, we'll open up a Plotly 3D visualization tool. - -Note that the upper bound here is going to be quite loose because we have a very coarse grid. The looseness of the bound will be quadratic in cell size because of the second order term. In addition, there is a lot of error in our pointwise type I error estimate because the number of simulations is only 2000. - -```python -bound_components = np.array([ - d0, - d0u, - d1w, - d1uw, - d2uw, - total, -]).T -``` - -```python -plt.figure(figsize=(8,4), constrained_layout=True) -for i, t2_idx in enumerate([4, 8]): - t2 = np.unique(theta_tiles[:, 2])[t2_idx] - selection = (theta_tiles[:,2] == t2) - - plt.subplot(1,2,i+1) - plt.title(f'slice: $\\theta_2 \\approx$ {t2:.1f}') - plt.scatter(theta_tiles[selection,0], theta_tiles[selection,1], c=bound_components[selection,5], s=90) - cbar = plt.colorbar() - plt.xlabel(r'$\theta_0$') - plt.ylabel(r'$\theta_1$') - cbar.set_label('Upper bound on type I error') -plt.show() -``` - -```python -t2 = np.unique(theta_tiles[:, 2])[4] -selection = (theta_tiles[:,2] == t2) - -np.savetxt('P_tutorial.csv', theta_tiles[selection, :].T, fmt="%s", delimiter=",") -np.savetxt('B_tutorial.csv', bound_components[selection, :], fmt="%s", delimiter=",") -``` - - -Open [the frontend installation instructions](../../frontend/README.md) and follow them. Copied here: - -1. On Mac: `brew install node`. Elsewhere, figure out how to install nodejs! -2. Install reactjs with `npm i react-scripts` - -Finally: - -```bash -cd frontend -npm start -``` - -You should see something that looks like: - - - -Click on "Upload B matrix" and choose the B matrix we just saved. Do the same for the P matrix. Now you should be able to play around with the 3D visualization! Also, you can select the different layers to see the magnitude of different bound components. - diff --git a/setup.cfg b/setup.cfg index 54f15af1..b85ea323 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [flake8] max-line-length = 88 -extend-ignore = E203, E266, W605 +extend-ignore = E203, E266 per-file-ignores= **/__init__.py:F401,F403 diff --git a/tests/__snapshot__/test_ztest_0.csv b/tests/__snapshot__/test_ztest_0.csv new file mode 100644 index 00000000..7cd6b0e2 --- /dev/null +++ b/tests/__snapshot__/test_ztest_0.csv @@ -0,0 +1,6 @@ +tie_sum,tie_est,tie_cp_bound,tie_bound +16,0.001953125,0.0034191739174506343,0.004765470137185622 +29,0.0035400390625,0.005389249452767886,0.0074084382349878086 +55,0.0067138671875,0.009127516606306499,0.012339091796835904 +96,0.01171875,0.014792781735476013,0.01967672156277178 +152,0.0185546875,0.022324989944489036,0.02926703952730332 diff --git a/tests/__snapshot__/test_ztest_1.csv b/tests/__snapshot__/test_ztest_1.csv new file mode 100644 index 00000000..58e459d3 --- /dev/null +++ b/tests/__snapshot__/test_ztest_1.csv @@ -0,0 +1,6 @@ +lams +-1.232023334503174 +-1.4320233345031739 +-1.6320233345031738 +-1.832023334503174 +-2.0320233345031737 diff --git a/tests/test_grid.py b/tests/test_grid.py new file mode 100644 index 00000000..f740cddc --- /dev/null +++ b/tests/test_grid.py @@ -0,0 +1,272 @@ +import copy +import time + +import numpy as np +import pytest + +import imprint.grid as grid +from imprint.grid import HyperPlane +from imprint.grid import hypo + +# NOTE: For developing tests, plotting a 2D grid is very useful: +# import matplotlib.pyplot as plt +# grid.plot_grid(g) +# plt.show() + + +def normalize(n): + return n / np.linalg.norm(n) + + +def test_hypo(): + assert hypo("x < 0") == HyperPlane([-1], 0) + assert hypo("x <= 0") == HyperPlane([-1], 0) + assert hypo("x > 0") == HyperPlane([1], 0) + assert hypo("x >= 0") == HyperPlane([1], 0) + + isq2 = 1.0 / np.sqrt(2) + assert hypo("x < 1") == HyperPlane([-1], -1) + assert hypo("x >= y") == HyperPlane([isq2, -isq2], 0) + assert hypo("x + y < 0") == HyperPlane([-isq2, -isq2], 0) + assert hypo("x + y < 1") == HyperPlane([-isq2, -isq2], -isq2) + + assert hypo("theta0 < 0") == HyperPlane([-1], 0) + assert hypo("x0 < 0") == HyperPlane([-1], 0) + + assert hypo("y < 1") == HyperPlane([0, -1], -1) + assert hypo("z < 1") == HyperPlane([0, 0, -1], -1) + assert hypo("z < 0.2") == HyperPlane([0, 0, -1], -0.2) + + assert hypo("2*x < 0.2") == HyperPlane([-1], -0.1) + assert hypo("2.1*x < 0.2") == HyperPlane([-1], -0.2 / 2.1) + + +def test_split1d(): + new_theta, new_radii = grid.split( + np.array([[1.0]]), + np.array([[1.1]]), + np.array([[[-0.1], [2.1]]]), + np.array([[0.1, -2.1]]), + grid.HyperPlane(np.array([-1]), 0), + ) + np.testing.assert_allclose(new_theta, [[-0.05], [1.05]]) + np.testing.assert_allclose(new_radii, [[0.05], [1.05]]) + + +def test_split2d(): + new_theta, new_radii = grid.split( + np.array([[1.0, 1.0]]), + np.array([[1.1, 1.1]]), + np.array([[[-0.1, -0.1], [-0.1, 2.1], [2.1, -0.1], [2.1, 2.1]]]), + np.array([[0.2, 0.2, -1.9, -1.9]]), + grid.HyperPlane(np.array([-1, 0]), -0.1), + ) + np.testing.assert_allclose(new_theta, [[-0.0, 1.0], [1.1, 1.0]]) + np.testing.assert_allclose(new_radii, [[0.1, 1.1], [1.0, 1.1]]) + + +@pytest.fixture +def simple_grid(): + thetas = np.array([[-0.5, -0.5], [-0.5, 0.5], [0.5, -0.5], [0.5, 0.5]]) + radii = np.full_like(thetas, 0.5) + hypos = [grid.HyperPlane(-np.identity(2)[i], -0.1) for i in range(2)] + return grid.init_grid(thetas, radii).add_null_hypos(hypos) + + +n_bits, host_bits = grid._gen_short_uuids.config +t_bits = 64 - n_bits - host_bits + + +def test_short_uuids(): + U = grid.gen_short_uuids(10) + assert np.unique(U).shape[0] == 10 + + U2 = grid.gen_short_uuids(10) + assert U.dtype == np.uint64 + assert np.unique(U).shape[0] == 10 + assert U2[0] - U[0] == 2 ** (n_bits + host_bits) + + +def test_no_duplicate_uuids(): + n = int(2 ** (n_bits + 0.5)) + U = grid.gen_short_uuids(n) + assert np.unique(U).shape[0] == n + + n = 1000 + U = grid.gen_short_uuids(n) + U2 = grid.gen_short_uuids(n) + assert np.unique(np.concatenate((U, U2))).shape[0] == 2 * n + + +def test_lots_of_short_uuids(): + n = 2**n_bits + uuids = grid.gen_short_uuids(n) + assert uuids[-1] - uuids[0] == 2 ** (n_bits + host_bits) + assert np.unique(uuids).shape[0] == n + + +def test_add_null_hypos(simple_grid): + g_active = simple_grid.active() + assert len(g_active.null_hypos) == 2 + np.testing.assert_allclose( + np.concatenate((g_active.get_theta(), g_active.get_radii()), axis=1), + np.array( + [ + [-0.5, -0.5, 0.5, 0.5], + [0.05, -0.5, 0.05, 0.5], + [0.55, -0.5, 0.45, 0.5], + [-0.5, 0.05, 0.5, 0.05], + [-0.5, 0.55, 0.5, 0.45], + [0.05, 0.05, 0.05, 0.05], + [0.05, 0.55, 0.05, 0.45], + [0.55, 0.05, 0.45, 0.05], + [0.55, 0.55, 0.45, 0.45], + ] + ), + ) + assert np.all( + g_active.get_null_truth() + == np.array( + [[1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1], [0, 0]] + ) + ) + parent = g_active.df["parent_id"] + assert parent.dtype == np.uint64 + assert ((parent == 0) | (parent.isin(simple_grid.df["id"]))).all() + + +def test_one_point_grid(): + g = grid.init_grid( + *grid._cartesian_gridpts(np.array([0]), np.array([1]), np.array([1])) + ) + np.testing.assert_allclose(g.get_theta(), np.array([[0.5]])) + np.testing.assert_allclose(g.get_radii(), np.array([[0.5]])) + + +def test_split_angled(): + Hs = [grid.HyperPlane([2, -1], 0)] + in_theta, in_radii = grid._cartesian_gridpts( + np.full(2, -1), np.full(2, 1), np.full(4, 4) + ) + g = grid.init_grid(in_theta, in_radii).add_null_hypos(Hs).prune() + assert g.active().n_tiles == 10 + np.testing.assert_allclose(g.get_radii()[-1], [0.125, 0.25]) + + +def test_immutability(): + Hs = [grid.HyperPlane([2, -1], 0)] + in_theta, in_radii = grid._cartesian_gridpts( + np.full(2, -1), np.full(2, 1), np.full(4, 4) + ) + g = grid.init_grid(in_theta, in_radii) + g_copy = copy.deepcopy(g) + _ = g.add_null_hypos(Hs).prune() + assert (g.df == g_copy.df).all().all() + + +def test_prune(simple_grid): + gp = simple_grid.prune() + assert np.all( + gp.active().get_null_truth() + == np.array([[[1, 1], [1, 1], [0, 1], [1, 1], [1, 0], [1, 1], [1, 0], [0, 1]]]) + ) + + +def check_index(g): + assert np.all(g.df.index.values == np.arange(g.n_tiles)) + + +def test_simple_indices(simple_grid): + # All operations should leave the dataframe with a pandas index equal to + # np.arange(n_tiles) + g = grid.cartesian_grid([-1, -1], [1, 1], n=[2, 2]) + check_index(g) + + check_index(simple_grid) + gp = simple_grid.prune() + check_index(gp) + gc = gp.concat(g) + check_index(gc) + + +def test_column_inheritance(): + # All operations should leave the dataframe with a pandas index equal to + # np.arange(n_tiles) + g = grid.cartesian_grid([-1, -1], [1, 1], n=[2, 2]) + g.df["birthday"] = 1 + + gs = g.add_null_hypos([grid.hypo("x < 0.1")], ["birthday"]) + assert (gs.df["birthday"] == 1).all() + gp = gs.prune() + assert (gp.df["birthday"] == 1).all() + gc = gp.concat(g) + assert (gc.df["birthday"] == 1).all() + + +def test_prune_no_surfaces(): + thetas = np.array([[-0.5, -0.5], [-0.5, 0.5], [0.5, -0.5], [0.5, 0.5]]) + radii = np.full_like(thetas, 0.5) + g = grid.init_grid(thetas, radii) + gp = g.prune() + assert g == gp + + +def test_prune_twice_invariance(simple_grid): + gp = simple_grid.prune() + gpp = gp.prune() + np.testing.assert_allclose(gp.get_theta(), gpp.get_theta()) + np.testing.assert_allclose(gp.get_radii(), gpp.get_radii()) + np.testing.assert_allclose(gp.get_null_truth(), gpp.get_null_truth()) + + +def test_refine(): + n_arms = 2 + theta, radii = grid._cartesian_gridpts( + np.full(n_arms, -3.0), np.full(n_arms, 1.0), np.full(n_arms, 4) + ) + + null_hypos = [grid.HyperPlane(-np.identity(n_arms)[i], 1.1) for i in range(n_arms)] + g = grid.init_grid(theta, radii).add_null_hypos(null_hypos).prune() + refine_g = g.active().subset(np.array([0, 3, 4, 5])) + new_g = refine_g.refine() + np.testing.assert_allclose(new_g.get_radii()[:12], 0.25) + np.testing.assert_allclose(new_g.get_radii()[-4:, 0], 0.225) + np.testing.assert_allclose(new_g.get_radii()[-4:, 1], 0.25) + + pts_to_refine = np.array([[-2.5, -2.5], [-2.5, -0.5], [-2.5, 0.5], [-1.55, -2.5]]) + radius = np.array([[0.5, 0.5], [0.5, 0.5], [0.5, 0.5], [0.45, 0.5]]) + + for i in range(2): + for j in range(2): + subset = new_g.get_theta()[(2 * i + j) :: 4] + correct = pts_to_refine + np.array([2 * i - 1, 2 * j - 1]) * radius * 0.5 + np.testing.assert_allclose(subset, correct) + + +# BENCHMARK + +n_arms = 4 +n_theta_1d = 10 + + +def bench_f(): + null_hypos = [grid.HyperPlane(-np.identity(n_arms)[i], 2) for i in range(n_arms)] + t, r = grid._cartesian_gridpts( + np.full(n_arms, -3.5), np.full(n_arms, 1.0), np.full(n_arms, n_theta_1d) + ) + g = grid.init_grid(t, r).add_null_hypos(null_hypos).prune() + return g + + +def benchmark(f, iter=3): + runtimes = [] + for i in range(iter): + start = time.time() + f() + end = time.time() + runtimes.append(end - start) + return runtimes + + +if __name__ == "__main__": + print(benchmark(bench_f, iter=3)) diff --git a/tests/test_models.py b/tests/test_models.py new file mode 100644 index 00000000..8336e748 --- /dev/null +++ b/tests/test_models.py @@ -0,0 +1,54 @@ +import jax.numpy as jnp +import numpy as np +import pandas as pd +import scipy.stats + +import imprint as ip +import imprint.models.fisher_exact as fisher +from imprint.models.ztest import ZTest1D + + +def test_ztest(snapshot): + g = ip.cartesian_grid([-1], [1], n=[10], null_hypos=[ip.hypo("x < 0")]) + # lam = -1.96 because we negated the statistics so we can do a less than + # comparison. + lam = -1.96 + K = 2**13 + rej_df = ip.validate(ZTest1D, g, lam, K=K) + pd.testing.assert_frame_equal(rej_df, snapshot(rej_df)) + + true_err = 1 - scipy.stats.norm.cdf(-g.get_theta()[:, 0] - lam) + + tie_est = rej_df["tie_sum"] / K + tie_std = scipy.stats.binom.std(n=K, p=true_err) / K + n_stds = (tie_est - true_err) / tie_std + assert np.all(np.abs(n_stds) < 1.2) + + calibrate_df = ip.calibrate(ZTest1D, g) + pd.testing.assert_frame_equal(calibrate_df, snapshot(calibrate_df)) + + +def test_jax_hypergeom(): + np.testing.assert_allclose( + fisher.hypergeom_logpmf(3, 20, 10, 10), + scipy.stats.hypergeom.logpmf(3, 20, 10, 10), + ) + np.testing.assert_allclose( + fisher.hypergeom_logcdf(3, 20, 10, 10), + scipy.stats.hypergeom.logcdf(3, 20, 10, 10), + ) + np.testing.assert_allclose( + jnp.exp(fisher.hypergeom_logcdf(3, 20, 10, 10)), + scipy.stats.hypergeom.cdf(3, 20, 10, 10), + ) + + +def test_fisher_exact_jax_vs_scipy(): + model = fisher.FisherExact(0, 10, n=10) + np.random.seed(0) + theta = np.random.rand(5, 2) + null_truth = np.ones((5, 1), dtype=bool) + np.testing.assert_allclose( + fisher._sim_scipy(model.samples[0:10], theta, null_truth), + model.sim_batch(0, 10, theta, null_truth), + ) diff --git a/tests/test_normal.py b/tests/test_normal.py new file mode 100644 index 00000000..95817de9 --- /dev/null +++ b/tests/test_normal.py @@ -0,0 +1,90 @@ +import numpy as np + +import imprint.bound.normal as normal + + +def fwd_qcp_derivative(q, scale, v, f0): + return 0.5 * (scale * v) ** 2 + np.log(f0) / q**2 + + +def bwd_qcp_derivative(q, scale, v, alpha): + return 0.5 * (scale * v) ** 2 + np.log(alpha) / (q - 1) ** 2 + + +def tile_fwd_qcp_derivative(q, scale, vs, f0): + mv = np.max((scale * vs) ** 2) + return 0.5 * mv + np.log(f0) / q**2 + + +def tile_bwd_qcp_derivative(q, scale, vs, alpha): + mv = np.max((scale * vs) ** 2) + return 0.5 * mv + np.log(alpha) / (q - 1) ** 2 + + +def test_fwd_qcp_solver(): + scale = 2.0 + v = -0.321 + f0 = 0.025 + fwd_solver = normal.ForwardQCPSolver(scale) + q_opt = fwd_solver.solve(v, f0) + q_opt_deriv = fwd_qcp_derivative(q_opt, scale, v, f0) + np.testing.assert_almost_equal(q_opt_deriv, 0.0) + + +def test_fwd_qcp_solver_inf(): + scale = 2.0 + v = 0 + f0 = 0.025 + fwd_solver = normal.ForwardQCPSolver(scale) + q_opt = fwd_solver.solve(v, f0) + np.testing.assert_almost_equal(q_opt, np.inf) + + +def test_bwd_qcp_solver(): + scale = 2.0 + v = -0.321 + alpha = 0.025 + bwd_solver = normal.BackwardQCPSolver(scale) + q_opt = bwd_solver.solve(v, alpha) + q_opt_deriv = bwd_qcp_derivative(q_opt, scale, v, alpha) + np.testing.assert_almost_equal(q_opt_deriv, 0.0) + + +def test_tile_fwd_qcp_solver(): + scale = 3.2 + vs = np.array([-0.1, 0.2]) + f0 = 0.025 + fwd_solver = normal.TileForwardQCPSolver(scale) + q_opt = fwd_solver.solve(vs, f0) + q_opt_deriv = tile_fwd_qcp_derivative(q_opt, scale, vs, f0) + np.testing.assert_almost_equal(q_opt_deriv, 0.0) + + +def test_tile_bwd_qcp_solver(): + scale = 1.2 + vs = np.array([-0.3, 0.1]) + alpha = 0.025 + bwd_solver = normal.TileBackwardQCPSolver(scale) + q_opt = bwd_solver.solve(vs, alpha) + q_opt_deriv = tile_bwd_qcp_derivative(q_opt, scale, vs, alpha) + np.testing.assert_almost_equal(q_opt_deriv, 0.0) + + +def test_fwd_bwd_invariance(): + scale = 2.0 + v = -0.321 + f0 = 0.025 + q = 3.2 + fwd_bound = normal.tilt_bound_fwd(q, scale, v, f0) + bwd_bound = normal.tilt_bound_bwd(q, scale, v, fwd_bound) + np.testing.assert_almost_equal(bwd_bound, f0) + + +def test_tile_fwd_bwd_invariance(): + scale = 1.2 + vs = np.array([-0.3, 0.1]) + f0 = 0.025 + q = 5.1 + fwd_bound = normal.tilt_bound_fwd_tile(q, scale, vs, f0) + bwd_bound = normal.tilt_bound_bwd_tile(q, scale, vs, fwd_bound) + np.testing.assert_almost_equal(bwd_bound, f0) diff --git a/research/berry/.gitignore b/tutorials/.gitignore similarity index 100% rename from research/berry/.gitignore rename to tutorials/.gitignore diff --git a/tutorials/basket.ipynb b/tutorials/basket.ipynb new file mode 100644 index 00000000..c88fb187 --- /dev/null +++ b/tutorials/basket.ipynb @@ -0,0 +1,1125 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# An introduction to analyzing trial designs with Imprint.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We're going to analyze the Type I Error a three arm basket trial following the design of [Berry et al. (2013)](https://pubmed.ncbi.nlm.nih.gov/23983156/).\n", + "\n", + "Critically, the log-odds for each arm of the trial are assumed to be drawn from a shared normal distribution. This hierarchical design leads to a sharing effect between the log-odds for the different arms.\n", + "\n", + "\\begin{align}\n", + "\\mathbf{y} &\\sim \\mathrm{Binomial}( \\mathbf{p}, \\mathbf{n})\\\\\n", + "\\mathbf{p} &= \\mathrm{expit}(\\mathbf{\\theta} + logit(\\mathbf{p_1}))\\\\\n", + "\\mathbf{\\theta} &\\sim N(\\mu, \\sigma^2)\\\\\n", + "\\mu &\\sim N(\\mu_0, S^2)\\\\\n", + "\\sigma^2 &\\sim \\mathrm{InvGamma}(0.0005, 0.000005)\\\\\n", + "\\end{align}\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 0: Type I Error" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.special import logit\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "import imprint as ip\n", + "import model\n", + "\n", + "# This is the binomial n parameter, the number of patients recruited to each arm of the trial.\n", + "n_arm_samples = 35" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "g = ip.cartesian_grid(\n", + " theta_min=[-3.5, -3.5, -3.5],\n", + " theta_max=[1.0, 1.0, 1.0],\n", + " n=[16, 16, 16],\n", + " null_hypos=[ip.hypo(f\"theta{i} < {logit(0.1)}\") for i in range(3)],\n", + ")\n", + "validation_df = ip.validate(\n", + " model.BayesianBasket,\n", + " g,\n", + " 0.05,\n", + " K=2000,\n", + " model_kwargs={\"n_arm_samples\": n_arm_samples},\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAB+EAAAM3CAYAAADiByJWAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdd1ib573/8bfENGAQeK/YFvHMcCLspNnDKGnatGkSsNukI21j1PS0Z/SXoHLa03F6Th3R5LRN0tbI7kpXDLgZnQmy0+wmNrLj7IHw3gYZmw16fn+4UsE2W+hB8HldF1cIesYHEJhb3/v+3hbDMAxERERERERERERERERERERkyKxmBxARERERERERERERERERERktVIQXERERERERERERERERERGJEhXhRUREREREREREREREREREokRFeBERERERERERERERERERkShREV5ERERERERERERERERERCRKVIQXERERERERERERERERERGJEhXhRUREREREREREREREREREokRFeBERERERERERERERERERkShREV5ERERERERERERERERERCRKVIQXERERERERERERERERERGJEhXhRUREREREREREREREREREokRFeBERERERERERERERERERkShREV5ERERERERERERERERERCRKVIQXERERERERERERERERERGJEhXhRUREREREREREREREREREokRFeBERERERERERERERERERkShREV5ERERERERERERERERERCRKVIQXERERERERERERERERERGJEhXhRUREREREREREREREREREokRFeBERERERERERERERERERkShREV5EZISprKzE5XLhdDrJy8sjNzcXi8VCMBjs8ZxAIEBubi7Z2dl4vd7YhR3FSktLyc3NjbyVlpaaHWnM8/l8FBYWRn4msrOzycvLw+124/f7h/XegUAg8nOZnZ0dubfL5Rr2e4uIiIiIiIiIiIhIfFERXkRkhAkEAgQCAbZs2YLf7ycQCPR5jsvlIhAIEAwGcblcvRbspXeBQIC8vDzWr19PVVUVNTU1VFVVsXr1alwul9nxxiyXy0VhYSF2ux2Px0NVVRUejwc4OWEiLy+PwsLCqD/3wz9T4QkxHo+H+vp6amtrKSkpoby8nLy8PJxOZ79+VkVERERERERERERk9LMYhmGY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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 411, + "width": 1008 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "ip.setup_nb()\n", + "plt.figure(figsize=(10, 4), constrained_layout=True)\n", + "theta_tiles = g.get_theta()\n", + "t2 = np.unique(theta_tiles[:, 2])[4]\n", + "selection = theta_tiles[:, 2] == t2\n", + "\n", + "plt.subplot(1, 2, 1)\n", + "plt.title(f\"slice: $\\\\theta_2 \\\\approx$ {t2:.1f}\")\n", + "cntf = plt.tricontourf(\n", + " theta_tiles[selection, 0],\n", + " theta_tiles[selection, 1],\n", + " validation_df[\"tie_est\"][selection],\n", + ")\n", + "plt.tricontour(\n", + " theta_tiles[selection, 0],\n", + " theta_tiles[selection, 1],\n", + " validation_df[\"tie_est\"][selection],\n", + " colors=\"k\",\n", + " linestyles=\"-\",\n", + " linewidths=0.5,\n", + ")\n", + "cbar = plt.colorbar(cntf)\n", + "cbar.set_label(\"Simulated fraction of Type I errors\")\n", + "plt.xlabel(r\"$\\theta_0$\")\n", + "plt.ylabel(r\"$\\theta_1$\")\n", + "plt.axis(\"square\")\n", + "\n", + "plt.subplot(1, 2, 2)\n", + "cntf = plt.tricontourf(\n", + " theta_tiles[selection, 0],\n", + " theta_tiles[selection, 1],\n", + " validation_df[\"tie_bound\"][selection],\n", + ")\n", + "plt.tricontour(\n", + " theta_tiles[selection, 0],\n", + " theta_tiles[selection, 1],\n", + " validation_df[\"tie_bound\"][selection],\n", + " colors=\"k\",\n", + " linestyles=\"-\",\n", + " linewidths=0.5,\n", + ")\n", + "cbar = plt.colorbar(cntf)\n", + "cbar.set_label(\"Bound on the fraction of Type I errors\")\n", + "plt.xlabel(r\"$\\theta_0$\")\n", + "plt.ylabel(r\"$\\theta_1$\")\n", + "plt.axis(\"square\")\n", + "\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 1: Constructing a parameter grid\n", + "\n", + "We're going to use the `grid.make_cartesian_gridpts` function to produce a 3 dimensional set of points covering $\\theta_i \\in [-3.5, 1.0]$. The points lie at the center of (hyper)rectangular cells. The cells cover the whole box.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "g_raw = ip.cartesian_grid(\n", + " theta_min=[-3.5, -3.5, -3.5], theta_max=[1.0, 1.0, 1.0], n=[16, 16, 16]\n", + ")\n", + "type(g_raw)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idactiveparent_idtheta0theta1theta2radii0radii1radii2
04159720287677710336True0-3.359375-3.359375-3.3593750.1406250.1406250.140625
14159720287677710337True0-3.359375-3.359375-3.0781250.1406250.1406250.140625
24159720287677710338True0-3.359375-3.359375-2.7968750.1406250.1406250.140625
34159720287677710339True0-3.359375-3.359375-2.5156250.1406250.1406250.140625
44159720287677710340True0-3.359375-3.359375-2.2343750.1406250.1406250.140625
\n", + "
" + ], + "text/plain": [ + " id active parent_id theta0 theta1 theta2 \\\n", + "0 4159720287677710336 True 0 -3.359375 -3.359375 -3.359375 \n", + "1 4159720287677710337 True 0 -3.359375 -3.359375 -3.078125 \n", + "2 4159720287677710338 True 0 -3.359375 -3.359375 -2.796875 \n", + "3 4159720287677710339 True 0 -3.359375 -3.359375 -2.515625 \n", + "4 4159720287677710340 True 0 -3.359375 -3.359375 -2.234375 \n", + "\n", + " radii0 radii1 radii2 \n", + "0 0.140625 0.140625 0.140625 \n", + "1 0.140625 0.140625 0.140625 \n", + "2 0.140625 0.140625 0.140625 \n", + "3 0.140625 0.140625 0.140625 \n", + "4 0.140625 0.140625 0.140625 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_raw.df.head()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we need to define the null hypothesis space. There are built-in tools in imprint for translating a symbolic statement to a bounding plane for a null hypothesis space.\n", + "\n", + "Once we have defined these planes, we attach the null hypothesis to the grid created above using `Grid.add_null_hypos`. For each hyperrectangular cell, the method intersects with the null hypothesis boundaries and splits into multiple tiles whenever a cell is intersected by a null hypothesis plane.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "-2.197224577336219" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "logit(0.1)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "null_hypos = [\n", + " ip.hypo(f\"theta0 < -2.1972\"),\n", + " ip.hypo(f\"theta1 < -2.1972\"),\n", + " ip.hypo(f\"theta2 < -2.1972\"),\n", + "]\n", + "g_unpruned = g_raw.add_null_hypos(null_hypos)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idactiveparent_idtheta0theta1theta2radii0radii1radii2null_truth0null_truth1null_truth2
04159720287677710336True0-3.359375-3.359375-3.3593750.1406250.1406250.140625TrueTrueTrue
14159720287677710337True0-3.359375-3.359375-3.0781250.1406250.1406250.140625TrueTrueTrue
24159720287677710338True0-3.359375-3.359375-2.7968750.1406250.1406250.140625TrueTrueTrue
34159720287677710339True0-3.359375-3.359375-2.5156250.1406250.1406250.140625TrueTrueTrue
44159720287677710340False0-3.359375-3.359375-2.2343750.1406250.1406250.140625TrueTrueTrue
\n", + "
" + ], + "text/plain": [ + " id active parent_id theta0 theta1 theta2 \\\n", + "0 4159720287677710336 True 0 -3.359375 -3.359375 -3.359375 \n", + "1 4159720287677710337 True 0 -3.359375 -3.359375 -3.078125 \n", + "2 4159720287677710338 True 0 -3.359375 -3.359375 -2.796875 \n", + "3 4159720287677710339 True 0 -3.359375 -3.359375 -2.515625 \n", + "4 4159720287677710340 False 0 -3.359375 -3.359375 -2.234375 \n", + "\n", + " radii0 radii1 radii2 null_truth0 null_truth1 null_truth2 \n", + "0 0.140625 0.140625 0.140625 True True True \n", + "1 0.140625 0.140625 0.140625 True True True \n", + "2 0.140625 0.140625 0.140625 True True True \n", + "3 0.140625 0.140625 0.140625 True True True \n", + "4 0.140625 0.140625 0.140625 True True True " + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_unpruned.df.head()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, we can optionally prune our grid by calling `Grid.prune(g)`. Pruning will remove any tiles that are entirely in the alternative hypothesis space for all arms. Since our goal is to calculate type I error, we do not care about the alternative hypothesis space. For a false positive to occur, the truth must be negative!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "g = g_unpruned.prune()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(5730, 4002)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g_unpruned.n_tiles, g.n_tiles" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "g = ip.cartesian_grid(\n", + " theta_min=[-3.5, -3.5, -3.5],\n", + " theta_max=[1.0, 1.0, 1.0],\n", + " n=[16, 16, 16],\n", + " null_hypos=[ip.hypo(f\"theta{i} < {logit(0.1)}\") for i in range(3)],\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**At this point, you can skip to the next section if you're not interested in learning about the details of the grid object.**\n", + "\n", + "Here, we'll grab a few of the important variables from the grid object and examine them. First, let's look at the center of each tile in the grid. The shape of the array will be `(n_tiles, 3)` because we have 3 parameter values per point.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4002, 3)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "theta_tiles = g.get_theta()\n", + "theta_tiles.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-3.359375 , -3.078125 , -2.796875 , -2.515625 , -2.28611229, -2.234375 , -2.14548729,\n", + " -1.953125 , -1.671875 , -1.390625 , -1.109375 , -0.828125 , -0.546875 , -0.265625 ,\n", + " 0.015625 , 0.296875 , 0.578125 , 0.859375 ])" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "unique_t2 = np.unique(theta_tiles[:, 2])\n", + "unique_t2" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the figure below, we plot $\\theta_0$ and $\\theta_1$ for a couple different values of $\\theta_2$. You can see that the shape of the domain in $(\\theta_0, \\theta_1)$ changes depending on whether $\\theta_2$ is in the null space for arm 2 or not. The solid white region without any tile centers in the right figure represents the region where the alternative hypothesis is true for all three arms. The solid black lines represent the boundaries of the arm 0 and the arm 1 null hypothesis boundary planes.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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swzlqfo8mqmlrh2d1rt8+XLRaDTOnEf/+OJlX5sAqJZBzTM2Pi9oEAdmc3PzzI2uZrNZbG5u9mW97B2ZWsru6Ga91y8nDZrfGn9nYM11PTbZOzK16MjZkalFx3BbbHyOvirPo5la6trRr3nUxicAnQxqJvVW94Q++eSTePXqVcfbvHr1Kj799NNadGRqKbujm/W6Mcjmuh6b7B2ZWnTk7MjUoiN3C/WU6TGYpaWuHf2aRwFgGC4VRVEMO2KUbW9vx9TUVEREtNvtmJycvND97e/vx/j4eOzu7p5521arFS9evBjYCWoydGRqKbujl/WOaoy9HVM/Xz32tfavfxL7e3/q+H3naa7rscnekalFR86OTC06ht/S71mG8lV1Hs3UUteOfs6jn//D38V33j77RJwA1NOgZlKv+Exmb2+v68Fid3c39vb2Kt2RqaXsjl7W64fzNNf12GTvyNSiI2dHphYduVuop0yPwSwtde3o5zz68uXLvtwPAPTCxmcyY2Nj0Wq1urptq9WKsbHBPGuapSNTS9kdvazXD+dpruuxyd6RqUVHzo5MLTpyt1BPmR6DWVrq2tHPefStt97qy/0AQC9sfCbTaDRifn6+q9suLCwM7G1FWToytZTd0ct6/XCe5roem+wdmVp05OzI1KIjdwv1lOkxmKWlrh39nEf9XQXAUPTtNEk1VeWzaGbpyNQyqmfRdFb3+nVkatGRsyNTi47htjir++ir8jyaqaWuHc7qDkAZnNW9Rm7cuBH379+PZrN54vXNZjPu378fN27cqEVHppayO85ar1v/9JvfDKy5rscme0emFh05OzK16MjdQj1legxmaalrx1nrXb582as5Acirb1uoNTXIV0lsbm4Wi4uLRavVKiKiaLVaxeLiYinPrGfsyNRSdsdp6z148OCNr//4px+e+Az7oJvremyyd2Rq0ZGzI1OLjuG0eMXn6KvDPJqppa4dndZ7/bor73zXKz4B6Mmg5plLRVEUg99era7t7e2YmpqKiIh2ux2Tk5N9X2N/fz/29vZibGxsqM+mZunI1FJ2x2nrHf36892/xM1fPj72fRu/mI13r367lOa6HpvsHZladOTsyNSio9yWMmYZBqtO82imlrp2dFrv4Lrdvzbi/V/94dh1R+dRAHjdoOaZi71/llI0Go24cuXKsDPSdETkaSm747T1eukYdHNdj032jog8LTpydkTkadHxpkwt1FOmx2CWlrp2dFrv4LqXf/6mtB4A6MSHsQAAAAAAlWPjEwAAAACoHBufAAAAAEDl2PgEAAAAACrHxicAAAAAUDk2PgEAAACAyrHxCQAAAABUjo1PAAAAAKBybHwCAAAAAJVj4xMAAAAAqBwbnwAAAABA5dj4BAAAAAAqx8YnAAAAAFA5Nj4BAAAAgMqx8QkAAAAAVI6NTwAAAACgcmx8AgAAAACVY+MTAAAAAKgcG58AAAAAQOXY+AQAAAAAKsfG5wjY39+Pr7/+Ovb393Ukaym747T1eukYdHNdj032jkwtOnJ2ZGrRkbuFesr0GMzSUteOTutl+TMBgAM2PhN7+vRpLC4uxvj4eFy9ejXGx8djcXExnj59WsuOTC1ld5y23sOHD9/4+s8++mgozXU9Ntk7MrXoyNmRqUVH7hbqKdNjMEtLXTs6rff6de+9995AGgCgZwUX0m63i4goIqJot9t9u9/V1dWi2Wwe3vfRS7PZLFZXV/u21ih0ZGopu6PTeiddGmNvF99f+t2xy8r93w60ua7HJntHphYdOTsytegYXsugZhnKU/V5NFNLXTs6rXf58uWi0WicOY/+8cXLvjYBUC2DmmdsfF7QIA7M5ubmmRtdzWaz2Nzc7Mt62TsytZTd0c16r19OGjS/Nf7OwJrremyyd2Rq0ZGzI1OLjuG22PgcfVWeRzO11LWjX/OojU8AOhnUTOqt7gl98skn8erVq463efXqVXz66ae16MjUUnZHN+t1Y5DNdT022TsytejI2ZGpRUfuFuop02MwS0tdO/o1jwLAMFwqiqIYdsQo297ejqmpqYiIaLfbMTk5eaH729/fj/Hx8djd3T3ztq1WK168eBGNRv/3r7N0ZGopu6OX9Y5qjL0dUz9fPfa19q9/Evt7f+r4fedpruuxyd6RqUVHzo5MLTqG39LvWYbyVXUezdRS145+zqOf/8PfxXfeHjt3CwDVNqiZ1Cs+k9nb2+t6sNjd3Y29vb1Kd2RqKbujl/X64TzNdT022TsytejI2ZGpRUfuFuop02MwS0tdO/o5j758+bIv9wMAvbDxmczY2Fi0Wq2ubttqtWJsbDDPmmbpyNRSdkcv6/XDeZrremyyd2Rq0ZGzI1OLjtwt1FOmx2CWlrp29HMefeutt/pyPwDQCxufyTQajZifn+/qtgsLCwN7W1GWjkwtZXf0sl4/nKe5rscme0emFh05OzK16MjdQj1legxmaalrRz/nUX9XATAUfTtNUk1V+SyaWToytYzqWTSd1b1+HZladOTsyNSiY7gtzuo++qo8j2ZqqWuHs7oDUAZnda+RGzduxP3796PZbJ54fbPZjPv378eNGzdq0ZGppeyOs9br1j/95jcDa67rscnekalFR86OTC06crdQT5keg1la6tpx1nqXL1/2ak4A8urbFmpNDfJVEpubm8Xi4mLRarWKiCharVaxuLhYyjPrGTsytZTdcdp6Dx48eOPrP/7phyc+wz7o5roem+wdmVp05OzI1KJjOC1e8Tn66jCPZmqpa0en9V6/7so73/WKTwB6Mqh55lJRFMXgt1era3t7O6ampiIiot1ux+TkZN/X2N/fj729vRgbGxvqs6lZOjK1lN1x2npHv/589y9x85ePj33fxi9m492r3y6lua7HJntHphYdOTsytegot6WMWYbBqtM8mqmlrh2d1ju4bvevjXj/V384dt3ReRQAXjeoeeZi75+lFI1GI65cuTLsjDQdEXlayu44bb1eOgbdXNdjk70jIk+LjpwdEXladLwpUwv1lOkxmKWlrh2d1ju47uWfvymtBwA68WEsAAAAAEDl2PgEAAAAACrHxicAAAAAUDk2PgEAAACAyrHxCQAAAABUjo1PAAAAAKBybHwCAAAAAJVj4xMAAAAAqBwbnwAAAABA5dj4BAAAAAAqx8YnAAAAAFA5Nj4BAAAAgMqx8QkAAAAAVI6NTwAAAACgcmx8AgAAAACVY+MTAAAAAKgcG58AAAAAQOXY+AQAAAAAKsfGJwAAAABQOTY+AQAAAIDKsfE5Avb39+Prr7+O/f19Hclayu44bb1eOgbdXNdjk70jU4uOnB2ZWnTkbqGeMj0Gs7TUtaPTeln+TADggI3PxJ4+fRqLi4sxPj4eV69ejfHx8VhcXIynT5/WsiNTS9kdp6338OHDN77+s48+GkpzXY9N9o5MLTpydmRq0ZG7hXrK9BjM0lLXjk7rvX7de++9N5AGAOhZwYW02+0iIoqIKNrtdt/ud3V1tWg2m4f3ffTSbDaL1dXVvq01Ch2ZWsru6LTeSZfG2NvF95d+d+yycv+3A22u67HJ3pGpRUfOjkwtOobXMqhZhvJUfR7N1FLXjk7rXb58uWg0GmfOo3988bKvTQBUy6DmGRufFzSIA7O5uXnmRlez2Sw2Nzf7sl72jkwtZXd0s97rl5MGzW+NvzOw5roem+wdmVp05OzI1KJjuC02PkdflefRTC117ejXPGrjE4BOBjWTeqt7Qp988km8evWq421evXoVn376aS06MrWU3dHNet0YZHNdj032jkwtOnJ2ZGrRkbuFesr0GMzSUteOfs2jADAMl4qiKIYdMcq2t7djamoqIiLa7XZMTk5e6P729/djfHw8dnd3z7xtq9WKFy9eRKPR//3rLB2ZWsru6GW9oxpjb8fUz1ePfa3965/E/t6fOn7feZrremyyd2Rq0ZGzI1OLjuG39HuWoXxVnUcztdS1o5/z6Of/8HfxnbfHzt0CQLUNaib1is9k9vb2uh4sdnd3Y29vr9IdmVrK7uhlvX44T3Ndj032jkwtOnJ2ZGrRkbuFesr0GMzSUteOfs6jL1++7Mv9AEAvbHwmMzY2Fq1Wq6vbtlqtGBsbzLOmWToytZTd0ct6/XCe5roem+wdmVp05OzI1KIjdwv1lOkxmKWlrh39nEffeuutvtwPAPTCxmcyjUYj5ufnu7rtwsLCwN5WlKUjU0vZHb2s1w/naa7rscnekalFR86OTC06crdQT5keg1la6trRz3nU31UADEXfTpNUU1U+i2aWjkwto3oWTWd1r19HphYdOTsytegYbouzuo++Ks+jmVrq2uGs7gCUwVnda+TGjRtx//79aDabJ17fbDbj/v37cePGjVp0ZGopu+Os9br1T7/5zcCa63pssndkatGRsyNTi47cLdRTpsdglpa6dpy13uXLl72aE4C8+raFWlODfJXE5uZmsbi4WLRarSIiilarVSwuLpbyzHrGjkwtZXectt6DBw/e+PqPf/rhic+wD7q5rscme0emFh05OzK16BhOi1d8jr46zKOZWura0Wm916+78s53veITgJ4Map65VBRFMfjt1era3t6OqampiIhot9sxOTnZ9zX29/djb28vxsbGhvpsapaOTC1ld5y23tGvP9/9S9z85eNj37fxi9l49+q3S2mu67HJ3pGpRUfOjkwtOsptKWOWYbDqNI9maqlrR6f1Dq7b/Wsj3v/VH45dd3QeBYDXDWqeudj7ZylFo9GIK1euDDsjTUdEnpayO05br5eOQTfX9dhk74jI06IjZ0dEnhYdb8rUQj1l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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 349, + "width": 671 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(8, 5))\n", + "plt.subplot(1, 2, 1)\n", + "plt.title(f\"$\\\\theta_2 = {unique_t2[3]}$\")\n", + "selection = theta_tiles[:, 2] == unique_t2[3]\n", + "plt.plot(theta_tiles[selection, 0], theta_tiles[selection, 1], \"k.\")\n", + "plt.hlines(logit(0.1), -4, 2)\n", + "plt.vlines(logit(0.1), -4, 2)\n", + "plt.axis(\"square\")\n", + "plt.xlim(np.min(theta_tiles[:, 0]) - 0.2, np.max(theta_tiles[:, 0]) + 0.2)\n", + "plt.ylim(np.min(theta_tiles[:, 1]) - 0.2, np.max(theta_tiles[:, 1]) + 0.2)\n", + "\n", + "plt.subplot(1, 2, 2)\n", + "plt.title(f\"$\\\\theta_2 = {unique_t2[10]}$\")\n", + "selection = theta_tiles[:, 2] == unique_t2[10]\n", + "plt.plot(theta_tiles[selection, 0], theta_tiles[selection, 1], \"k.\")\n", + "plt.hlines(logit(0.1), -4, 2)\n", + "plt.vlines(logit(0.1), -4, 2)\n", + "plt.axis(\"square\")\n", + "plt.xlim(np.min(theta_tiles[:, 0]) - 0.2, np.max(theta_tiles[:, 0]) + 0.2)\n", + "plt.ylim(np.min(theta_tiles[:, 1]) - 0.2, np.max(theta_tiles[:, 1]) + 0.2)\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's explore another useful array produced for the grid. The `g.null_truth` array will contain whether the null hypothesis is true for each arm for each tile. Naturally, this has the same shape as `theta_tiles`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(4002, 3)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "g.get_null_truth().shape" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since we've pruned the grid, the tiles are all in the null hypothesis space for at least one arm.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.all(np.any(g.get_null_truth(), axis=1))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Part 2: Simulating to compute type I error rates and gradients\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we've constructed and examined our computation grid, let's actually compute type I error and its gradient.\n", + "\n", + "First, in order to do this, we need to build an inference algorithm that tells us whether to reject or not given a particular dataset. We're going to use an implementation of INLA applied to the model described above. The `fi.rejection_inference` function below will implement this inference algorithm. The details of this inference are not particularly important to what we're doing here so we'll leave it unexplained. Please check out the [intro_to_inla.ipynb](./intro_to_inla.ipynb) notebook if you're interested in learning more.\n", + "\n", + "First, we'll check that the inference does something reasonable. It rejects the null for arms 1 and 2 where the success counts are 5 and 9 but does not reject the null for arm 0 where the success count is 4. This seems reasonable!\n" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "DeviceArray([[False, True, True]], dtype=bool)" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = [[4, 5, 9]]\n", + "n = [[35, 35, 35]]\n", + "fi = basket.FastINLA(n_arms=3, critical_value=0.95)\n", + "fi.rejection_inference(np.stack((y, n), axis=-1))" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [], + "source": [ + "import jax\n", + "import jax.numpy as jnp\n", + "\n", + "\n", + "class BayesianBasket:\n", + " def __init__(self, seed, K):\n", + " np.random.seed(seed)\n", + " self.samples = np.random.uniform(size=(K, n_arm_samples, 3))\n", + " self.fi = basket.FastINLA(n_arms=3)\n", + " self.family = \"binomial\"\n", + " self.family_params = {\"n\": n_arm_samples}\n", + "\n", + " def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False):\n", + " # 1. Calculate the binomial count data.\n", + " # The sufficient statistic for binomial is just the number of uniform draws\n", + " # above the threshold probability. But the `p_tiles` array has shape (n_tiles,\n", + " # n_arms). So, we add empty dimensions to broadcast and then sum across\n", + " # n_arm_samples to produce an output `y` array of shape: (n_tiles,\n", + " # sim_size, n_arms)\n", + "\n", + " p = jax.scipy.special.expit(theta)\n", + " y = jnp.sum(self.samples[None] < p[:, None, None], axis=2)\n", + "\n", + " # 2. Determine if we rejected each simulated sample.\n", + " # rejection_fnc expects inputs of shape (n, n_arms) so we must flatten\n", + " # our 3D arrays. We reshape exceedance afterwards to bring it back to 3D\n", + " # (n_tiles, sim_size, n_arms)\n", + " y_flat = y.reshape((-1, 3))\n", + " n_flat = jnp.full_like(y_flat, n_arm_samples)\n", + " data = jnp.stack((y_flat, n_flat), axis=-1)\n", + " test_stat_per_arm = self.fi.test_inference(data).reshape(y.shape)\n", + "\n", + " return jnp.min(\n", + " jnp.where(null_truth[:, None, :], test_stat_per_arm, jnp.inf), axis=-1\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "sims = BayesianBasket(0, 100).sim_batch(0, 100, theta_tiles, g.get_null_truth())" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "rejections = sims < 0.05\n", + "n_rejections = np.sum(rejections, axis=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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YLp+8vPzL1vLgdo3rq1BSmn+HWIwGNrspTc1BDDJJyKiljhcn0iG3Nxc6PV66HQ69s6TVfR6PZKTk80m+KZtGImo40hMTGz695VW2jftxKHVahWNiYiIrj5M8olkaN7LkpSUZPY4080YwF5AQtNCjCtXrjR7PZSUlHD9BqIORq1WN+2s0fx7o6Xm8/H5nUJERC0xySeSYebMmVCr1di3b1+bw63z8/Ob/m3aJo06JoPB0NSD39Y2eYWFhdxGj6gDys7OBnD590ZLS5cuBQCu40FERK3inHwiGTQaDWbPno2cnByzw/WLioqahl23NW+fOobk5GSkpKRAr9eb7anT6/XIy8tjgxC1StSif9Q+paamIjU1FXl5ecjKymr1OyMnJwdqtRo5OTkOiJDaM9YPRAQAKkmSJEcHQXS1y8rKQlFREbKzs5GSktI0jL+goADp6ekALt6UsdelY9NqtVbNs2f1TCY6nQ7JyckwGAyIjY1FYWEhGwydmMFgQFpaGvR6/WXvtbnfU8fG+oGIWmKSTySIXq9HTk4OSkpKYDAYUFlZiaCgIKSmpiI7O5t7GXdwBQUFSEtLs/h4jUaD0tJSBSOi9k6r1TbVJ+ao1WrMmDGDC386qYKCAuTm5l62tZ5Wq0VmZqZjAyOHY/1ARG1hkk9ERERERETkJLjwHhEREREREZGTYJJPRERERERE5CSY5BMRERERERE5CSb5RERERERERE6CST4RERERERGRk2CST0REREREROQkmOQTEREREREROQkm+UREREREREROgkk+ERERERERkZNgkk9ERERERETkJJjkExERERERETkJJvlEREREREREToJJPhEREREREZGTYJJPRERERERE5CSY5BMRERERERE5CSb5RERERERERE6CST4RERERERGRk2CST0RETquoqAhpaWnQarVISEjAggULHB0SERERkaLcHB0AERGREjIyMlBUVITCwkLExsbCYDAgJiYGarUas2fPdnR4RERERIpQSZIkOToIIiIikdLS0lBUVITS0lLExsY2/T4jIwN5eXngVx8RERE5Kw7XJyIip5KVlYWCggIsXrz4sgQfABISEgAABQUFjgiNiIiISHFM8omIyGnodDosWLAAGo0Gqampf/p7UFAQAGDJkiX2Do2IiIjILpjkExGR00hLSwMA5OTktPp3tVoNADAYDHaKiIiIiMi+mOQTEZFTWLBgAfR6PWJjY5GSktLqMabkXq/X2zEyIiIiIvthkk9ERE5h/vz5AC7OyTeHyT0RERE5Oyb5RER01cvLy2vqpW9re7zi4mIAl4btExERETkbJvlERHTVM83BNzdM30Sn0wHAn1bdJyIiInIWTPKJiOiqptfrm4bha7Vas8cZDIam45jkExERkbNikk9ERFe13Nzcpn+3tm2eSUlJSdO/k5KSFI2JiIiIyFFUkiRJjg6CiIjIVgkJCU3D8C1VVVXFeflERETklJjkExHRVU2lUgG42Iu/ePFis8clJCQ0bbG3b9++y/5mMBiQlZUFvV4PtVoNg8EAjUbTNNefiIiI6GrB4fpERHTVat6Dr9VqoVarW/0BLm2fl5GRcVkZer0eMTExiIuLQ2FhIfLz81FYWAiDwYC4uLimVfuJiIiIrgZM8omI6KrVfJ59WyvrFxUVNf275bz9tLQ0xMbGIjMz87Lf5+bmorKyEunp6YKiJSIiIlIek3wiIrpqNe9lb2vF/CVLlgAANBrNZcfpdDrodDrMnDmz1fNmzJiBgoKCplEARERERO0dk3wiIrpqVVRUAGg7wTcYDCgoKACAP82xNyX/5s6Pi4sDgKbziYiIiNo7JvlERHTVMvXkt5Xk5+XlAbjYi99ySL9pGL+5802/Ly4ulhsqERERkV0wyScioquWqae9re3w5s+fDwCtrrxvGoZv7vyWi/YRERERtXdM8omI6Kql0WgAAEFBQa3+PS8vDwaDAZmZmU3HNmfpyvlcYZ+IiIiuFkzyiYjoqpWYmAgAqKys/NPf9Ho9MjIyEBsby/3uiYiIqMNgkk9ERFcttVqN1NRU6HS6P/3NtDVeaWmpAyIjIiIicgwm+UREdFVbvHgx9Hp90yJ6wMUEHwAKCwvbnK/f1t9sOY6IiIjI0dwcHQAREZEcarUahYWFyMrKapqbr9VqkZ+ff8VzY2NjodPpoNfrW11h35LV+4mIiIjaEyb5RER01UtJSbFpWH5iYiJ0Op3ZhfVMq+prtVo54RERERHZDYfrExFRh2Ua1m9ui7x9+/YBAGbMmGG3mIiIiIjkUEmSJDk6CCIiIkeJi4sDcCmhby4wMBApKSkWDf0nIiIiag/Yk09ERB1aYWEhKisrkZWVddnvMzIyEBQUhMWLFzsoMiIiIiLrsSefiIg6PIPBgKysLOj1eqjVahgMBmg0GuTk5Dg6NCIiIiKrMMknIiIiIiIichIcrk9ERERERETkJJjkExERERERETkJJvlEREREREREToJJPhEREREREZGTYJJPRERERERE5CSY5BMRERERERE5CSb5RERERERERE6CST4RERERERGRk2CST0REREREROQkmOQTEREREREROQkm+UREREREREROgkk+ERERERERkZNgkk9ERERERETkJJjkExERERERETkJJvlEREREREREToJJPhEREREREZGTYJJPRERERERE5CSY5BMRERERERE5CSb5RERERERERE6CST4RERERERGRk/j/eHCL4ckA7bUAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 411, + "width": 508 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(5, 4), constrained_layout=True)\n", + "select = theta_tiles[:, 2] == np.unique(theta_tiles[:, 2])[4]\n", + "plt.scatter(\n", + " theta_tiles[select, 0], theta_tiles[select, 1], c=n_rejections[select], s=50\n", + ")\n", + "cbar = plt.colorbar()\n", + "cbar.set_label(r\"Number of sims with p-value $<$ 0.05\")\n", + "plt.title(f\"slice: $\\\\theta_2 \\\\approx$ {t2:.1f}\")\n", + "plt.xlabel(r\"$\\theta_0$\")\n", + "plt.ylabel(r\"$\\theta_1$\")\n", + "plt.axis(\"square\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "CPU times: user 1min 43s, sys: 5.19 s, total: 1min 48s\n", + "Wall time: 37.9 s\n" + ] + } + ], + "source": [ + "%%time\n", + "validation_df = ip.validate(BayesianBasket, g, 0.05, K=2000)" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
tie_sumtie_esttie_cp_boundtie_bound
000.00000.0023000.006915
100.00000.0023000.007188
210.00050.0033150.010373
350.00250.0065410.019714
4190.00950.0158720.044396
\n", + "
" + ], + "text/plain": [ + " tie_sum tie_est tie_cp_bound tie_bound\n", + "0 0 0.0000 0.002300 0.006915\n", + "1 0 0.0000 0.002300 0.007188\n", + "2 1 0.0005 0.003315 0.010373\n", + "3 5 0.0025 0.006541 0.019714\n", + "4 19 0.0095 0.015872 0.044396" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "validation_df.head()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next, the meat of the type I error calculation will be done by `binomial_accumulator`. This is a JAX function that will just in time compile into a very fast compiled version when passed a function that implements the rejection inference. Then, we call the JIT function `accumulator` and pass it the necessary information:\n", + "\n", + "- the array of tile centers\n", + "- the truth value of each hypothesis for each tile.\n", + "- the simulated data.\n", + "\n", + "Internally, this function will simulate `sim_size` trials for each tile and return:\n", + "\n", + "- `typeI_sum`: the number of simulations during which any arm had a false rejections (family-wise error).\n", + "- `typeI_score`: the score/gradient of the typeI_sum output with respect to the true parameter values.\n", + "\n", + "Here, we are running 2000 simulations for each of 3185 tiles.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Before continuing, let's look at a couple slices of this type I error grid:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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iOqO+pI/xFyzCEL1I1tqUnwoGSmSkZEheh8p2pDjGOsqrqlCRERERERERERERCQRfYoPNR0FUts25DjGuoojVeqRtm3b4tChQwAAJycnmJjw5acHS1JSUmmPgEOHDsHNzc3IR0RUN/CzVXcUFhaW9vxu27atQdpwdXXF5cuXDfK79eHq6mrsQyAiPTF/0IOO10hEhsHPVt1R3/JHUlKSZNcsJWuQGFJt25DjGOsqXtXWIxYWFmjfvr2xD4NIFDc3N1FzVBJRzfCz9fAz9JB7ExMTvkeISBLMH/Qw4TUSkWHws/Xwq0/5Q8rjELP4u7HbkOMY6ypO/0VEREREREREREREJBFHR0fR25ZMqVXTIkdt25DjGOsqFlWIiIiIiIiIiIiIiCRSUnwQswZJydom3t7esrYhxzHWVSyqEBERERERERERERFJpGzxobqiRcnjNS1Y1LYNOY6xrmJRhYiIiIiIiIiIiIhIIsHBwaX/LhnlUZmEhAQAQEhIiKxtyHGMdRWLKkREREREREREREREElGr1dBoNADuFiQqUnatkn79+snahhzHWFexqEJEREREREREREREJKE5c+YAANasWVPpNqtXrwYATJ48udJtqpqaq7ZtSHWM9Y1CEATB2AdBRAQAV65cQePGjQEAly9fhoeHh5GPiKhu4GeLiIiI6H68RiIyDH62iO4KDQ1FeHg44uPjK1yPxMfHBxkZGcjMzKxy/7Fjx1Za+JCqDX33r49YVCEiIiIiIiIiIiIikphWq0VoaCgSEhIQERFRWrSo7Of3UigUpf+u7DZ+bduo7f71EYsqREREREREREREREQGEh4ejiVLlkCtVgMoLliEhIRg1qxZVe63YMECzJ07F3PmzKl2W33bkGr/+oRFFSIiIiIiIiIiIiIiIhG4UD0REREREREREREREZEILKoQERERERERERERERGJwKIKERERERERERERERGRCCyqEBERERERERERERERicCiChERERERERERERERkQgsqhAREREREREREREREYnAogoREREREREREREREZEILKoQERERERERERERERGJYGLsAyAiqqnZs2cjPDwcCQkJ8Pb2hkajQfv27TFr1ixjHxrRAyU8PBxLliwp97OQkBB+VoiIiIhqgPmDSBzmDyKqLzhShYgeGgkJCQgKCoKPjw+io6MhCALWrFkD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vb0RExODhIQEeHt73/d4yVzGFT1GRERERET1D/MHERFR9VhUISJ6wPXr10+vYfbBwcGIiYmpdCHIhIQEAMUhiYiIiIiICGD+ICIiqg6n/yIiqqNKhumXhJd7xcfHAwDGjRsn2zEREREREVHdxPxBRET1hUIQBMHYB0FERIbh4+MD4G6AKcve3h79+vUTNZSfiIiIiIioOswfRERUH3CkChFRHRYREYGMjAzMnj273M+nTJkCBwcHLF261EhHRkREREREdQ3zBxER1QccqUJEVMdptVrMnj0bCQkJUKvV0Gq10Gg0mD9/vrEPjYiIiIiI6hjmDyIiqutYVCEiIiIiIiIiIiIiIhKB038RERERERERERERERGJwKIKERERERERERERERGRCCyqEBERERERERERERERicCiChERERERERERERERkQgsqhAREREREREREREREYnAogoREREREREREREREZEILKoQERERERERERERERGJwKIKERERERERERERERGRCCyqEBERERERERERERERicCiChERERERERERERERkQgsqhAREREREREREREREYnAogoREREREREREREREZEILKoQERERERERERERERGJwKIKERERERERERERERGRCCyqEBERERERERERERERicCiChERERERERERERERkQgsqhAREREREREREREREYnAogoREREREREREREREZEILKoQERERERERERERERGJwKIKERERERERERERERGRCP8HQ/4Q3KRDuYsAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 411, + "width": 810 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.figure(figsize=(8, 4), constrained_layout=True)\n", + "for i, t2_idx in enumerate([4, 8]):\n", + " t2 = np.unique(theta_tiles[:, 2])[t2_idx]\n", + " selection = theta_tiles[:, 2] == t2\n", + "\n", + " plt.subplot(1, 2, i + 1)\n", + " plt.title(f\"slice: $\\\\theta_2 \\\\approx$ {t2:.1f}\")\n", + " plt.scatter(\n", + " theta_tiles[selection, 0],\n", + " theta_tiles[selection, 1],\n", + " c=validation_df[\"tie_est\"][selection],\n", + " s=90,\n", + " )\n", + " cbar = plt.colorbar()\n", + " plt.xlabel(r\"$\\theta_0$\")\n", + " plt.ylabel(r\"$\\theta_1$\")\n", + " cbar.set_label(\"Simulated fraction of Type I errors\")\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that the upper bound here is going to be quite loose because we have a very coarse grid. The looseness of the bound will be quadratic in cell size because of the second order term. In addition, there is a lot of error in our pointwise type I error estimate because the number of simulations is only 2000.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 4: 3D Bound visualization\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For this last step, we're going to visualize the bound with a Plotly 3D visualization tool." + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "metadata": {}, + "outputs": [], + "source": [ + "bound_components = np.array(\n", + " [\n", + " validation_df[\"tie_est\"],\n", + " validation_df[\"tie_cp_bound\"] - validation_df[\"tie_est\"],\n", + " validation_df[\"tie_bound\"] - validation_df[\"tie_cp_bound\"],\n", + " validation_df[\"tie_bound\"],\n", + " ]\n", + ").T\n", + "t2 = np.unique(theta_tiles[:, 2])[4]\n", + "selection = theta_tiles[:, 2] == t2\n", + "\n", + "np.savetxt(\"P_tutorial.csv\", theta_tiles[selection, :].T, fmt=\"%s\", delimiter=\",\")\n", + "np.savetxt(\"B_tutorial.csv\", bound_components[selection, :], fmt=\"%s\", delimiter=\",\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Open [the frontend installation instructions](../../frontend/README.md) and follow them. Copied here:\n", + "\n", + "1. On Mac: `brew install node`. Elsewhere, figure out how to install nodejs!\n", + "2. Install reactjs with `npm i react-scripts`\n", + "\n", + "Finally:\n", + "\n", + "```bash\n", + "cd frontend\n", + "npm start\n", + "```\n", + "\n", + "You should see something that looks like:\n", + "\n", + "\"\"\n", + "\n", + "Click on \"Upload B matrix\" and choose the B matrix we just saved. Do the same for the P matrix. Now you should be able to play around with the 3D visualization! Also, you can select the different layers to see the magnitude of different bound components.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "confirm", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8 | packaged by conda-forge | (main, Nov 22 2022, 08:25:29) [Clang 14.0.6 ]" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b4c6ec5b2d6c7b38df115d547b82cd53ca25eea58d87299956d35a9dc79f19f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tutorials/basket.md b/tutorials/basket.md new file mode 100644 index 00000000..679c1e70 --- /dev/null +++ b/tutorials/basket.md @@ -0,0 +1,389 @@ +# An introduction to analyzing trial designs with Imprint. + + + +We're going to analyze the Type I Error a three arm basket trial following the design of [Berry et al. (2013)](https://pubmed.ncbi.nlm.nih.gov/23983156/). + +Critically, the log-odds for each arm of the trial are assumed to be drawn from a shared normal distribution. This hierarchical design leads to a sharing effect between the log-odds for the different arms. + +\begin{align} +\mathbf{y} &\sim \mathrm{Binomial}( \mathbf{p}, \mathbf{n})\\ +\mathbf{p} &= \mathrm{expit}(\mathbf{\theta} + logit(\mathbf{p_1}))\\ +\mathbf{\theta} &\sim N(\mu, \sigma^2)\\ +\mu &\sim N(\mu_0, S^2)\\ +\sigma^2 &\sim \mathrm{InvGamma}(0.0005, 0.000005)\\ +\end{align} + + + +## Part 0: Type I Error + +```python +from scipy.special import logit +import matplotlib.pyplot as plt +import numpy as np + +import imprint as ip +import model + +# This is the binomial n parameter, the number of patients recruited to each arm of the trial. +n_arm_samples = 35 +``` + +```python +g = ip.cartesian_grid( + theta_min=[-3.5, -3.5, -3.5], + theta_max=[1.0, 1.0, 1.0], + n=[16, 16, 16], + null_hypos=[ip.hypo(f"theta{i} < {logit(0.1)}") for i in range(3)], +) +validation_df = ip.validate( + model.BayesianBasket, + g, + 0.05, + K=2000, + model_kwargs={"n_arm_samples": n_arm_samples}, +) +``` + +```python +ip.setup_nb() +plt.figure(figsize=(10, 4), constrained_layout=True) +theta_tiles = g.get_theta() +t2 = np.unique(theta_tiles[:, 2])[4] +selection = theta_tiles[:, 2] == t2 + +plt.subplot(1, 2, 1) +plt.title(f"slice: $\\theta_2 \\approx$ {t2:.1f}") +cntf = plt.tricontourf( + theta_tiles[selection, 0], + theta_tiles[selection, 1], + validation_df["tie_est"][selection], +) +plt.tricontour( + theta_tiles[selection, 0], + theta_tiles[selection, 1], + validation_df["tie_est"][selection], + colors="k", + linestyles="-", + linewidths=0.5, +) +cbar = plt.colorbar(cntf) +cbar.set_label("Simulated fraction of Type I errors") +plt.xlabel(r"$\theta_0$") +plt.ylabel(r"$\theta_1$") +plt.axis("square") + +plt.subplot(1, 2, 2) +cntf = plt.tricontourf( + theta_tiles[selection, 0], + theta_tiles[selection, 1], + validation_df["tie_bound"][selection], +) +plt.tricontour( + theta_tiles[selection, 0], + theta_tiles[selection, 1], + validation_df["tie_bound"][selection], + colors="k", + linestyles="-", + linewidths=0.5, +) +cbar = plt.colorbar(cntf) +cbar.set_label("Bound on the fraction of Type I errors") +plt.xlabel(r"$\theta_0$") +plt.ylabel(r"$\theta_1$") +plt.axis("square") + +plt.show() +``` + +## Part 1: Constructing a parameter grid + +We're going to use the `grid.make_cartesian_gridpts` function to produce a 3 dimensional set of points covering $\theta_i \in [-3.5, 1.0]$. The points lie at the center of (hyper)rectangular cells. The cells cover the whole box. + + +```python +g_raw = ip.cartesian_grid( + theta_min=[-3.5, -3.5, -3.5], theta_max=[1.0, 1.0, 1.0], n=[16, 16, 16] +) +type(g_raw) +``` + +```python +g_raw.df.head() +``` + +Next, we need to define the null hypothesis space. There are built-in tools in imprint for translating a symbolic statement to a bounding plane for a null hypothesis space. + +Once we have defined these planes, we attach the null hypothesis to the grid created above using `Grid.add_null_hypos`. For each hyperrectangular cell, the method intersects with the null hypothesis boundaries and splits into multiple tiles whenever a cell is intersected by a null hypothesis plane. + + +```python +logit(0.1) +``` + +```python +null_hypos = [ + ip.hypo(f"theta0 < -2.1972"), + ip.hypo(f"theta1 < -2.1972"), + ip.hypo(f"theta2 < -2.1972"), +] +g_unpruned = g_raw.add_null_hypos(null_hypos) +``` + +```python +g_unpruned.df.head() +``` + +Next, we can optionally prune our grid by calling `Grid.prune(g)`. Pruning will remove any tiles that are entirely in the alternative hypothesis space for all arms. Since our goal is to calculate type I error, we do not care about the alternative hypothesis space. For a false positive to occur, the truth must be negative! + + +```python +g = g_unpruned.prune() +``` + +```python +g_unpruned.n_tiles, g.n_tiles +``` + +```python +g = ip.cartesian_grid( + theta_min=[-3.5, -3.5, -3.5], + theta_max=[1.0, 1.0, 1.0], + n=[16, 16, 16], + null_hypos=[ip.hypo(f"theta{i} < {logit(0.1)}") for i in range(3)], +) +``` + +**At this point, you can skip to the next section if you're not interested in learning about the details of the grid object.** + +Here, we'll grab a few of the important variables from the grid object and examine them. First, let's look at the center of each tile in the grid. The shape of the array will be `(n_tiles, 3)` because we have 3 parameter values per point. + + +```python +theta_tiles = g.get_theta() +theta_tiles.shape +``` + +```python +unique_t2 = np.unique(theta_tiles[:, 2]) +unique_t2 +``` + +In the figure below, we plot $\theta_0$ and $\theta_1$ for a couple different values of $\theta_2$. You can see that the shape of the domain in $(\theta_0, \theta_1)$ changes depending on whether $\theta_2$ is in the null space for arm 2 or not. The solid white region without any tile centers in the right figure represents the region where the alternative hypothesis is true for all three arms. The solid black lines represent the boundaries of the arm 0 and the arm 1 null hypothesis boundary planes. + + +```python +plt.figure(figsize=(8, 5)) +plt.subplot(1, 2, 1) +plt.title(f"$\\theta_2 = {unique_t2[3]}$") +selection = theta_tiles[:, 2] == unique_t2[3] +plt.plot(theta_tiles[selection, 0], theta_tiles[selection, 1], "k.") +plt.hlines(logit(0.1), -4, 2) +plt.vlines(logit(0.1), -4, 2) +plt.axis("square") +plt.xlim(np.min(theta_tiles[:, 0]) - 0.2, np.max(theta_tiles[:, 0]) + 0.2) +plt.ylim(np.min(theta_tiles[:, 1]) - 0.2, np.max(theta_tiles[:, 1]) + 0.2) + +plt.subplot(1, 2, 2) +plt.title(f"$\\theta_2 = {unique_t2[10]}$") +selection = theta_tiles[:, 2] == unique_t2[10] +plt.plot(theta_tiles[selection, 0], theta_tiles[selection, 1], "k.") +plt.hlines(logit(0.1), -4, 2) +plt.vlines(logit(0.1), -4, 2) +plt.axis("square") +plt.xlim(np.min(theta_tiles[:, 0]) - 0.2, np.max(theta_tiles[:, 0]) + 0.2) +plt.ylim(np.min(theta_tiles[:, 1]) - 0.2, np.max(theta_tiles[:, 1]) + 0.2) +plt.show() +``` + +Let's explore another useful array produced for the grid. The `g.null_truth` array will contain whether the null hypothesis is true for each arm for each tile. Naturally, this has the same shape as `theta_tiles`. + + +```python +g.get_null_truth().shape +``` + +Since we've pruned the grid, the tiles are all in the null hypothesis space for at least one arm. + + +```python +np.all(np.any(g.get_null_truth(), axis=1)) +``` + +## Part 2: Simulating to compute type I error rates and gradients + + + +Now that we've constructed and examined our computation grid, let's actually compute type I error and its gradient. + +First, in order to do this, we need to build an inference algorithm that tells us whether to reject or not given a particular dataset. We're going to use an implementation of INLA applied to the model described above. The `fi.rejection_inference` function below will implement this inference algorithm. The details of this inference are not particularly important to what we're doing here so we'll leave it unexplained. Please check out the [intro_to_inla.ipynb](./intro_to_inla.ipynb) notebook if you're interested in learning more. + +First, we'll check that the inference does something reasonable. It rejects the null for arms 1 and 2 where the success counts are 5 and 9 but does not reject the null for arm 0 where the success count is 4. This seems reasonable! + + +```python +y = [[4, 5, 9]] +n = [[35, 35, 35]] +fi = basket.FastINLA(n_arms=3, critical_value=0.95) +fi.rejection_inference(np.stack((y, n), axis=-1)) +``` + +```python +import jax +import jax.numpy as jnp + + +class BayesianBasket: + def __init__(self, seed, K): + np.random.seed(seed) + self.samples = np.random.uniform(size=(K, n_arm_samples, 3)) + self.fi = basket.FastINLA(n_arms=3) + self.family = "binomial" + self.family_params = {"n": n_arm_samples} + + def sim_batch(self, begin_sim, end_sim, theta, null_truth, detailed=False): + # 1. Calculate the binomial count data. + # The sufficient statistic for binomial is just the number of uniform draws + # above the threshold probability. But the `p_tiles` array has shape (n_tiles, + # n_arms). So, we add empty dimensions to broadcast and then sum across + # n_arm_samples to produce an output `y` array of shape: (n_tiles, + # sim_size, n_arms) + + p = jax.scipy.special.expit(theta) + y = jnp.sum(self.samples[None] < p[:, None, None], axis=2) + + # 2. Determine if we rejected each simulated sample. + # rejection_fnc expects inputs of shape (n, n_arms) so we must flatten + # our 3D arrays. We reshape exceedance afterwards to bring it back to 3D + # (n_tiles, sim_size, n_arms) + y_flat = y.reshape((-1, 3)) + n_flat = jnp.full_like(y_flat, n_arm_samples) + data = jnp.stack((y_flat, n_flat), axis=-1) + test_stat_per_arm = self.fi.test_inference(data).reshape(y.shape) + + return jnp.min( + jnp.where(null_truth[:, None, :], test_stat_per_arm, jnp.inf), axis=-1 + ) +``` + +```python +sims = BayesianBasket(0, 100).sim_batch(0, 100, theta_tiles, g.get_null_truth()) +``` + +```python +rejections = sims < 0.05 +n_rejections = np.sum(rejections, axis=1) +``` + +```python +plt.figure(figsize=(5, 4), constrained_layout=True) +select = theta_tiles[:, 2] == np.unique(theta_tiles[:, 2])[4] +plt.scatter( + theta_tiles[select, 0], theta_tiles[select, 1], c=n_rejections[select], s=50 +) +cbar = plt.colorbar() +cbar.set_label(r"Number of sims with p-value $<$ 0.05") +plt.title(f"slice: $\\theta_2 \\approx$ {t2:.1f}") +plt.xlabel(r"$\theta_0$") +plt.ylabel(r"$\theta_1$") +plt.axis("square") +plt.show() +``` + +```python +%%time +validation_df = ip.validate(BayesianBasket, g, 0.05, K=2000) +``` + +```python +validation_df.head() +``` + +Next, the meat of the type I error calculation will be done by `binomial_accumulator`. This is a JAX function that will just in time compile into a very fast compiled version when passed a function that implements the rejection inference. Then, we call the JIT function `accumulator` and pass it the necessary information: + +- the array of tile centers +- the truth value of each hypothesis for each tile. +- the simulated data. + +Internally, this function will simulate `sim_size` trials for each tile and return: + +- `typeI_sum`: the number of simulations during which any arm had a false rejections (family-wise error). +- `typeI_score`: the score/gradient of the typeI_sum output with respect to the true parameter values. + +Here, we are running 2000 simulations for each of 3185 tiles. + + + +Before continuing, let's look at a couple slices of this type I error grid: + + +```python +import matplotlib.pyplot as plt + +plt.figure(figsize=(8, 4), constrained_layout=True) +for i, t2_idx in enumerate([4, 8]): + t2 = np.unique(theta_tiles[:, 2])[t2_idx] + selection = theta_tiles[:, 2] == t2 + + plt.subplot(1, 2, i + 1) + plt.title(f"slice: $\\theta_2 \\approx$ {t2:.1f}") + plt.scatter( + theta_tiles[selection, 0], + theta_tiles[selection, 1], + c=validation_df["tie_est"][selection], + s=90, + ) + cbar = plt.colorbar() + plt.xlabel(r"$\theta_0$") + plt.ylabel(r"$\theta_1$") + cbar.set_label("Simulated fraction of Type I errors") +plt.show() +``` + +Note that the upper bound here is going to be quite loose because we have a very coarse grid. The looseness of the bound will be quadratic in cell size because of the second order term. In addition, there is a lot of error in our pointwise type I error estimate because the number of simulations is only 2000. + + + +## Step 4: 3D Bound visualization + + + +For this last step, we're going to visualize the bound with a Plotly 3D visualization tool. + +```python +bound_components = np.array( + [ + validation_df["tie_est"], + validation_df["tie_cp_bound"] - validation_df["tie_est"], + validation_df["tie_bound"] - validation_df["tie_cp_bound"], + validation_df["tie_bound"], + ] +).T +t2 = np.unique(theta_tiles[:, 2])[4] +selection = theta_tiles[:, 2] == t2 + +np.savetxt("P_tutorial.csv", theta_tiles[selection, :].T, fmt="%s", delimiter=",") +np.savetxt("B_tutorial.csv", bound_components[selection, :], fmt="%s", delimiter=",") +``` + + +Open [the frontend installation instructions](../../frontend/README.md) and follow them. Copied here: + +1. On Mac: `brew install node`. Elsewhere, figure out how to install nodejs! +2. Install reactjs with `npm i react-scripts` + +Finally: + +```bash +cd frontend +npm start +``` + +You should see something that looks like: + + + +Click on "Upload B matrix" and choose the B matrix we just saved. Do the same for the P matrix. Now you should be able to play around with the 3D visualization! Also, you can select the different layers to see the magnitude of different bound components. + + diff --git a/tutorials/fisher_exact.ipynb b/tutorials/fisher_exact.ipynb new file mode 100644 index 00000000..32c79c82 --- /dev/null +++ b/tutorials/fisher_exact.ipynb @@ -0,0 +1,224 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from imprint.nb_util import setup_nb\n", + "\n", + "setup_nb()\n", + "\n", + "import jax\n", + "import jax.numpy as jnp\n", + "import numpy as np\n", + "import pandas as pd\n", + "import scipy.stats\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import imprint as ip\n", + "from imprint.models.fisher_exact import FisherExact, BoschlooExact\n", + "\n", + "jax.config.update(\"jax_enable_x64\", True)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fisher Exact is conservative\n", + "\n", + "Why?\n", + "1. Fisher exact is for discrete problems so it might not be possible to achieve precisely 5% Type I Error. \n", + "2. Fisher exact conditions on the number of success and failures in each arm of the trial being fixed. In the parlance of 2x2 contigency tables, it conditions on both the row and column marginals. But, we only have fixed row marginals." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n=3 max(fisher)=0.0000 max(boschloo)=0.0159\n", + "n=4 max(fisher)=0.0034 max(boschloo)=0.0337\n", + "n=5 max(fisher)=0.0090 max(boschloo)=0.0264\n", + "n=6 max(fisher)=0.0205 max(boschloo)=0.0310\n", + "n=7 max(fisher)=0.0105 max(boschloo)=0.0374\n", + "n=8 max(fisher)=0.0107 max(boschloo)=0.0386\n", + "n=9 max(fisher)=0.0168 max(boschloo)=0.0493\n", + "n=10 max(fisher)=0.0212 max(boschloo)=0.0435\n", + "n=11 max(fisher)=0.0334 max(boschloo)=0.0471\n", + "n=12 max(fisher)=0.0364 max(boschloo)=0.0449\n", + "n=13 max(fisher)=0.0188 max(boschloo)=0.0344\n", + "n=14 max(fisher)=0.0193 max(boschloo)=0.0471\n" + ] + } + ], + "source": [ + "K = 4096\n", + "lam = 0.05\n", + "gs = {}\n", + "fisher_dfs = {}\n", + "boschloo_dfs = {}\n", + "for n in range(3, 15):\n", + " print(n, end=\", \")\n", + " gs[n] = ip.cartesian_grid(\n", + " [-3, -3], [3, 3], n=[20, 20], null_hypos=[ip.hypo(\"theta1 < theta0\")]\n", + " )\n", + " fisher_dfs[n] = ip.validate(FisherExact, gs[n], lam, K=K, model_kwargs=dict(n=n))\n", + " boschloo_dfs[n] = ip.validate(\n", + " BoschlooExact, gs[n], lam, K=K, model_kwargs=dict(n=n)\n", + " )\n", + " print(\n", + " f\"n={n} max(fisher)={fisher_dfs[n]['tie_est'].max()} max(boschloo)={boschloo_dfs[n]['tie_est'].max()}\"\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n", + "starting 64 0 131072\n" + ] + } + ], + "source": [ + "n = 10\n", + "alpha = 0.05\n", + "W = 0.25\n", + "g = ip.cartesian_grid(\n", + " [-W, -W], [W, W], n=[32, 32], null_hypos=[ip.hypo(\"theta1 < theta0\")]\n", + ")\n", + "cal_df = ip.calibrate(FisherExact, g=g, alpha=alpha, model_kwargs=dict(n=n), K=2**17)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rVUfpnruBpFNMZeioiJzsBMfHy+mp6eLubm5Yl5enpibmyump6ebA6T4+HhJqyji4+OtahUVFZlrmS5wXQVXUuXm5oq5ubmiRqOx+VyXLVsmZmVlmcd0NJa/Y1x9/1lZWWJ8fLyYkJBg/l1k+rlo/PspMTHRZVjYEbX33xWi2LDSLTk5WdRoNObfFRqNxhxMxcfHd8j/3oio4xFEURTd2wxHREQdVUZGhrnHUXx8vNu3J7ekUqnM/UuWLVvGXhKtWHZ2NjQaDbKzs636+aSkpLjdTFav1yMpKQk6nQ6JiYluN72Wcy4mBoMBGRkZ2LBhg7mZtlKpRGRkJBISEpCSkuLWnZe0Wi3S09Oh1+uh1+uhVCoRGxuLuXPnOrxDm7t0Op25qbejepb9gTriX/d0Oh2SkpKg1+uh0Wis+lrpdDpkZ2cjPT3d3MumcUPluLg46PV6pKenIzk5GStXrkR6ejry8vKa+1tpM9r77wrTz4NWqzX3QouNjUV8fDxSUlLcaspNRNSWMUgiIiLJdDodpk6ditjYWOTk5Hh1QWyqZbrY5f8dEZHcGoeEJqZgLyEhwWFIaDAYkJqaio0bN5pDRTZHJyIiYpBEREREREREREQSKVp6AkRERERERERE1DYwSCIiIiIiIiIiIkkYJBERERERERERkSQMkoiIiIiIiIiISBIGSUREREREREREJAmDJCIiIiIiIiIikoRBEhERERERERERScIgiYiIiIiIiIiIJGGQREREREREREREkjBIIiIiIiIiIiIiSRgkERERERERERGRJAySiIiIiIiIiIhIEgZJREREREREREQkCYMkIiIiIiIiIiKShEESERERERERERFJwiCJiIiIiIiIiIgkYZBERERERERERESSMEgiIiIiIiIiIiJJGCQREREREREREZEkDJKIiIiIiIiIiEgSBklERERERERERCQJgyQiIiIiIiIiIpKEQRIREREREREREUnCIImIiIiIiIiIiCRhkERERERERERERJIwSCIiIiIiIiIiIkkYJBERERERERERkSQMkoiIiIiIiIiISBIGSUREREREREREJAmDJCIiIiIiIiIikoRBEhERERERERERScIgiYiIiIiIiIiIJGGQREREREREREREkjBIIiIiIiIiIiIiSRgkERERERERERGRJAySiIiIiIiIiIhIEgZJREREREREREQkCYMkIiIiIiIiIiKShEESERERERERERFJwiCJiIiIiIiIiIgkYZBERERERERERESSMEgiIiIiIiIiIiJJGCQREREREREREZEkDJKIiIiIiIiIiEgSBklERERERERERCQJgyQiIiIiIiIiIpKEQRIREREREREREUnCIImIiIiIiIiIiCRhkERERERERERERJIwSCIiIiIiIiIiIkkYJBERERERERERkSQMkoiIiIiIiIiISBIGSUREREREREREJAmDJCIiIiIiIiIikoRBEhERERERERERScIgiYiIiIiIiIiIJGGQREREREREREREkjBIIiIiIiIiIiIiSRgkERERERERERGRJAySiIiIiIiIiIhIEgZJREREREREREQkiW9LT4Dal8rKShw8eBAAEBUVBV9f/ogREREREZF3amtrceXKFQDAsGHDEBgY2MIzcl9tbS0uXrzY0tNwqFu3brx+I0n4U0KyOnjwIMaNG9fS0yAiIiIionZq165dGDt2bEtPw20XL15ETExMS0/DofPnzyM6Orqlp0FtALe2ERERERERERGRJFyRRLKKiooyP9+1axe6d+/egrMhIiIiIqL24MKFC+adD5bXHG3VNzt7oGs3n5aeBi5drMMt439p6WlQG8MgiWRluae2e/fuXBpJRERERESyag99fLp280HP6Lb/fVDHxJ9cIiIiIiIiouZk9Kl/tDSj2NIzoDaIPZKIiIiIiIiIiEgSBklERERERERERCQJt7YRERERERERNSNBBASj0NLTgMCdbeQBrkgiIiIiIiIiIiJJuCKJiIiIiIiIqDmJQv2jpbWGOVCbwxVJREREREREREQkCYMkIiIiIiIiIiKShFvbiIiIiIiIiJqRYBRaR7PtVjAHanu4IomIiIiIiIiIiCRhkERERERERERERJJwaxsRERERERFRMxKM9Y+W1hrmQG0PVyQREREREREREZEkDJKIiIiIiIiIiEgSbm0jIiIiIiIiak7GXx8trTXMgdocrkgiIiIiIiIiIiJJGCQREREREREREZEk3NpGRERERERE1IwEsf7R0lrDHKjt4YokIiIiIiIiIiKShEESERERERERERFJwq1tREREREREhPLyavz1he34SHsUJSXVqK2tg5+fD1SRQbj/wRH4/ZM3wNeXaxHkIIiA0ArumMatbeQJBklEREREREQdmD6vCI89shk/7MyH0WidLFRW1uHatWr85fnvsOKvO6Ce1hevpd+Ozp2DW2i2RNTSGCcTERERERF1UFlb8jBmZAZ2bj9vEyI1VltrxJeb8zBkwOs4dPBSM82QiFobBklEREREREQd0Dc5p5E4S4PaWvf2N1VU1GLS+LU4fuxqE82sAzCKredB5CYGSURERERERB3MhQvXkDhLA9HDHKG2xogpE99BZWWtvBMjolaPQRIREREREVEH8/vffI3aWu+6PZeWVuNvL34n04yIqK1gkERERERERNSB1NYasWWLXpZaa98+IEudDkf89c5tLfwAd7aRBxgkERERERERdSCvvvwTamvkufe8oagSW77Kk6UWEbUNDJKIiIiIiIg6kA/ePyRrvTde2yNrPSJq3XxbegJERERERETUfAyGSlnrXblSJmu9DsH466OltYY5UJvDFUlEREREREQdSI1M29pMKivrZK1HRK0bVyQRERERERF1IEGB8l4GhoX6y1qvIxCMIgRjy3e6bg1zoLaHK5KIiIiIiIg6kJ7R4bLWi+2nkrUeEbVuDJKIiIiIiIg6kNQ/3iRrvT+/MEnWekTUunFrGxERERERUQeinhYHlSoQRUXeN93uPyASvXsrvZ9URyOidTS65s428gBXJBEREREREXUwDyweKUudZ/44XpY6RNR2MEgiIiIiIiLqYJ57YRJ69gzzqkb86G5ImjtEphkRUVvBIImIiIiIiKiDUSgU+GHPYihVgR69v3efCGRvu0/mWXUcgth6HkTuYpBERERERETUASmVgTh07GH0jVW69b6x43pg78EU+PrycpKoI+J/+URERERERB1UeHgg9h9+GJlr7kD/AZEOxwkCMGJkV3z02RzkfHsfQySiDox3bSMiIiIiIurg5s4bgrnzhuDsWQP+/dKPOH+uBKWl1YgID0Bcv0g8uexGdO4c3NLTbD+MaB13bWsNc6A2h0ESERERERFRG3P1ajnOnjagoqoW0T3D0at3OBQK71cJ9e6txD9fUqOwoAJl5TUIC/WHKjKIK5CIyIxBEhERERERURtQUlKJF579Fh+8fxjXrlVbnfPxETB+Yi/8/R+3YPiIrm7XFkURP+zMR2aGDp9/egLV1XXmc6Gh/kicMwhLkuM9qk1E7QuDJCIiIiIiolbMaDRiXuKH+PqrPIgO7rJVVyfiu21n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szBjxowdfThUoJ5wTlHPtj3OEZ6H3y98v8lpPeGc4vUREe3MmEgi6ibBYBBCCMf+jR07NuU1KisrczoewNmLqzlz5mDOnDm8SNpOvg/nFPV82+Mc4Xn4/cL3m5y2o88pXh8R0c6Oq7YRdZNAIICFCxc6Nue+qqrK8jUAe/P62+sFWMXJx6JFizB9+nTMnj0b06ZNcyQmZbazn1PUO2yPc4Tn4fcL329yGq+PiIi6FxNJRN2ou1fnSLzoCQaDGb9Na7+YcuJCqaamBtXV1Zg/fz6mTJlScDyyb2c9p6j32B7nCM/D7xe+3+Q0Xh8REXUvTm0j6sXGjRvX8XO2FUraVw2ZPHlyQa9ZW1uLiRMnpr1ICgaDWLRoUUGvQTvOjjinqHfZHucIz8PvF77f5DReHxERdS8mkoh6sUAg0LEKSPuFkJXE+f+FjGgJBoOYPHkyXnnllbRxlixZgpqamrxfg3as7X1OUe+zPc4RnoffL3y/yWm8PiIi6l5MJBH1ctdccw0AYP78+Wn3mTdvHgBknKufrY5AMBjs+KYt0xK2Cxcu5BK3vdz2Oqeo99oe54hTr0G9Az93yGm8PiIi6j5CSil39EEQUWGqq6uxYMECrFy50nKO/4gRI1BXV4f6+vqMvz9lypS0F1xjx47FpEmTMH78+LTHUVtbi+uvvx5Lly5l/YpebnucU11NnjwZixYtwrRp0zB79uyCjp+63/Y4Rwp9Depd+LlDTuP1ERFR92AiiWgnEAwGUV1djdraWixcuLDjIiXd810JITp+tvpIaL/QtosfK71fd59TXdXU1GDixIkIBoOoqqrKGJt6hu1xjhT6GtS78HOHnMbrIyKi7sFV24h2Au3Lwi9YsADTp09PWvZ28uTJmDFjRsbfnzVrFq6//vqOYeCJFixYkNNFEodt7xy685xqN3nyZCxZsiRl2kBtbS1GjBjRcRxTp07lSIEeaHucI4W+BvUu/Nwhp/H6iIioe3BEEhERERERERER2cJi20REREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSUREREREREREZAsTSURERNTtFi1ahOrqakyePBljx47FjTfeuKMPiYiIiIjyoO3oAyAiIqKd2/Tp07Fo0SIsXLgQVVVVCAaDGD58OAKBAKZNm7ajD4+IiIiIciCklHJHHwQRERHtnKqrq7Fo0SIsXboUVVVVHc9Pnz4dc+bMAS9DiIiIiHoXTm0jIiKibjFz5kwsWLAAc+fOTUoiAcDYsWMBAAsWLNgRh0ZEREREeWIiiYiIiBxXU1ODG2+8EWPGjMGUKVNStldUVAAAHnvsse19aERERERUACaSiIiIyHHV1dUAgFmzZlluDwQCAIBgMLidjoiIiIiInMBEEhERETnqxhtvRG1tLaqqqjBp0iTLfdoTSLW1tdvxyIiIiIioUEwkERERkaOuv/56AGaNpHSYQCIiIiLqnZhIIiIiIsfMmTOnY7TRtGnT0u63ePFiAJ1T3IiIiIiod2AiiYiIiBzTXhMp3ZS2djU1NQCQspobEREREfVsTCQRERGRI2prazumrE2ePDntfsFgsGM/JpKIiIiIehcmkoiIiMgRs2fP7vh5ypQpafdbsmRJx8/jx4/v1mMiIiIiImcJKaXc0QdBREREvd/YsWM7pqzZVV9fzzpJRERERL0IE0lERETkCCEEAHM00ty5c9PuN3bsWNTW1qKqqgorV65M2hYMBjFz5kzU1tYiEAggGAxizJgxHbWXiIiIiGjH4tQ2IiIiKljiSKTJkycjEAhY/gPQUR9p+vTpSTFqa2sxfPhwjBgxAgsXLsT8+fOxcOFCBINBjBgxomM1OCIiIiLacZhIIiIiooIl1j3KtGLbokWLOn7uWkepuroaVVVVmDFjRtLzs2fPRl1dHS677DKHjpaIiIiI8sVEEhERERUscbRQppXYHnvsMQDAmDFjkvarqalBTU0NzjzzTMvfmzp1KhYsWNAxmomIiIiIdgwmkoiIiKhg27ZtA5A5iRQMBrFgwQIASKl51J5gSvf7I0aMAICO3yciIiKiHYOJJCIiIipY+4ikTImkOXPmADBHI3Wd/tY+5S3d77c/v3jx4kIPlYiIiIgKwEQSERERFax9xFB7QW0r119/PQBYrujWPmUt3e93LdRNRERERDsGE0lERERUsDFjxgAAKioqLLfPmTMHwWAQM2bM6Ng3kd0V2bhyGxEREdGOxUQSERERFWzcuHEAgLq6upRttbW1mD59OqqqqlJqIxERERFR78JEEhERERUsEAhgypQpqKmpSdlWXV2NqqoqLF26dAccGRERERE5iYkkIiIicsTcuXNRW1vbUTgbMJNIALBw4cKM9ZMybctnPyIiIiLqHtqOPgAiIiLaOQQCASxcuBAzZ87sqJU0efJkzJ8/P+vvVlVVoaamBrW1tZYrt9lZFY6IiIiIuh8TSUREROSYSZMm5TWFbdy4caipqUlbTLt9tbbJkycXcnhEREREVCBObSMiIqIdrn0KXHvCqKuVK1cCAKZOnbrdjomIiIiIUgkppdzRB0FEREQ0YsQIAJ1Jo0Tl5eWYNGmSrWlyRERERNR9OCKJiIiIeoSFCxeirq4OM2fOTHp++vTpqKiowNy5c3fQkRERERFRO45IIiIioh4jGAxi5syZqK2tRSAQQDAYxJgxYzBr1qwdfWhEREREBCaSiIiIiIiIiIjIJk5tIyIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW5hIIiIiIiIiIiIiW/4fT0fMl6vF7EYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 483, + "width": 585 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "lamss = cal_df[\"lams\"].min()\n", + "plt.suptitle(\"$\\lambda^{**} = \" + f\"{lamss:.4f} ~~~~ \\\\alpha = {alpha}$\")\n", + "plt.scatter(\n", + " g.df[\"theta0\"], g.df[\"theta1\"], c=cal_df[\"lams\"], s=40, vmin=lamss, vmax=lamss + 0.1\n", + ")\n", + "plt.xlabel(r\"$\\theta_0$\")\n", + "plt.ylabel(r\"$\\theta_1$\")\n", + "plt.colorbar(label=\"$\\lambda^*$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([], shape=(0, 2, 2), dtype=int64),\n", + " array([], dtype=float64),\n", + " array([], dtype=bool),\n", + " array([], dtype=float64),\n", + " array([], dtype=bool))" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "successes = np.stack(np.meshgrid(np.arange(n + 1), np.arange(n + 1)), axis=-1).reshape(\n", + " -1, 2\n", + ")\n", + "possible_datasets = np.concatenate(\n", + " (successes[:, None, :], n - successes[:, None, :]),\n", + " axis=1,\n", + ")\n", + "\n", + "boschloo = np.array(\n", + " [\n", + " scipy.stats.boschloo_exact(possible_datasets[i], alternative=\"less\").pvalue\n", + " for i in range(possible_datasets.shape[0])\n", + " ]\n", + ")\n", + "tuned_fisher = np.array(\n", + " [\n", + " scipy.stats.fisher_exact(possible_datasets[i], alternative=\"less\")[1]\n", + " for i in range(possible_datasets.shape[0])\n", + " ]\n", + ")\n", + "differences = np.where(((boschloo < lam) != (tuned_fisher < lamss - 1e-12)))[0]\n", + "diffs = possible_datasets[differences]\n", + "b_p = boschloo[differences]\n", + "b_rej = boschloo[differences] < lam\n", + "f_p = tuned_fisher[differences]\n", + "f_rej = tuned_fisher[differences] < lamss - 1e-12\n", + "diffs, b_p, b_rej, f_p, f_rej" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "confirm", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b4c6ec5b2d6c7b38df115d547b82cd53ca25eea58d87299956d35a9dc79f19f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tutorials/fisher_exact.md b/tutorials/fisher_exact.md new file mode 100644 index 00000000..3b6ff043 --- /dev/null +++ b/tutorials/fisher_exact.md @@ -0,0 +1,95 @@ +```python +from imprint.nb_util import setup_nb + +setup_nb() + +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd +import scipy.stats +import matplotlib.pyplot as plt + +import imprint as ip +from imprint.models.fisher_exact import FisherExact, BoschlooExact + +jax.config.update("jax_enable_x64", True) +``` + +## Fisher Exact is conservative + +Why? +1. Fisher exact is for discrete problems so it might not be possible to achieve precisely 5% Type I Error. +2. Fisher exact conditions on the number of success and failures in each arm of the trial being fixed. In the parlance of 2x2 contigency tables, it conditions on both the row and column marginals. But, we only have fixed row marginals. + +```python +K = 4096 +lam = 0.05 +gs = {} +fisher_dfs = {} +boschloo_dfs = {} +for n in range(3, 15): + print(n, end=", ") + gs[n] = ip.cartesian_grid( + [-3, -3], [3, 3], n=[20, 20], null_hypos=[ip.hypo("theta1 < theta0")] + ) + fisher_dfs[n] = ip.validate(FisherExact, gs[n], lam, K=K, model_kwargs=dict(n=n)) + boschloo_dfs[n] = ip.validate( + BoschlooExact, gs[n], lam, K=K, model_kwargs=dict(n=n) + ) + print( + f"n={n} max(fisher)={fisher_dfs[n]['tie_est'].max()} max(boschloo)={boschloo_dfs[n]['tie_est'].max()}" + ) +``` + +```python +n = 10 +alpha = 0.05 +W = 0.25 +g = ip.cartesian_grid( + [-W, -W], [W, W], n=[32, 32], null_hypos=[ip.hypo("theta1 < theta0")] +) +cal_df = ip.calibrate(FisherExact, g=g, alpha=alpha, model_kwargs=dict(n=n), K=2**17) +``` + +```python +lamss = cal_df["lams"].min() +plt.suptitle("$\lambda^{**} = " + f"{lamss:.4f} ~~~~ \\alpha = {alpha}$") +plt.scatter( + g.df["theta0"], g.df["theta1"], c=cal_df["lams"], s=40, vmin=lamss, vmax=lamss + 0.1 +) +plt.xlabel(r"$\theta_0$") +plt.ylabel(r"$\theta_1$") +plt.colorbar(label="$\lambda^*$") +plt.show() +``` + +```python +successes = np.stack(np.meshgrid(np.arange(n + 1), np.arange(n + 1)), axis=-1).reshape( + -1, 2 +) +possible_datasets = np.concatenate( + (successes[:, None, :], n - successes[:, None, :]), + axis=1, +) + +boschloo = np.array( + [ + scipy.stats.boschloo_exact(possible_datasets[i], alternative="less").pvalue + for i in range(possible_datasets.shape[0]) + ] +) +tuned_fisher = np.array( + [ + scipy.stats.fisher_exact(possible_datasets[i], alternative="less")[1] + for i in range(possible_datasets.shape[0]) + ] +) +differences = np.where(((boschloo < lam) != (tuned_fisher < lamss - 1e-12)))[0] +diffs = possible_datasets[differences] +b_p = boschloo[differences] +b_rej = boschloo[differences] < lam +f_p = tuned_fisher[differences] +f_rej = tuned_fisher[differences] < lamss - 1e-12 +diffs, b_p, b_rej, f_p, f_rej +``` diff --git a/tutorials/ztest.ipynb b/tutorials/ztest.ipynb new file mode 100644 index 00000000..49a40ab6 --- /dev/null +++ b/tutorials/ztest.ipynb @@ -0,0 +1,136 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from imprint.nb_util import setup_nb\n", + "\n", + "setup_nb()\n", + "import jax\n", + "import jax.numpy as jnp\n", + "import numpy as np\n", + "import pandas as pd\n", + "import scipy.stats\n", + "import matplotlib.pyplot as plt\n", + "\n", + "import imprint as ip\n", + "from imprint.models.ztest import ZTest1D" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "g = ip.cartesian_grid([-1], [1], n=[100], null_hypos=[ip.hypo(\"x < 0\")])\n", + "# lam = -1.96 because we negated the statistics so we can do a less thanj\n", + "# comparison.\n", + "lam = -1.96\n", + "K = 8192\n", + "rej_df = ip.validate(ZTest1D, g, lam, K=K)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABHQAAANnCAYAAABQ6Q8NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAB7CAAAewgFu0HU+AAEAAElEQVR4nOzdeXxTVfo/8E8IoCDCbRHGBdSmVkXHLa3ryDgjqY76dRlNqNs4UmkiyiguNBRR0VFLijsupMXWdRASncX1Z4KOo45bE1FHUWpTsbgVaCMgsrX398f1xtwk9zb70n7er1dfkHNPzn1ykxbu03OeoxNFUQQRERERERERERWMIbkOgIiIiIiIiIiIEsOEDhERERERERFRgWFCh4iIiIiIiIiowDChQ0RERERERERUYJjQISIiIiIiIiIqMEzoEBEREREREREVGCZ0iIiIiIiIiIgKDBM6REREREREREQFhgkdIiIiIiIiIqICw4QOEREREREREVGBYUKHiIiIiIiIiKjAMKFDRERERERERFRgmNAhIiIiIiIiIiowTOgQERERERERERUYJnSIiIiIiIiIiAoMEzpERERERERERAWGCR0iIiIiIiIiogIzNNcBUG5s3boVH3/8MQBg3LhxGDqUHwUiIiIiIiKidNu5cyfWrVsHADjssMOw6667pmVc3sUPUh9//DGOOeaYXIdBRERERERENGi89957OProo9MyFpdcEREREREREREVGM7QGaTGjRsX+vt7772HvfbaK4fREBERERERUU69/jpw8cXKthtvBKzW3MSTpA0bNuDII49UtK1cuRJjx47NTUAAvv3229AKmfB78VQxoTNIhdfM2WuvvTBhwoQcRkNEREREREQ509cH3H23sm3CBGDuXCBN9V6yZZdddolq23vvvdOaSElFOuvXcskVERERERER0WDmdgN+v7LtlluikjleLxAMZi8s0saEDhEREREREdFgtWMHMG+esu3gg4FLLlE0dXcDZ58NTJwIzJoFdHRkL0SKjQkdIiIiIiIiosHq0UeBtjZl2223ARFLgxobgS1bgM2bgfvuAyZNkpI8lDtM6BARERERERENRj/9BMyfr2yrqADOPVfRtH07sGiRstu55wLFxZkNj7QxoUNEREREREQ0GD34IPDNN8q2BQsAnU7RtHx5dLdrr81wbNQvJnSIiIiI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sw/wn/8ASW7gml0rVwIPPaR+fOJEYN48bN26FQsXLgw1i6KI0tJSVFRUoKSkBNXV1UzmpIgJHSIiIiIiIqJE1NcrHx94oJSR0ev7feqtt0q5IHnzzT33BF59tUCSOX19wJVXSn+quftuYLfd8Ojixfj2228Vh5544gkcf/zxGQ5y8OC25URERERERETxevNN4I03lG12e1zJHAAYORJ47jng9NOBceOAFSukfFBBePxx4L//VT9eWQmcdx527NgBh8OhOHTyySczmZNmnKFDREREREREFK/I2TkTJgAXX5zQELvuCjz7LPDVV3lcJydSMAjU1qofHzYMWLQI0Onwt7/9DV9++aXi8A033JDR8AYjztAhIiIiIiIiisfKlcCLLyrbrr8eGD484aF22aWAkjlAfIWQDzoIvb29qI9Ieh133HH4/e9/n+EABx8mdIiIiIiIiIjisWCB8vHYscD06TG79vZK3TdvzkJcmbZyJfDgg+rHJ0wA5s0DADzzzDP4/PPPFYfnzZsHnU6XwQAHJyZ0iIiIiIiIiPrzxReAy6VsmzUL2G23qK59fcBllwF1ddIW5Rs3ZifEjOjrA2bO1C6EfM89wG67QRRF3H777YpDRx55JE4//fQMBzk4MaFDRERERERE1J+GBmVSY9QoacenCH19wOWXA489Jj1+6y3glFOkEjQF6YknpBehxmQCzjsPAPD888/jo48+Uhy+4YYbODsnQ5jQISIiIiIiItLy9de/ZGhkM2YARUWKJlEErroKaGpSdl25Evj448yGmBEJFEKONTvn4IMPxrnnnpvZGAcxJnSIiIiIiIiItPzvf8qlVbvsAlxzjaKLKEr1kSNLzQwbJu1oNXlyFuJMt5tuArq61I9fey1w8MEAgFdffRXvvvuu4nBdXR2GDGHaIVO4bTkRERERERGRllNPBdasARobgbvuAs4+G9hrLwBAWxvwyCPAv/4FrFqlfNrQocDy5UBBlpD58EPggQfUj4cVQgaA2267TXG4pKQEF1xwQaaiIzChQ0RERERERNS/3XeXtua+8krgp58AAC0tQE2NtKNVpCFDgKeeAs45J7thpkVfn5SFEkX1PnffLdURAvDWW2/h3//+t+Kw3W7HsGHDMhgkce4TERERERERUbx23RUoKkJbm3oyBwAcDmDq1OyGljbNzcA336gfnzIFMJtDD8vK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AGlcAiWKIs444wy89NJLivYXXngBp59+etrOQ4PDYEro5EW+uaSkBCUlJZgyZUquQyEiIiIionzT1hadzAGkxzU1wIknKmfq6HTAsmXAvvtKhXvjsH69NHlHTuYAwN//DtTVAXffnYbXkO/WrZNm5mglcwBgyZK0JnMA4LHHHotK5vz5z39mMoeoHxnb5YqIiIiIiCgtmpujkzmy3l7peKRDD407mRMMSjuaf/pp9BBz5yYWakHatk2ajvTll9r9Fi0Czjsvrafu6+vD3REZs7322gv33HNPWs9DNBAxoUNERERERPnt3//WPt7RkfTQmzdLJWEiS3secADg8UhblQ9ooghYrcBbb2n3u/9+YObMtJ9+yJAheOONN1BTUxNqczqdKCoqSvu5iAaavFhyRUREREREFEUUgdtvB955R7tfErU229qAxkbg8ceBri7lsX33leoq77VXwsMWnoULpYug5fLLM5LMkY0ZMwaNjY2wWCzwer0488wzM3YuooGECR0iIiIiIso/27cDNpu01ZQWvV4qfJyAWPWVZXvuKSVz9t03oSEL0z//CcyZo93n5JOl2Tk6XcbDqaysRGVlZcbPQzRQMKFDRERERET5JRiUarW8+qp2P3mXq1hbl6v4/HNg+nSgry/28UceiWtDrML34YfARRdpb09eVga4XMCwYdmLi4jixoQOERERERHljy+/BE4/HVi1Stmu00kVint7pZo5JSXSzJw4kzlbtwIPPwzceqt6MgcA3nhDOv2A9t130o5WP/6o3kcQgOeeA4qLsxYWESWGCR0iIiIiIsoP770nJRoii9qMHAksXQqcdVbSQ+v1wJ13SpN/tKRQX7kwbN0q7WjV2aneR6+XZuYcdFDaT//dd99h1qxZWLhwISZOnJj28YkGE+5yRUREREREuff3vwO/+110MmfPPYH//CelZA4grRqy2frvl0R95cIhitJ6s/6KTC9aBJhMGTi9iBkzZmDZsmU49NBD0dTUBFFryRcRaWJCh4iIiIiIcu+HH4CfflK2HXqolHwoL49riG++AZ58Uv14TY00+URNEvWVC0t9PfDUU9p9Zs4EZsxI+6nb2tpwzjnn4B//+AcAYNOmTbBarViwYEHaz0U0WDCh0w+LxYKGhoa0jWez2WCxWOB2uxEIBELtwWAQfr8fdrsdpaWlimNERERERAPepZcC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HTp0ICQkhLp16zp9Z9asWQQEBJTiLkVEREREypjPP4d58+yGfu5+L22vOseuJvKECaZ+b82aEBFhbmaJB+bOhcGDTTFkZ3LvsPXr53KpnJwcJk6cSFxcHPXr17d7FhMTQ3h4OMnJyaSnpxMcHExsbKzCHBFxKsDmx6MuHTt2zPtxZmYmaWlpHr3vrK2fFG3Hjh00bdoUgO3bt9OkSRM/70hERERE3JadbU6B/PjjqaGghpxxyMr+nPqFplss8PPPak3usUWL4Prr4eRJ53MCAswJnptvdrlUVlYWQ4cO5a233qJz584sXbqU2rVre3nDIrJ3714aN25sN7Znzx4aNWrkpx357utvv1652rp1K+vXr2fdunVs3boVm83m9jcRERERkUpr+nS7MAfg007POgxzwOQ/b71VGhurQFauNFeoXIU5YGrrFBHmHD9+nEGDBvHWf38I3377LX379uXYsWPe2q2IVEJ+vXIVEhJCeno648aNIyQkxO33Zs2axbRp03y4MxERERGRMurgQXj8cfuxiy9mVj3Xd6nU+doDa9ZAnz5QVODy0ktQROfdI0eOcOONN7J48WK78S+//JJvv/2WK/MXOBIR8YDf25Z37NiROA8v8rZv316BjoiIiIhUTs8+C3v32o+9/DK1Z7r+q706X7tp40bo3Rv+/df1vOeeg/vvdznl4MGD9OnTh6+++spuvEaNGqSmpirMEZES8euVq6CgIFq0aFGs93TtSkREREQqHasVXn3VfqxvX2zde7Bpk/PXLBZQ52s3bNoEPXtCZqbreaNHw6OPupyyb98+unfvXijMqV27NgsXLuTaa68t4WZFpLLz6wmdWbNmFfvdnJwcL+5ERERERKQcePhh+5ouVavCxIl8+ikUyA3yWCyQlARqllSEtDTTBqzg6aeC7r0Xnn/eFEN2YufOnURGRrKpQMpWv359Fi1aRKdOnbyxYxGp5PzetlxERERERNywbBl88on92P33c6xJSx7oZT9cqxb06gXnnWdO5ijMKcKOHdCjB+za5XpebCy8/LLLMCctLY2IiAjSCxQtOuOMM1i6dCmtW7f2woZFRMpwoNOhQwc6duxIixYtCAsLIyQkhObNm/t7WyIiIiIipS8rq3C9lsaN4fHHeeEFc7gkvylT4JZbSm135dvff5swZ9s21/MGDjQdrQKdV6349ddfiYiI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VPj1VzhxAsaPN1WON28GoHdvmDYNAgv8zdxigaSkSlYQ+Y8/4IorYNMml9N2AR2Amf/93GKxcOutt7J8+XLS0tL43//+R4sWLXy9WxERv9KVKxERERERXzpwAJ580n7snHMgX+AQGwtdu5oA588/zTWr2NhKFuZs2QLdu8P27S6n/QH0APL3vBoxYgQvvviiL3cnIlLmKNAREREREfGlZ5+F/fvtx156yRzBySc01BzeqZR+/RUiImD3bpfTtmDCnD/zjVksFu666y5f7k5EpEzSlSsREREREV/ZvBlee81+rH9/UyNGjA0bzO9HEWFO5llncVVgYKEwR63GRaSy0gkdERERERFfeeQRUxA5V7VqnHhuPDnHoEYN/22rzFizxhQRysx0OW0DsGnUKFZcc41ajYuI/EeBjoiIiIiILyxbBp98Yj92//289HEIU6bAiy9C377OO1xVeCtXQp8+8O+/Lqd9Czx04YUk9+6tVuMiIvn47MrV3LlzfbV0qawvIiIiIlJsWVnwwAP2Y40bszv2MZ57DtLT4YYboGfPvGZXlcvixXD11UWGOSuBd267jaXff8/5559fOnsTESknfBboREdH+2rpUllfRERERKTYpk+Hn3+2H3vuOUaNqWuXYSxfDgcPlu7W/O7jj+H66+HoUZfTlgUGsmPqVF5/+21q1qxZSpsTESk/fHblql69ehw6dIi6det6fe2DBw9is9m8vq6IiIiISIkdPAiPP24/dsklrL4glneG2Q/HxEDHjqW3Nb+bORNuuQWys11OW1G7NuesWkVE27alsy8RkXLIp12u1q1b55N1165dS0ClvWwsIiIiImXac8/Bvn12Q9kvvMyIB+zblNetC88/X5ob87MZM+Dmm4sMc75t3pxLt2+nlcIcERGXfFoUOSIigrCwMK+vu379eq+vKSIiIiJSYlu2wCuv2I/160fKtqso+G+dTz8NZ5xRajvzqz1PP03j//2vyHmbu3Th0i++IKCKereIiBTF5/9L6YvwxWaz6YSOiIiIiJQ9jz0GJ0+e+nnVqhx6YgKP9raf1qoVDB9eulvzl+8HDKDj7NlFzts/cCDnvf8+BPr0EoGISIXh00BHdW5EREREpFIZP94EEh9+aH4+YgRPvdOSvXvtp73yClStWvrbK1U2GxnDhrkV5pwYMYKGL79ciXu4i4h4zqeBTnx8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t8OXX7r/zg03wBtvwJlnemULS5YsYcqUKS7nOLomVbduXcaOHUvz5s1p27YtoaGhWCwWAHr27FnoxI/FYiEpKclpTR4REZGyRoGOiIiIlB9WK0ybBu++CwUL3YaFwX33FXrFYoFRo0ppfxVFdrYJyEaNgiNH3Hvn9NNh0iQYMMArd9o2bdrEww8/7FYdHGfXpEaPHu1wPCYmhvDwcLcLLIuIiJRFCnRERESkfEhJgbg4u2tVuWzNmpH10QKq1q7th41VMD/+CMOGwZo17r8zcCC89ho0alTij9+/fz9PP/00b775ptNrVvkV95pUaGgoY8eOLc4WRUREygTdIhcREZGyz2p1GuYAfHDFm1wdcyaHDpXyviqSI0fMiZywMPfDnDPOgLlz4cMPSxzmnDhxgpdeeomWLVsyadIkt8McXZMSEZHKSid0REREpOybPt1pmAPwxztfspyrufJKWLjQ5AzigUWL4K67YNs299+59VZ4+WVo2LDEH79mzRpuvfVWtmzZ4vD5GWecwXPPPUd4eDhvvfWWrkmJiIigQEdERETKupwcmDfP5ZRgTFHcDRuga1dza6hGjdLYXDn3999w//3mhI27atUy8/v08do2zjzzTLZv315ovHr16jz00EOMHj2aOnXqAOialIiIyH905UpERETKrpMnTZelzZtdTkvnVFHcESMU5hQpJweSkuCCCzwLcwAWLPBqmAPQrFkzHnzwQbuxQYMG8fvvvzNmzJi8MEdERERO0QkdERERKZsOH4boaHOHyoUsLCRjiuI+/jgMH14amyvHfv0V4uPhq6/cf+ecc+DSS01L+LAwjz/SarUW2VEqISGB6dOnExwczEsvvcRll13m8eeIiIhUJgp0REREpGwaOLBQmGMD8jfEzsJCHElsIZShQ+GZZ0p1h+XLsWMwZgwkJpqTT+6oUgUefhieeAJq1izWx6akpBAXF2dX5HjChAkkJSURExOTN1anTh2++eYbgoODCfBC23MREZGKToGOiIiIlE2PPQaff266LwEnq9XkrpOv0cJmJZh00gkmmVi2EErfvvDmm6AcwIkVK+DOO023MHd17gxTp0Lr1sX+2IULFzJkyBBsNpvdeHZ2NnFxcYSHh9ud1AkJCSn2Z4mIiFQ2CnRERESkbLrsMpgzB667juzadbny0AJW2zo7nPrss+YwiRSwb585YfPWW+6/U7cujBtnrmUFel5u8cCBA8ycOZOUlBS+++47p/Oys7NJTk5WkWMREZFiUlFkERERKbt694YPP2RMr1WsznEc5gC8/34p7qk8sNlMiHPBBZ6FOVFRsGmTaWHuQZiTnZ3N4sWLuemmmzjrrLO46667XIY5udLT093fm4iIiNjRv2WJiIhImbaxRX/Gfux6jnKBfKxWiImBr792/51zz4XXX/e4e9XmzZuZMWMGb7/9Njt37vRwoxAcHFz0JBEREXFIgY6IiIj41+zZsGMHPPBAoUfr1sFVV5l6vq4oF8DUGnr+eRg/3v2ix4GBcN99ppp07dpuf5TVamXw4MGsXr26mJsFi8VCbGxssd8XERGp7BToiIiIiP+8+Sbcc4+5ItSgAdxxh93jCy6ACy+ENWucL2GxQKXOBWw2mDfPBGJ//un+e+3bm6LHLtqQO2s3ftZZZ/HDDz84fa9q1apcf/31xMTEsHv3bu688067LlcWi4WkpKRCrctFRETEfQp0REREpPTZbKaS8VNPnRobMsSEOtddlzdUqxZ8+il06eK4QZPFAklJUGlzgc2b4d57YckS99+pVQueew6GD3dZSbqoduMDBgwgJSXF7p2wsDAGDx7MzTffTMOGDfPGu3Xr5jAYEhERkeILsBXsIymVwo4dO2jatCkA27dvp0mTJn7ekYiIVBo5Oeaaz6RJhZ898AC8+GKh4bQ0mDDBHOZ57z1TMyc42JzMqZS5wOHDMGYMTJzo/vUqMGHZpEmmZo4T//77L6+//jqjR492+NxisbBp0yZ2795Nt27daNSoEbfeeiuDBw/mkksu8fRXIiIi4lV79+6lcePGdmN79uyhUaNGftqR777+1gkdERERKT0nTphrVR9+WPjZU0/Zn9jJJyTE3M4CqNRdrm0208r9wQdh+3b336tVC95+G264AQICHCxrY9WqVcyYMYNZs2Zx+PBhp0vltht//vnnWbBgAZGRkVStWrU4vxoREREpAQU6IiIi4ltWKyQnm+/Xry/ckioggCOJrzF6+z2MOwo1a/pnm2Xeb7+Z61XLlnn+7oIF0K1boeE///yTt956ixkzZpCWlub2cunp6QQEBHDNNdd4vhcRERHxCgU6IiIi4jspKRAXB/nqsNipWpV9L75NtzcH8euv8Mcf5gCKi9Iulc+//5p6Qy+95Nn1qtatzbeHHrIrfHzkyBHmzZtHSkoKK1asoDi379VuXERExP/01yURERHxjbVrYehQUzPHkdNOI+3Fj+j6bE927TJDn3xi6uRMnuzwZlDlYrOZlu4PPgg7d7r/3umnw7hxEBNj2pJjrlR98803zJgxg5kzZ3Lo0CGXSwT895vvKOxRu3EREZGyIdDfGxAREZEK6LvvoGNH52EOsLtrNO1GnQpzcs2fD3//7eP9lXWbNkFEBAwc6H6YExgId9/N1s8+I2HLFgbdfDMJCQls3ryZLl260KVLF5KSklyGORdccAGJiYns3LmT6dOnY7FY7J6r3biIiEjZoRM6IiIi4lhu7RtHLaVOnIANG6BFC3MipKCLLzZHbFxc51m19DiHCjxu1QoWLYIzz/Tir6M8+ecfeOYZePllyMpy/73LLoPXXydl40biLrusUKvxbg7q5+SqV68eN910E4MHD6ZTp055p3NiYmIIDw9Xu3EREZEySoGOiIiIFOao9s348XD11SZ0+O47OHbMBD4xMYXfr1nTpDK7dzv9iK02+zos4eHw8cfQoIG3fhHliM1mOn898IBnx5MaNYLx47HddhsrvviCuLg4uzAHTFeqlStX2o0FBAQQGRlJTEwMffv25bTTTnO4fGhoKGMrdVsxERGRsktXrkRERMSe1eq4kHFOjumW9OWXJswB+Ppr5+v06uX0URYWkjlVh6V/f1i6tJKGOWvXQteucPPN7oc5gYFw7738vWoVE/fto3WbNvTs2bNQmJMrOzub008/ndDQUMaMGcOff/7J4sWLGTRokNMwR0RERMo2ndARERERe8nJzrtSFeQq0HnxRb7OuYxL376bKpxaLwsLcSSxBXN1Z/hwc8OoQLmWim/nTnj0UXj7bY9ey7n8cj6/8UZe/uILFl50kdMQp6AuXbowb968vCtVIiIiUr4p0BERERF7v/3m/lyLxZzWqVGj0CPrvvp0e28YwVxFLMkEk046wSQTmxfmJCbCI49Uso5WR47ACy+YTlRHjrj92smGDZkZFsb969ax/+GHPf7YVq1aKcwRERGpQBToiIiIyClHj5r6OK5cdhk89pj53sUdqdyDPlsI5VEK12G57joYObKkGy5HbDb44AMYNQp27HD7tZyAAD5o2JC79+3j0NKlxfpotRoXERGpeFRDR0RERIycHLjjDgr1Ec/PYoG33iLn6mv5eVcDkpLgnnscN7NKT3f9cTVrlmy75cq338Lll8Mtt3gU5uwC2tps3LpvH86ajdesWZM77riDzz//nGnTpqnVuIiISCWhEzoiIiJiPPYYzJ7t9HEWFt5oncT8e0JZswYO5UsY7r//VEfzXMH2TawKKep5hbB9O4weDe+/X6zX+wA/OXnWtWtXYmJiiIqKok6dOgBceeWVXHHFFWo1LiIiUgko0BERERHTL3zcOLuhf6nFhwyiNv+eqn2z0XEw8M03hQOd2FiYMMFxfWWLxTyvsA4fNm3eJ0ww19jclAWkAMeBZGBDgedNmzbljjvu4I477qBly5YO11CrcRERkcpBgY6IiIhA795w223wzjsAnKQKNzCPZUS69fo338Dtt9uPhYZCUlLhDugWixmvkIdGcnLgvffMqRxXV9cc+BAYDfxRYNxisTBo0CAGDx5M9+7dCQzUjXkRERFRoCMiIiIA1avDW29BSAj873/cyWS3wpxzzzWlYbp1c/w8JgbCw02B5PR0c80qNraChjlff23unq1d69FrW+vX5/YDB1jt5Hnfvn159913S7w9ERERqVgU6IiIiIgREMChB5/mhlf7suJAO6fTOnUy3akuuwzOPrvoZUNDoULfAPr+e3jmGZg/37P3zj4bxo5l+q+/sjox0em08847r4QbFBERkYpIgY6IiIgAcOIE9O+PyzDHYoF3362gJ2w8lZkJTzwBkyZ59t5pp8Ejj/BytWp0b9uWmMsuY/zEiWQ7KDakduMiIiLijC5hi4iIVDbZ2fDPP4WG166FL790/lqFrn3jiePH4cUX4ayzPA9zbrkFfv+dN888kwcef5zw8HD+/PNPkpKS1G5cREREPKITOiIiIpXNAw/AF1/AggXQtGne8OWXw+LF0K8fHDwI9evDgAHmIEqFrn3jrpwc03788cfhj4Kli4tw6aXw8svQuTOffPIJw4cPB+Cff/6hd+/epKSksGnTJrUbFxEREbcp0BEREalMXnkFXnvN/PjSS03dl7CwvMdXXgmrVkF0tGl41bGjf7ZZpthssGQJjBoFP/zg2btNm5p28DfdBAEBfPvttwwaNIicnJy8KVlZWRw7dkztxkVERMQjCnREREQqi48/Nqdzcu3eDZGRpv1U3bp5w61bwy+/mCtWld66daYC9IoVnr1Xs6ZpXf7QQ+bHgNVq5brrruPo0aN2U5988kmG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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "image/png": { + "height": 435, + "width": 570 + } + }, + "output_type": "display_data" + } + ], + "source": [ + "g_rej = g.add_cols(rej_df)\n", + "g_rej.df.sort_values(\"theta0\", inplace=True)\n", + "true_err = 1 - scipy.stats.norm.cdf(-g_rej.get_theta()[:, 0] - lam)\n", + "\n", + "plt.plot(\n", + " g_rej.df[\"theta0\"],\n", + " 100 * g_rej.df[\"tie_est\"],\n", + " \"k--o\",\n", + " markersize=2,\n", + " label=\"Monte Carlo estimate\",\n", + ")\n", + "plt.plot(\n", + " g_rej.df[\"theta0\"],\n", + " 100 * g_rej.df[\"tie_cp_bound\"],\n", + " \"b--o\",\n", + " markersize=2,\n", + " label=\"Clopper-Pearson Bound\",\n", + ")\n", + "plt.plot(\n", + " g_rej.df[\"theta0\"],\n", + " 100 * g_rej.df[\"tie_bound\"],\n", + " \"r--o\",\n", + " markersize=2,\n", + " label=\"Tilt Bound\",\n", + ")\n", + "plt.plot(\n", + " g_rej.df[\"theta0\"],\n", + " 100 * true_err,\n", + " \"r-*\",\n", + " linewidth=2.5,\n", + " markersize=2,\n", + " label=\"True Type I Error\",\n", + ")\n", + "plt.axhline(2.5, color=\"k\")\n", + "plt.axvline(0, color=\"k\")\n", + "plt.ylim([0, 2.6])\n", + "plt.legend(fontsize=11, bbox_to_anchor=(0.05, 0.94), loc=\"upper left\")\n", + "plt.xlabel(\"$z$\")\n", + "plt.ylabel(\"Type I Error (\\%)\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "confirm", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.8" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b4c6ec5b2d6c7b38df115d547b82cd53ca25eea58d87299956d35a9dc79f19f1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/tutorials/ztest.md b/tutorials/ztest.md new file mode 100644 index 00000000..aa8ccbdd --- /dev/null +++ b/tutorials/ztest.md @@ -0,0 +1,70 @@ +```python +from imprint.nb_util import setup_nb + +setup_nb() +import jax +import jax.numpy as jnp +import numpy as np +import pandas as pd +import scipy.stats +import matplotlib.pyplot as plt + +import imprint as ip +from imprint.models.ztest import ZTest1D +``` + +```python +g = ip.cartesian_grid([-1], [1], n=[100], null_hypos=[ip.hypo("x < 0")]) +# lam = -1.96 because we negated the statistics so we can do a less thanj +# comparison. +lam = -1.96 +K = 8192 +rej_df = ip.validate(ZTest1D, g, lam, K=K) +``` + +```python +g_rej = g.add_cols(rej_df) +g_rej.df.sort_values("theta0", inplace=True) +true_err = 1 - scipy.stats.norm.cdf(-g_rej.get_theta()[:, 0] - lam) + +plt.plot( + g_rej.df["theta0"], + 100 * g_rej.df["tie_est"], + "k--o", + markersize=2, + label="Monte Carlo estimate", +) +plt.plot( + g_rej.df["theta0"], + 100 * g_rej.df["tie_cp_bound"], + "b--o", + markersize=2, + label="Clopper-Pearson Bound", +) +plt.plot( + g_rej.df["theta0"], + 100 * g_rej.df["tie_bound"], + "r--o", + markersize=2, + label="Tilt Bound", +) +plt.plot( + g_rej.df["theta0"], + 100 * true_err, + "r-*", + linewidth=2.5, + markersize=2, + label="True Type I Error", +) +plt.axhline(2.5, color="k") +plt.axvline(0, color="k") +plt.ylim([0, 2.6]) +plt.legend(fontsize=11, bbox_to_anchor=(0.05, 0.94), loc="upper left") +plt.xlabel("$z$") +plt.ylabel("Type I Error (\%)") +plt.show() +``` + +```python + +```