From 0d145dfb899b564fe56ea04aa554012103af5dec Mon Sep 17 00:00:00 2001 From: Ludo Galabru Date: Wed, 1 Nov 2023 19:57:03 -0400 Subject: [PATCH] feat: ordhook-sdk-js refactoring (#186) --- .github/workflows/ci.yaml | 182 +- .github/workflows/ordhook-sdk-js.yml | 518 ++ .gitignore | 198 + Cargo.lock | 683 +-- components/ordhook-cli/Cargo.toml | 2 +- components/ordhook-cli/src/cli/mod.rs | 27 +- components/ordhook-core/Cargo.toml | 10 +- components/ordhook-core/src/core/mod.rs | 13 +- .../pipeline/processors/block_archiving.rs | 11 +- .../processors/inscription_indexing.rs | 10 +- .../core/protocol/inscription_sequencing.rs | 18 +- .../src/core/protocol/inscription_tracking.rs | 14 +- components/ordhook-core/src/db/mod.rs | 39 +- components/ordhook-core/src/download/mod.rs | 102 +- components/ordhook-core/src/scan/bitcoin.rs | 18 +- .../ordhook-core/src/service/http_api.rs | 2 +- components/ordhook-core/src/service/mod.rs | 69 +- .../ordhook-core/src/service/runloops.rs | 1 + components/ordhook-sdk-js/.cargo/config.toml | 3 + components/ordhook-sdk-js/.npmignore | 16 + .../ordhook-sdk-js/.yarn/install-state.gz | Bin 0 -> 179343 bytes .../.yarn/releases/yarn-3.6.4.cjs | 874 +++ components/ordhook-sdk-js/.yarnrc.yml | 3 + components/ordhook-sdk-js/Cargo.lock | 4755 ----------------- components/ordhook-sdk-js/Cargo.toml | 32 +- .../{lib/test.ts => __test__/index.spec.mjs} | 21 +- components/ordhook-sdk-js/build.rs | 5 + components/ordhook-sdk-js/index.d.ts | 21 + components/ordhook-sdk-js/index.js | 257 + components/ordhook-sdk-js/lib/index.ts | 108 - .../ordhook-sdk-js/npm/darwin-arm64/README.md | 3 + .../npm/darwin-arm64/package.json | 18 + .../npm/darwin-universal/README.md | 3 + .../npm/darwin-universal/package.json | 15 + .../ordhook-sdk-js/npm/darwin-x64/README.md | 3 + .../npm/darwin-x64/package.json | 18 + .../npm/linux-x64-gnu/README.md | 3 + .../npm/linux-x64-gnu/package.json | 21 + components/ordhook-sdk-js/package-lock.json | 2552 --------- components/ordhook-sdk-js/package.json | 78 +- components/ordhook-sdk-js/rustfmt.toml | 2 + components/ordhook-sdk-js/src/lib.rs | 446 +- .../ordhook-sdk-js/src/ordinals_indexer.rs | 360 ++ components/ordhook-sdk-js/src/serde/errors.rs | 84 - components/ordhook-sdk-js/src/serde/mod.rs | 4 - components/ordhook-sdk-js/src/serde/ser.rs | 575 -- components/ordhook-sdk-js/tsconfig.json | 100 - components/ordhook-sdk-js/yarn.lock | 2082 ++++++++ dockerfiles/components/ordhook.dockerfile | 38 +- ordhook.code-workspace | 11 + package-lock.json | 6 + 51 files changed, 5266 insertions(+), 9168 deletions(-) create mode 100644 .github/workflows/ordhook-sdk-js.yml create mode 100644 components/ordhook-sdk-js/.cargo/config.toml create mode 100644 components/ordhook-sdk-js/.npmignore create mode 100644 components/ordhook-sdk-js/.yarn/install-state.gz create mode 100755 components/ordhook-sdk-js/.yarn/releases/yarn-3.6.4.cjs create mode 100644 components/ordhook-sdk-js/.yarnrc.yml delete mode 100644 components/ordhook-sdk-js/Cargo.lock rename components/ordhook-sdk-js/{lib/test.ts => __test__/index.spec.mjs} (55%) create mode 100644 components/ordhook-sdk-js/build.rs create mode 100644 components/ordhook-sdk-js/index.d.ts create mode 100644 components/ordhook-sdk-js/index.js delete mode 100644 components/ordhook-sdk-js/lib/index.ts create mode 100644 components/ordhook-sdk-js/npm/darwin-arm64/README.md create mode 100644 components/ordhook-sdk-js/npm/darwin-arm64/package.json create mode 100644 components/ordhook-sdk-js/npm/darwin-universal/README.md create mode 100644 components/ordhook-sdk-js/npm/darwin-universal/package.json create mode 100644 components/ordhook-sdk-js/npm/darwin-x64/README.md create mode 100644 components/ordhook-sdk-js/npm/darwin-x64/package.json create mode 100644 components/ordhook-sdk-js/npm/linux-x64-gnu/README.md create mode 100644 components/ordhook-sdk-js/npm/linux-x64-gnu/package.json delete mode 100644 components/ordhook-sdk-js/package-lock.json create mode 100644 components/ordhook-sdk-js/rustfmt.toml create mode 100644 components/ordhook-sdk-js/src/ordinals_indexer.rs delete mode 100644 components/ordhook-sdk-js/src/serde/errors.rs delete mode 100644 components/ordhook-sdk-js/src/serde/mod.rs delete mode 100644 components/ordhook-sdk-js/src/serde/ser.rs delete mode 100644 components/ordhook-sdk-js/tsconfig.json create mode 100644 components/ordhook-sdk-js/yarn.lock create mode 100644 ordhook.code-workspace create mode 100644 package-lock.json diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 900c7c3..def295f 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -4,36 +4,58 @@ on: push: branches: - develop - - main - tags-ignore: - - "**" + - feat/ordhook-sdk-js paths-ignore: - - "**/CHANGELOG.md" + - '**/CHANGELOG.md' pull_request: workflow_dispatch: +concurrency: + group: ${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }} + cancel-in-progress: true + jobs: - build-publish: + test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: - token: ${{ secrets.GH_TOKEN || secrets.GITHUB_TOKEN }} - fetch-depth: 0 persist-credentials: false + - name: Cache cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + - name: Cargo test run: | rustup update - cargo test --all + RUST_BACKTRACE=1 cargo test --all -- --test-threads=1 + + build-publish: + runs-on: ubuntu-latest + needs: test + outputs: + docker_image_digest: ${{ steps.docker_push.outputs.digest }} + new_release_published: ${{ steps.semantic.outputs.new_release_published }} + steps: + - uses: actions/checkout@v4 + with: + persist-credentials: false - name: Semantic Release - uses: cycjimmy/semantic-release-action@v3 + uses: cycjimmy/semantic-release-action@v4 id: semantic # Only run on non-PR events or only PRs that aren't from forks if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository env: - GITHUB_TOKEN: ${{ secrets.GH_TOKEN || secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SEMANTIC_RELEASE_PACKAGE: ${{ github.event.repository.name }} with: semantic_version: 19 @@ -42,15 +64,21 @@ jobs: @semantic-release/git@10.0.1 conventional-changelog-conventionalcommits@6.1.0 + - name: Checkout tag + if: steps.semantic.outputs.new_release_version != '' + uses: actions/checkout@v4 + with: + persist-credentials: false + ref: v${{ steps.semantic.outputs.new_release_version }} + - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v3 - name: Docker Meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: | - blockstack/${{ github.event.repository.name }} hirosystems/${{ github.event.repository.name }} tags: | type=ref,event=branch @@ -59,18 +87,134 @@ jobs: type=semver,pattern={{major}}.{{minor}},value=${{ steps.semantic.outputs.new_release_version }},enable=${{ steps.semantic.outputs.new_release_version != '' }} type=raw,value=latest,enable={{is_default_branch}} - - name: Login to DockerHub - uses: docker/login-action@v2 + - name: Log in to DockerHub + uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Build/Tag/Push Image - uses: docker/build-push-action@v2 + - name: Build/Push Image + uses: docker/build-push-action@v5 + id: docker_push with: context: . tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} file: ./dockerfiles/components/ordhook.dockerfile + cache-from: type=gha + cache-to: type=gha,mode=max # Only push if (there's a new release on main branch, or if building a non-main branch) and (Only run on non-PR events or only PRs that aren't from forks) - push: ${{ (github.ref != 'refs/heads/master' || steps.semantic.outputs.new_release_version != '') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} + push: ${{ (github.ref != 'refs/heads/main' || steps.semantic.outputs.new_release_version != '') && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) }} + + deploy-dev: + runs-on: ubuntu-latest + strategy: + matrix: + k8s-env: [mainnet] + needs: build-publish + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository + env: + DEPLOY_ENV: dev + environment: + name: Development-${{ matrix.k8s-env }} + url: https://platform.dev.hiro.so/ + steps: + - name: Checkout actions repo + uses: actions/checkout@v4 + with: + ref: main + token: ${{ secrets.GH_TOKEN }} + repository: ${{ secrets.DEVOPS_ACTIONS_REPO }} + + - name: Deploy Ordhook build to Dev ${{ matrix.k8s-env }} + uses: ./actions/deploy + with: + docker_tag: ${{ needs.build-publish.outputs.docker_image_digest }} + file_pattern: manifests/bitcoin/${{ matrix.k8s-env }}/ordhook/${{ env.DEPLOY_ENV }}/base/kustomization.yaml + gh_token: ${{ secrets.GH_TOKEN }} + + auto-approve-dev: + runs-on: ubuntu-latest + if: needs.build-publish.outputs.new_release_published == 'true' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + needs: build-publish + steps: + - name: Approve pending deployments + run: | + sleep 5 + ENV_IDS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/ordhook/actions/runs/${{ github.run_id }}/pending_deployments" | jq -r '[.[].environment.id // empty]') + if [[ "${ENV_IDS}" != "[]" ]]; then + curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/ordhook/actions/runs/${{ github.run_id }}/pending_deployments" -d "{\"environment_ids\":${ENV_IDS},\"state\":\"approved\",\"comment\":\"auto approve\"}" + fi + + deploy-staging: + runs-on: ubuntu-latest + strategy: + matrix: + k8s-env: [mainnet] + needs: + - build-publish + - deploy-dev + if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository + env: + DEPLOY_ENV: stg + environment: + name: Staging-${{ matrix.k8s-env }} + url: https://platform.stg.hiro.so/ + steps: + - name: Checkout actions repo + uses: actions/checkout@v4 + with: + ref: main + token: ${{ secrets.GH_TOKEN }} + repository: ${{ secrets.DEVOPS_ACTIONS_REPO }} + + - name: Deploy Chainhook build to Stg ${{ matrix.k8s-env }} + uses: ./actions/deploy + with: + docker_tag: ${{ needs.build-publish.outputs.docker_image_digest }} + file_pattern: manifests/bitcoin/${{ matrix.k8s-env }}/ordhook/${{ env.DEPLOY_ENV }}/base/kustomization.yaml + gh_token: ${{ secrets.GH_TOKEN }} + + auto-approve-stg: + runs-on: ubuntu-latest + if: needs.build-publish.outputs.new_release_published == 'true' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + needs: + - build-publish + - deploy-dev + steps: + - name: Approve pending deployments + run: | + sleep 5 + ENV_IDS=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/ordhook/actions/runs/${{ github.run_id }}/pending_deployments" | jq -r '[.[].environment.id // empty]') + if [[ "${ENV_IDS}" != "[]" ]]; then + curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/repos/hirosystems/ordhook/actions/runs/${{ github.run_id }}/pending_deployments" -d "{\"environment_ids\":${ENV_IDS},\"state\":\"approved\",\"comment\":\"auto approve\"}" + fi + + deploy-prod: + runs-on: ubuntu-latest + strategy: + matrix: + k8s-env: [mainnet,testnet] + needs: + - build-publish + - deploy-staging + if: needs.build-publish.outputs.new_release_published == 'true' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) + env: + DEPLOY_ENV: prd + environment: + name: Production-${{ matrix.k8s-env }} + url: https://platform.hiro.so/ + steps: + - name: Checkout actions repo + uses: actions/checkout@v4 + with: + ref: main + token: ${{ secrets.GH_TOKEN }} + repository: ${{ secrets.DEVOPS_ACTIONS_REPO }} + + - name: Deploy Ordhook build to Prd ${{ matrix.k8s-env }} + uses: ./actions/deploy + with: + docker_tag: ${{ needs.build-publish.outputs.docker_image_digest }} + file_pattern: manifests/bitcoin/${{ matrix.k8s-env }}/ordhook/${{ env.DEPLOY_ENV }}/base/kustomization.yaml + gh_token: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/ordhook-sdk-js.yml b/.github/workflows/ordhook-sdk-js.yml new file mode 100644 index 0000000..8c70b33 --- /dev/null +++ b/.github/workflows/ordhook-sdk-js.yml @@ -0,0 +1,518 @@ +name: ordhook-sdk-js +env: + DEBUG: napi:* + APP_NAME: ordhook-sdk-js + COMPONENT_PATH: components/ordhook-sdk-js + MACOSX_DEPLOYMENT_TARGET: '13.0' +permissions: + contents: write + id-token: write +'on': + push: + branches: + - feat/ordhook-sdk-js + tags-ignore: + - '**' + paths-ignore: + - '**/*.md' + - LICENSE + - '**/*.gitignore' + - .editorconfig + - docs/** + pull_request: null +jobs: + build: + strategy: + fail-fast: false + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + build: | + yarn build + strip -x *.node + # - host: windows-latest + # build: yarn build + # target: x86_64-pc-windows-msvc + # - host: windows-latest + # build: | + # rustup target add i686-pc-windows-msvc + # yarn build --target i686-pc-windows-msvc + # target: i686-pc-windows-msvc + - host: ubuntu-latest + target: x86_64-unknown-linux-gnu + docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian + build: |- + sudo apt-get install libssl-dev && + set -e && + yarn --cwd components/ordhook-sdk-js build --target x86_64-unknown-linux-gnu && + strip -x components/ordhook-sdk-js/*.node + # - host: ubuntu-latest + # target: x86_64-unknown-linux-musl + # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + # build: set -e && yarn --cwd components/ordhook-sdk-js build && strip components/ordhook-sdk-js/*.node + - host: macos-latest + target: aarch64-apple-darwin + build: | + rustup target add aarch64-apple-darwin + yarn build --target aarch64-apple-darwin + strip -x *.node + # - host: ubuntu-latest + # target: aarch64-unknown-linux-gnu + # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64 + # build: |- + # sudo apt-get install libssl-dev && + # set -e && + # rustup target add aarch64-unknown-linux-gnu && + # yarn --cwd components/ordhook-sdk-js build --target aarch64-unknown-linux-gnu && + # aarch64-unknown-linux-gnu-strip components/ordhook-sdk-js/*.node + # - host: ubuntu-latest + # target: armv7-unknown-linux-gnueabihf + # setup: | + # sudo apt-get update + # sudo apt-get install gcc-arm-linux-gnueabihf -y + # build: | + # rustup target add armv7-unknown-linux-gnueabihf + # yarn --cwd components/ordhook-sdk-js build --target armv7-unknown-linux-gnueabihf + # arm-linux-gnueabihf-strip components/ordhook-sdk-js/*.node + # - host: ubuntu-latest + # target: aarch64-unknown-linux-musl + # docker: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-alpine + # build: |- + # set -e && + # rustup target add aarch64-unknown-linux-musl && + # yarn --cwd components/ordhook-sdk-js build --target aarch64-unknown-linux-musl && + # /aarch64-linux-musl-cross/bin/aarch64-linux-musl-strip components/ordhook-sdk-js/*.node + # - host: windows-latest + # target: aarch64-pc-windows-msvc + # build: |- + # rustup target add aarch64-pc-windows-msvc + # yarn build --target aarch64-pc-windows-msvc + name: stable - ${{ matrix.settings.target }} - node@18 + runs-on: ${{ matrix.settings.host }} + defaults: + run: + working-directory: ./components/ordhook-sdk-js + steps: + - uses: actions/checkout@v3 + - name: Setup node + uses: actions/setup-node@v3 + if: ${{ !matrix.settings.docker }} + with: + node-version: 18 + check-latest: true + cache: yarn + cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + - name: Install + uses: dtolnay/rust-toolchain@stable + if: ${{ !matrix.settings.docker }} + with: + toolchain: stable + targets: ${{ matrix.settings.target }} + - name: Cache cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + .cargo-cache + target/ + key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }} + # - uses: goto-bus-stop/setup-zig@v2 + # if: ${{ matrix.settings.target == 'armv7-unknown-linux-gnueabihf' }} + # with: + # version: 0.10.1 + - name: Setup toolchain + run: ${{ matrix.settings.setup }} + if: ${{ matrix.settings.setup }} + shell: bash + # - name: Setup node x86 + # if: matrix.settings.target == 'i686-pc-windows-msvc' + # run: yarn config set supportedArchitectures.cpu "ia32" + # shell: bash + - name: Install dependencies + run: yarn install + # - name: Setup node x86 + # uses: actions/setup-node@v3 + # if: matrix.settings.target == 'i686-pc-windows-msvc' + # with: + # node-version: 18 + # check-latest: true + # cache: yarn + # cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + # architecture: x86 + - name: Build in docker + uses: addnab/docker-run-action@v3 + if: ${{ matrix.settings.docker }} + with: + image: ${{ matrix.settings.docker }} + options: '--user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build' + run: ${{ matrix.settings.build }} + - name: Build + run: ${{ matrix.settings.build }} + if: ${{ !matrix.settings.docker }} + shell: bash + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-${{ matrix.settings.target }} + path: ${{ env.COMPONENT_PATH }}/${{ env.APP_NAME }}.*.node + if-no-files-found: error + # build-freebsd: + # runs-on: macos-12 + # name: Build FreeBSD + # defaults: + # run: + # working-directory: ./components/ordhook-sdk-js + # steps: + # - uses: actions/checkout@v3 + # - name: Build + # id: build + # uses: vmactions/freebsd-vm@v0 + # env: + # DEBUG: napi:* + # RUSTUP_HOME: /usr/local/rustup + # CARGO_HOME: /usr/local/cargo + # RUSTUP_IO_THREADS: 1 + # with: + # envs: DEBUG RUSTUP_HOME CARGO_HOME RUSTUP_IO_THREADS + # usesh: true + # mem: 3000 + # prepare: | + # pkg install -y -f curl node libnghttp2 npm yarn + # curl https://sh.rustup.rs -sSf --output rustup.sh + # sh rustup.sh -y --profile minimal --default-toolchain beta + # export PATH="/usr/local/cargo/bin:$PATH" + # echo "~~~~ rustc --version ~~~~" + # rustc --version + # echo "~~~~ node -v ~~~~" + # node -v + # echo "~~~~ yarn --version ~~~~" + # yarn --version + # run: | + # export PATH="/usr/local/cargo/bin:$PATH" + # pwd + # ls -lah + # whoami + # env + # freebsd-version + # cd ./components/ordhook-sdk-js + # yarn install + # yarn build + # strip -x *.node + # yarn test + # rm -rf node_modules + # rm -rf target + # rm -rf .yarn/cache + # - name: Upload artifact + # uses: actions/upload-artifact@v3 + # with: + # name: bindings-freebsd + # path: ${{ env.COMPONENT_PATH }}/${{ env.APP_NAME }}.*.node + # if-no-files-found: error + test-macOS-binding: + name: Test bindings on ${{ matrix.settings.target }} - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + settings: + - host: macos-latest + target: x86_64-apple-darwin + # - host: windows-latest + # target: x86_64-pc-windows-msvc + node: + - '14' + - '16' + - '18' + runs-on: ${{ matrix.settings.host }} + steps: + - uses: actions/checkout@v3 + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + check-latest: true + cache: yarn + cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + - name: Install dependencies + run: yarn install + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: bindings-${{ matrix.settings.target }} + path: . + - name: List packages + run: ls -R . + shell: bash + test-linux-x64-gnu-binding: + name: Test bindings on Linux-x64-gnu - node@${{ matrix.node }} + needs: + - build + strategy: + fail-fast: false + matrix: + node: + - '14' + - '16' + - '18' + runs-on: ubuntu-latest + defaults: + run: + working-directory: ./components/ordhook-sdk-js + steps: + - uses: actions/checkout@v3 + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + check-latest: true + cache: yarn + cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + - name: Install dependencies + run: yarn install + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: bindings-x86_64-unknown-linux-gnu + path: . + - name: List packages + run: ls -R . + shell: bash + # - name: Test bindings + # run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-slim yarn test + # test-linux-x64-musl-binding: + # name: Test bindings on x86_64-unknown-linux-musl - node@${{ matrix.node }} + # needs: + # - build + # strategy: + # fail-fast: false + # matrix: + # node: + # - '14' + # - '16' + # - '18' + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Setup node + # uses: actions/setup-node@v3 + # with: + # node-version: ${{ matrix.node }} + # check-latest: true + # cache: yarn + # cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + # - name: Install dependencies + # run: | + # yarn config set supportedArchitectures.libc "musl" + # yarn install + # - name: Download artifacts + # uses: actions/download-artifact@v3 + # with: + # name: bindings-x86_64-unknown-linux-musl + # path: . + # - name: List packages + # run: ls -R . + # shell: bash + # - name: Test bindings + # run: docker run --rm -v $(pwd):/build -w /build node:${{ matrix.node }}-alpine yarn test + # test-linux-aarch64-gnu-binding: + # name: Test bindings on aarch64-unknown-linux-gnu - node@${{ matrix.node }} + # needs: + # - build + # strategy: + # fail-fast: false + # matrix: + # node: + # - '14' + # - '16' + # - '18' + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Download artifacts + # uses: actions/download-artifact@v3 + # with: + # name: bindings-aarch64-unknown-linux-gnu + # path: . + # - name: List packages + # run: ls -R . + # shell: bash + # - name: Install dependencies + # run: | + # yarn config set supportedArchitectures.cpu "arm64" + # yarn config set supportedArchitectures.libc "glibc" + # yarn install + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v2 + # with: + # platforms: arm64 + # - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # - name: Setup and run tests + # uses: addnab/docker-run-action@v3 + # with: + # image: node:${{ matrix.node }}-slim + # options: '--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build' + # run: | + # set -e + # yarn test + # ls -la + # test-linux-aarch64-musl-binding: + # name: Test bindings on aarch64-unknown-linux-musl - node@${{ matrix.node }} + # needs: + # - build + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Download artifacts + # uses: actions/download-artifact@v3 + # with: + # name: bindings-aarch64-unknown-linux-musl + # path: . + # - name: List packages + # run: ls -R . + # shell: bash + # - name: Install dependencies + # run: | + # yarn config set supportedArchitectures.cpu "arm64" + # yarn config set supportedArchitectures.libc "musl" + # yarn install + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v2 + # with: + # platforms: arm64 + # - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # - name: Setup and run tests + # uses: addnab/docker-run-action@v3 + # with: + # image: node:lts-alpine + # options: '--platform linux/arm64 -v ${{ github.workspace }}:/build -w /build' + # run: | + # set -e + # yarn test + # test-linux-arm-gnueabihf-binding: + # name: Test bindings on armv7-unknown-linux-gnueabihf - node@${{ matrix.node }} + # needs: + # - build + # strategy: + # fail-fast: false + # matrix: + # node: + # - '14' + # - '16' + # - '18' + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Download artifacts + # uses: actions/download-artifact@v3 + # with: + # name: bindings-armv7-unknown-linux-gnueabihf + # path: . + # - name: List packages + # run: ls -R . + # shell: bash + # - name: Install dependencies + # run: | + # yarn config set supportedArchitectures.cpu "arm" + # yarn install + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v2 + # with: + # platforms: arm + # - run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + # - name: Setup and run tests + # uses: addnab/docker-run-action@v3 + # with: + # image: node:${{ matrix.node }}-bullseye-slim + # options: '--platform linux/arm/v7 -v ${{ github.workspace }}:/build -w /build' + # run: | + # set -e + # yarn test + # ls -la + universal-macOS: + name: Build universal macOS binary + needs: + - build + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 18 + check-latest: true + cache: yarn + cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + - name: Install dependencies + run: yarn --cwd components/ordhook-sdk-js install + - name: Download macOS x64 artifact + uses: actions/download-artifact@v3 + with: + name: bindings-x86_64-apple-darwin + path: components/ordhook-sdk-js/artifacts + - name: Download macOS arm64 artifact + uses: actions/download-artifact@v3 + with: + name: bindings-aarch64-apple-darwin + path: components/ordhook-sdk-js/artifacts + - name: Combine binaries + run: yarn --cwd components/ordhook-sdk-js universal + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: bindings-universal-apple-darwin + path: ${{ env.COMPONENT_PATH }}/${{ env.APP_NAME }}.*.node + if-no-files-found: error + publish: + name: Publish + runs-on: ubuntu-latest + needs: + # - build-freebsd + - test-macOS-binding + - test-linux-x64-gnu-binding + # - test-linux-x64-musl-binding + # - test-linux-aarch64-gnu-binding + # - test-linux-aarch64-musl-binding + # - test-linux-arm-gnueabihf-binding + - universal-macOS + steps: + - uses: actions/checkout@v3 + - name: Setup node + uses: actions/setup-node@v3 + with: + node-version: 18 + check-latest: true + cache: yarn + cache-dependency-path: ./components/ordhook-sdk-js/yarn.lock + - name: Install dependencies + run: yarn --cwd components/ordhook-sdk-js install + - name: Download all artifacts + uses: actions/download-artifact@v3 + with: + path: artifacts + - name: Move artifacts + run: yarn --cwd components/ordhook-sdk-js artifacts + - name: List packages + run: ls -R components/ordhook-sdk-js/./npm + shell: bash + - name: Publish + run: | + cd components/ordhook-sdk-js + npm config set provenance true + if git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+$"; + then + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc + npm publish --access public + elif git log -1 --pretty=%B | grep "^[0-9]\+\.[0-9]\+\.[0-9]\+"; + then + echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc + npm publish --tag next --access public + else + echo "Not a release, skipping publish" + fi + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore index 5f59b0a..9d41500 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,201 @@ components/chainhook-types-js/dist cache/ ./tests tmp/ + +# Created by https://www.toptal.com/developers/gitignore/api/node +# Edit at https://www.toptal.com/developers/gitignore?templates=node + +### Node ### +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# TypeScript v1 declaration files +typings/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache + +# Next.js build output +.next + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# End of https://www.toptal.com/developers/gitignore/api/node + +# Created by https://www.toptal.com/developers/gitignore/api/macos +# Edit at https://www.toptal.com/developers/gitignore?templates=macos + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +# End of https://www.toptal.com/developers/gitignore/api/macos + +# Created by https://www.toptal.com/developers/gitignore/api/windows +# Edit at https://www.toptal.com/developers/gitignore?templates=windows + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/windows + +#Added by cargo + +/target +Cargo.lock + +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions + +*.node diff --git a/Cargo.lock b/Cargo.lock index 9e935f4..80c691a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f2135563fb5c609d2b2b87c1e8ce7bc41b0b45430fa9661f457981503dd5bf0" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] @@ -264,11 +264,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0694ea59225b0c5f3cb405ff3f670e4828358ed26aec49dc352f730f0cb1a8a3" dependencies = [ "bech32", - "bitcoin_hashes", - "secp256k1", + "bitcoin_hashes 0.11.0", + "secp256k1 0.24.3", "serde", ] +[[package]] +name = "bitcoin" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e99ff7289b20a7385f66a0feda78af2fc119d28fb56aea8886a9cd0a4abdd75" +dependencies = [ + "bech32", + "bitcoin-private", + "bitcoin_hashes 0.12.0", + "hex_lit", + "secp256k1 0.27.0", +] + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + [[package]] name = "bitcoin_hashes" version = "0.11.0" @@ -278,6 +297,15 @@ dependencies = [ "serde", ] +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + [[package]] name = "bitcoincore-rpc" version = "0.16.0" @@ -297,7 +325,7 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c231bea28e314879c5aef240f6052e8a72a369e3c9f9b20d9bfbb33ad18029b2" dependencies = [ - "bitcoin", + "bitcoin 0.29.2", "serde", "serde_json", ] @@ -426,7 +454,7 @@ version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03915af431787e6ffdcc74c645077518c6b6e01f80b761e0fbbfa288536311b3" dependencies = [ - "smallvec 1.11.0", + "smallvec 1.11.1", "target-lexicon", ] @@ -438,9 +466,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chainhook-sdk" -version = "0.9.5" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca1a7d46cc42a06eb96400d6fcbed18abe8fe1313e50c49e9a005e2329fc25c" +checksum = "0c20206161d661b502b3c3be26b5fb39b00cf8b4497d5159cbf6767de8c63ab2" dependencies = [ "base58 0.2.0", "base64 0.13.1", @@ -456,6 +484,7 @@ dependencies = [ "hiro-system-kit 0.3.1", "hyper", "lazy_static", + "miniscript", "rand 0.8.5", "regex", "reqwest", @@ -473,9 +502,9 @@ dependencies = [ [[package]] name = "chainhook-types" -version = "1.0.12" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03af00efeffbc0259632c2ffc410663f326f6cdeee604e91971f889648a92c2f" +checksum = "ecabe3781a1f5584a5bf4b348870f756eee685bd4882e752cc9cbdea123386ce" dependencies = [ "hex", "schemars 0.8.15", @@ -507,7 +536,7 @@ checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", - "libloading 0.7.4", + "libloading", ] [[package]] @@ -577,7 +606,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2", "serde", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -588,20 +617,31 @@ checksum = "6fbc2179431d853889075f92b984a56c3c988b944ca6682ff840b2792bb155bf" dependencies = [ "ansi_term", "atty", + "bytes", "chrono", "clarity-vm", + "debug_types", + "futures", "getrandom 0.2.10", "hiro-system-kit 0.1.0", + "httparse", "integer-sqrt", "lazy_static", + "log", + "memchr", + "pico-args", + "prettytable-rs", "rand 0.7.3", "regex", "reqwest", + "rustyline", "serde", "serde_derive", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3 0.9.1", + "tokio", + "tokio-util", ] [[package]] @@ -636,6 +676,17 @@ dependencies = [ "cc", ] +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + [[package]] name = "combine" version = "4.6.6" @@ -652,6 +703,15 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935" +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "cookie" version = "0.17.0" @@ -659,20 +719,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24" dependencies = [ "percent-encoding", - "time 0.3.28", + "time 0.3.29", "version_check", ] -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -750,7 +800,7 @@ dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset", + "memoffset 0.9.0", "scopeguard", ] @@ -810,10 +860,35 @@ dependencies = [ ] [[package]] -name = "cslice" -version = "0.2.0" +name = "csv" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "697c714f50560202b1f4e2e09cd50a421881c83e9025db75d15f276616f04f40" +checksum = "ac574ff4d437a7b5ad237ef331c17ccca63c46479e5b5453eb8e10bb99a759fe" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "csv-core" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5efa2b3d7902f4b634a20cae3c9c4e6209dc4779feb6863329607560143efa70" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctor" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +dependencies = [ + "quote", + "syn 2.0.37", +] [[package]] name = "ctrlc" @@ -887,6 +962,17 @@ dependencies = [ "parking_lot_core", ] +[[package]] +name = "debug_types" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2613f33760bd27a70ee84f5a8c0bd97e874fa6f89e205356ef8325786dd22cef" +dependencies = [ + "serde", + "serde_derive", + "serde_json", +] + [[package]] name = "debugid" version = "0.8.0" @@ -1027,6 +1113,12 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + [[package]] name = "encoding_rs" version = "0.8.33" @@ -1036,6 +1128,12 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + [[package]] name = "equivalent" version = "1.0.1" @@ -1064,13 +1162,13 @@ dependencies = [ ] [[package]] -name = "error-chain" -version = "0.12.4" +name = "error-code" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" dependencies = [ - "backtrace", - "version_check", + "libc", + "str-buf", ] [[package]] @@ -1093,9 +1191,20 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fd-lock" +version = "3.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef033ed5e9bad94e55838ca0ca906db0e043f517adda0c8b79c7a8c66c93c1b5" +dependencies = [ + "cfg-if", + "rustix", + "windows-sys 0.48.0", +] [[package]] name = "figment" @@ -1164,21 +1273,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - [[package]] name = "form_urlencoded" version = "1.2.0" @@ -1439,6 +1533,12 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +[[package]] +name = "hex_lit" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" + [[package]] name = "hiro-system-kit" version = "0.1.0" @@ -1593,19 +1693,6 @@ dependencies = [ "tokio-rustls", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "iana-time-zone" version = "0.1.57" @@ -1789,16 +1876,6 @@ version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" -[[package]] -name = "libloading" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" -dependencies = [ - "cfg-if", - "winapi", -] - [[package]] name = "libloading" version = "0.7.4" @@ -1987,6 +2064,15 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + [[package]] name = "memoffset" version = "0.9.0" @@ -2014,6 +2100,16 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" +[[package]] +name = "miniscript" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1eb102b66b2127a872dbcc73095b7b47aeb9d92f7b03c2b2298253ffc82c7594" +dependencies = [ + "bitcoin 0.30.1", + "bitcoin-private", +] + [[package]] name = "miniz_oxide" version = "0.7.1" @@ -2065,62 +2161,85 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.11" +name = "napi" +version = "2.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +checksum = "fd063c93b900149304e3ba96ce5bf210cd4f81ef5eb80ded0d100df3e85a3ac0" dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "bitflags 2.4.0", + "ctor", + "napi-derive", + "napi-sys", + "once_cell", + "serde", + "serde_json", + "tokio", ] [[package]] -name = "neon" -version = "0.9.1" +name = "napi-build" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e85820b585bf3360bf158ac87a75764c48e361c91bbeb69873e6613cc78c023" -dependencies = [ - "cslice", - "neon-build", - "neon-macros", - "neon-runtime", - "semver 0.9.0", - "smallvec 1.11.0", -] +checksum = "882a73d9ef23e8dc2ebbffb6a6ae2ef467c0f18ac10711e4cc59c5485d41df0e" [[package]] -name = "neon-build" -version = "0.9.1" +name = "napi-derive" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9febc63f515156d4311a0c43899d3ace46352ecdd591c21b98ca3974f2a0d0" - -[[package]] -name = "neon-macros" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "987f12c91eb6ce0b67819f7c5fb4d391de64cf411c605ed027f03507a33943b2" +checksum = "da1c6a8fa84d549aa8708fcd062372bf8ec6e849de39016ab921067d21bde367" dependencies = [ + "cfg-if", + "convert_case", + "napi-derive-backend", + "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "neon-runtime" -version = "0.9.1" +name = "napi-derive-backend" +version = "1.0.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02662cd2e62b131937bdef85d0918b05bc3c204daf4c64af62845403eccb60f3" +checksum = "20bbc7c69168d06a848f925ec5f0e0997f98e8c8d4f2cc30157f0da51c009e17" dependencies = [ + "convert_case", + "once_cell", + "proc-macro2", + "quote", + "regex", + "semver 1.0.19", + "syn 1.0.109", +] + +[[package]] +name = "napi-sys" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "166b5ef52a3ab5575047a9fe8d4a030cdd0f63c96f071cd6907674453b07bae3" +dependencies = [ + "libloading", +] + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec 1.11.1", +] + +[[package]] +name = "nix" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +dependencies = [ + "bitflags 1.3.2", + "cc", "cfg-if", - "libloading 0.6.7", - "smallvec 1.11.0", + "libc", + "memoffset 0.6.5", ] [[package]] @@ -2171,29 +2290,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "num" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" -dependencies = [ - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-complex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" -dependencies = [ - "autocfg", - "num-traits", -] - [[package]] name = "num-format" version = "0.4.4" @@ -2204,38 +2300,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.16" @@ -2303,50 +2367,6 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" -[[package]] -name = "openssl" -version = "0.10.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c" -dependencies = [ - "bitflags 2.4.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.37", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - [[package]] name = "ordhook" version = "0.5.0" @@ -2404,15 +2424,16 @@ dependencies = [ [[package]] name = "ordhook-sdk-js" -version = "0.5.0" +version = "0.6.0" dependencies = [ "crossbeam-channel", - "error-chain", "hiro-system-kit 0.3.1", - "neon", - "num", + "napi", + "napi-build", + "napi-derive", "ordhook", "serde", + "serde_json", ] [[package]] @@ -2446,7 +2467,7 @@ dependencies = [ "cfg-if", "libc", "redox_syscall 0.3.5", - "smallvec 1.11.0", + "smallvec 1.11.1", "windows-targets", ] @@ -2470,7 +2491,7 @@ dependencies = [ "digest 0.10.7", "hmac 0.12.1", "password-hash", - "sha2 0.10.7", + "sha2 0.10.8", ] [[package]] @@ -2510,15 +2531,21 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.3" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ "memchr", "thiserror", "ucd-trie", ] +[[package]] +name = "pico-args" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8bcd96cb740d03149cbad5518db9fd87126a10ab519c011893b1754134c468" + [[package]] name = "pin-project" version = "1.1.3" @@ -2559,9 +2586,9 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "pprof" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978385d59daf9269189d052ca8a84c1acfd0715c0599a5d5188d4acc078ca46a" +checksum = "ef5c97c51bd34c7e742402e216abdeb44d415fbe6ae41d56b114723e953711cb" dependencies = [ "backtrace", "cfg-if", @@ -2572,7 +2599,7 @@ dependencies = [ "nix 0.26.4", "once_cell", "parking_lot", - "smallvec 1.11.0", + "smallvec 1.11.1", "symbolic-demangle", "tempfile", "thiserror", @@ -2584,6 +2611,20 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "prettytable-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" +dependencies = [ + "csv", + "encode_unicode", + "is-terminal", + "lazy_static", + "term", + "unicode-width", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2672,6 +2713,16 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + [[package]] name = "rand" version = "0.7.3" @@ -2745,9 +2796,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" dependencies = [ "either", "rayon-core", @@ -2755,14 +2806,12 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" dependencies = [ - "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "num_cpus", ] [[package]] @@ -2889,12 +2938,10 @@ dependencies = [ "http-body", "hyper", "hyper-rustls", - "hyper-tls", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", @@ -2904,7 +2951,6 @@ dependencies = [ "serde_json", "serde_urlencoded", "tokio", - "tokio-native-tls", "tokio-rustls", "tokio-util", "tower-service", @@ -2980,7 +3026,7 @@ dependencies = [ "serde_json", "state", "tempfile", - "time 0.3.28", + "time 0.3.29", "tokio", "tokio-stream", "tokio-util", @@ -3024,10 +3070,10 @@ dependencies = [ "pin-project-lite", "ref-cast", "serde", - "smallvec 1.11.0", + "smallvec 1.11.1", "stable-pattern", "state", - "time 0.3.28", + "time 0.3.29", "tokio", "uncased", ] @@ -3108,7 +3154,7 @@ dependencies = [ "libsqlite3-sys", "memchr", "serde_json", - "smallvec 1.11.0", + "smallvec 1.11.1", ] [[package]] @@ -3147,14 +3193,14 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.18", + "semver 1.0.19", ] [[package]] name = "rustix" -version = "0.38.13" +version = "0.38.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7db8590df6dfcd144d22afd1b83b36c21a18d7cbc1dc4bb5295a8712e9eb662" +checksum = "747c788e9ce8e92b12cd485c49ddf90723550b654b32508f979b71a7b1ecda4f" dependencies = [ "bitflags 2.4.0", "errno", @@ -3186,9 +3232,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.5" +version = "0.101.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45a27e3b59326c16e23d30aeb7a36a24cc0d29e71d68ff611cdfb4a01d013bed" +checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" dependencies = [ "ring", "untrusted", @@ -3200,6 +3246,30 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +[[package]] +name = "rustyline" +version = "9.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +dependencies = [ + "bitflags 1.3.2", + "cfg-if", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.23.2", + "radix_trie", + "scopeguard", + "smallvec 1.11.1", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi", +] + [[package]] name = "ryu" version = "1.0.15" @@ -3215,15 +3285,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "schannel" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" -dependencies = [ - "windows-sys 0.48.0", -] - [[package]] name = "schemars" version = "0.8.12" @@ -3299,11 +3360,21 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ - "bitcoin_hashes", - "secp256k1-sys", + "bitcoin_hashes 0.11.0", + "secp256k1-sys 0.6.1", "serde", ] +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes 0.12.0", + "secp256k1-sys 0.8.1", +] + [[package]] name = "secp256k1-sys" version = "0.6.1" @@ -3314,26 +3385,12 @@ dependencies = [ ] [[package]] -name = "security-framework" -version = "2.9.2" +name = "secp256k1-sys" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", + "cc", ] [[package]] @@ -3356,9 +3413,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" [[package]] name = "semver-parser" @@ -3511,9 +3568,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3621,7 +3678,7 @@ dependencies = [ "serde", "serde_json", "slog", - "time 0.3.28", + "time 0.3.29", ] [[package]] @@ -3645,7 +3702,7 @@ dependencies = [ "slog", "term", "thread_local", - "time 0.3.28", + "time 0.3.29", ] [[package]] @@ -3659,9 +3716,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "socket2" @@ -3731,20 +3788,20 @@ dependencies = [ "rand 0.7.3", "ripemd", "rusqlite", - "secp256k1", + "secp256k1 0.24.3", "serde", "serde_derive", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3 0.10.8", "time 0.2.27", ] [[package]] name = "stacks-rpc-client" -version = "1.0.8" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4903f6164688594cb80856abc27d7a76fa7b6ac84c6fc70a45e414d097c191ab" +checksum = "12eef9ff174e8345b414abbfa5ed7e271e772d1e6b2c3eaa9f7f02209c87f48e" dependencies = [ "clarity-repl", "hmac 0.12.1", @@ -3754,7 +3811,7 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "tiny-hderive", ] @@ -3825,6 +3882,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + [[package]] name = "str_stack" version = "0.1.0" @@ -3873,9 +3936,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "symbolic-common" -version = "12.4.0" +version = "12.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e0e9bc48b3852f36a84f8d0da275d50cb3c2b88b59b9ec35fdd8b7fa239e37d" +checksum = "fac08504d60cf5bdffeb8a6a028f1a4868a5da1098bb19eb46239440039163fb" dependencies = [ "debugid", "memmap2", @@ -3885,9 +3948,9 @@ dependencies = [ [[package]] name = "symbolic-demangle" -version = "12.4.0" +version = "12.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "691e53bdc0702aba3a5abc2cffff89346fcbd4050748883c7e2f714b33a69045" +checksum = "8b212728d4f6c527c1d50d6169e715f6e02d849811843c13e366d8ca6d0cf5c4" dependencies = [ "cpp_demangle", "rustc-demangle", @@ -3993,18 +4056,18 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.48" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", @@ -4047,9 +4110,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.28" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48" +checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" dependencies = [ "deranged", "itoa", @@ -4057,14 +4120,14 @@ dependencies = [ "num_threads", "serde", "time-core", - "time-macros 0.2.14", + "time-macros 0.2.15", ] [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" @@ -4078,9 +4141,9 @@ dependencies = [ [[package]] name = "time-macros" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4157,16 +4220,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.24.1" @@ -4307,7 +4360,7 @@ dependencies = [ "once_cell", "regex", "sharded-slab", - "smallvec 1.11.0", + "smallvec 1.11.1", "thread_local", "tracing", "tracing-core", @@ -4378,6 +4431,12 @@ version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + [[package]] name = "unicode-xid" version = "0.2.4" @@ -4401,6 +4460,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + [[package]] name = "uuid" version = "1.4.1" @@ -4579,9 +4644,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] diff --git a/components/ordhook-cli/Cargo.toml b/components/ordhook-cli/Cargo.toml index 087a1fc..3d91a11 100644 --- a/components/ordhook-cli/Cargo.toml +++ b/components/ordhook-cli/Cargo.toml @@ -14,7 +14,7 @@ num_cpus = "1.16.0" serde = "1" serde_json = "1" serde_derive = "1" -reqwest = { version = "0.11", features = ["stream", "json"] } +reqwest = { version = "0.11", default-features = false, features = ["stream", "json", "rustls-tls"] } hiro-system-kit = "0.3.1" clap = { version = "3.2.23", features = ["derive"], optional = true } clap_generate = { version = "3.0.3", optional = true } diff --git a/components/ordhook-cli/src/cli/mod.rs b/components/ordhook-cli/src/cli/mod.rs index a1863a4..c675d8c 100644 --- a/components/ordhook-cli/src/cli/mod.rs +++ b/components/ordhook-cli/src/cli/mod.rs @@ -108,6 +108,9 @@ struct ScanBlocksCommand { /// HTTP Post activity to a URL #[clap(long = "post-to")] pub post_to: Option, + /// HTTP Auth token + #[clap(long = "auth-token")] + pub auth_token: Option, } #[derive(Parser, PartialEq, Clone, Debug)] @@ -284,6 +287,9 @@ struct StartCommand { /// Block height where ordhook will start posting Ordinals activities #[clap(long = "start-at-block")] pub start_at_block: Option, + /// HTTP Auth token + #[clap(long = "auth-token")] + pub auth_token: Option, } #[derive(Subcommand, PartialEq, Clone, Debug)] @@ -499,10 +505,16 @@ async fn handle_command(opts: Opts, ctx: &Context) -> Result<(), String> { &post_to, cmd.start_block, Some(cmd.end_block), + cmd.auth_token, )? .into_selected_network_specification(&config.network.bitcoin_network)?; - scan_bitcoin_chainstate_via_rpc_using_predicate(&predicate_spec, &config, &ctx) - .await?; + scan_bitcoin_chainstate_via_rpc_using_predicate( + &predicate_spec, + &config, + None, + &ctx, + ) + .await?; } else { let _ = download_ordinals_dataset_if_required(&config, ctx).await; let mut total_inscriptions = 0; @@ -635,7 +647,13 @@ async fn handle_command(opts: Opts, ctx: &Context) -> Result<(), String> { let mut predicates = vec![]; for post_to in cmd.post_to.iter() { - let predicate = build_predicate_from_cli(&config, post_to, start_block, None)?; + let predicate = build_predicate_from_cli( + &config, + post_to, + start_block, + None, + cmd.auth_token.clone(), + )?; predicates.push(ChainhookFullSpecification::Bitcoin(predicate)); } @@ -830,6 +848,7 @@ pub fn build_predicate_from_cli( post_to: &str, start_block: u64, end_block: Option, + auth_token: Option, ) -> Result { let mut networks = BTreeMap::new(); // Retrieve last block height known, and display it @@ -847,7 +866,7 @@ pub fn build_predicate_from_cli( predicate: BitcoinPredicateType::OrdinalsProtocol(OrdinalOperations::InscriptionFeed), action: HookAction::HttpPost(HttpHook { url: post_to.to_string(), - authorization_header: "".to_string(), + authorization_header: format!("Bearer {}", auth_token.unwrap_or("".to_string())), }), }, ); diff --git a/components/ordhook-core/Cargo.toml b/components/ordhook-core/Cargo.toml index 77c6609..667a811 100644 --- a/components/ordhook-core/Cargo.toml +++ b/components/ordhook-core/Cargo.toml @@ -12,10 +12,10 @@ redis = "0.21.5" serde-redis = "0.12.0" hex = "0.4.3" rand = "0.8.5" -chainhook-sdk = { version = "=0.9.5", default-features = false, features = ["zeromq", "log"] } -# chainhook-sdk = { version = "=0.9.0", path = "../../../chainhook/components/chainhook-sdk", default-features = false, features = ["zeromq", "log"] } +chainhook-sdk = { version = "=0.10.5", features = ["zeromq"] } +# chainhook-sdk = { version = "=0.10.1", path = "../../../chainhook/components/chainhook-sdk", default-features = false, features = ["zeromq", "log"] } hiro-system-kit = "0.3.1" -reqwest = { version = "0.11", features = ["stream", "json"] } +reqwest = { version = "0.11", default-features = false, features = ["stream", "json", "rustls-tls"] } tokio = { version = "=1.24", features = ["full"] } futures-util = "0.3.24" flate2 = "1.0.24" @@ -33,7 +33,7 @@ fxhash = "0.2.1" rusqlite = { version = "0.27.0", features = ["bundled"] } anyhow = { version = "1.0.56", features = ["backtrace"] } schemars = { version = "0.8.10", git = "https://github.com/hirosystems/schemars.git", branch = "feat-chainhook-fixes" } -pprof = { version = "0.12", features = ["flamegraph"] } +pprof = { version = "0.13.0", features = ["flamegraph"], optional = true } progressing = '3' futures = "0.3.28" @@ -46,5 +46,5 @@ features = ["lz4", "snappy"] # debug = true [features] -debug = ["hiro-system-kit/debug"] +debug = ["hiro-system-kit/debug", "pprof"] release = ["hiro-system-kit/release"] diff --git a/components/ordhook-core/src/core/mod.rs b/components/ordhook-core/src/core/mod.rs index 07ae1d9..50e8722 100644 --- a/components/ordhook-core/src/core/mod.rs +++ b/components/ordhook-core/src/core/mod.rs @@ -94,16 +94,14 @@ pub fn compute_next_satpoint_data( SatPosition::Output((output_index, (offset_cross_inputs - offset_intra_outputs))) } -pub fn should_sync_rocks_db( - config: &Config, - ctx: &Context, -) -> Result, String> { +pub fn should_sync_rocks_db(config: &Config, ctx: &Context) -> Result, String> { let blocks_db = open_readwrite_ordhook_db_conn_rocks_db(&config.expected_cache_path(), &ctx)?; let inscriptions_db_conn = open_readonly_ordhook_db_conn(&config.expected_cache_path(), &ctx)?; - let last_compressed_block = find_last_block_inserted(&blocks_db) as u64; - let last_indexed_block = match find_latest_inscription_block_height(&inscriptions_db_conn, ctx)? { + let last_compressed_block = find_last_block_inserted(&blocks_db) as u64; + let last_indexed_block = match find_latest_inscription_block_height(&inscriptions_db_conn, ctx)? + { Some(last_indexed_block) => last_indexed_block, - None => 0 + None => 0, }; let res = if last_compressed_block < last_indexed_block { @@ -164,7 +162,6 @@ pub fn should_sync_ordhook_db( } }; - // TODO: Gracefully handle Regtest, Testnet and Signet let (mut end_block, speed) = if start_block < 200_000 { (end_block.min(200_000), 10_000) diff --git a/components/ordhook-core/src/core/pipeline/processors/block_archiving.rs b/components/ordhook-core/src/core/pipeline/processors/block_archiving.rs index 474fe3e..fa991ba 100644 --- a/components/ordhook-core/src/core/pipeline/processors/block_archiving.rs +++ b/components/ordhook-core/src/core/pipeline/processors/block_archiving.rs @@ -1,18 +1,15 @@ +use chainhook_sdk::{types::BitcoinBlockData, utils::Context}; +use crossbeam_channel::{Sender, TryRecvError}; +use rocksdb::DB; use std::{ thread::{sleep, JoinHandle}, time::Duration, }; -use crossbeam_channel::{Sender, TryRecvError}; -use chainhook_sdk::{types::BitcoinBlockData, utils::Context}; -use rocksdb::DB; use crate::{ config::Config, core::pipeline::{PostProcessorCommand, PostProcessorController, PostProcessorEvent}, - db::{ - insert_entry_in_blocks, - open_readwrite_ordhook_db_conn_rocks_db, LazyBlock, - }, + db::{insert_entry_in_blocks, open_readwrite_ordhook_db_conn_rocks_db, LazyBlock}, }; pub fn start_block_archiving_processor( diff --git a/components/ordhook-core/src/core/pipeline/processors/inscription_indexing.rs b/components/ordhook-core/src/core/pipeline/processors/inscription_indexing.rs index d77ce57..3c7ba72 100644 --- a/components/ordhook-core/src/core/pipeline/processors/inscription_indexing.rs +++ b/components/ordhook-core/src/core/pipeline/processors/inscription_indexing.rs @@ -32,7 +32,10 @@ use crate::{ }, OrdhookConfig, }, - db::{get_any_entry_in_ordinal_activities, open_readonly_ordhook_db_conn}, + db::{ + get_any_entry_in_ordinal_activities, open_ordhook_db_conn_rocks_db_loop, + open_readonly_ordhook_db_conn, + }, }; use crate::db::{LazyBlockTransaction, TraversalResult}; @@ -43,7 +46,7 @@ use crate::{ new_traversals_lazy_cache, pipeline::{PostProcessorCommand, PostProcessorController, PostProcessorEvent}, }, - db::{open_readwrite_ordhook_db_conn, open_readwrite_ordhook_db_conn_rocks_db}, + db::open_readwrite_ordhook_db_conn, }; pub fn start_inscription_indexing_processor( @@ -66,8 +69,7 @@ pub fn start_inscription_indexing_processor( open_readwrite_ordhook_db_conn(&config.expected_cache_path(), &ctx).unwrap(); let ordhook_config = config.get_ordhook_config(); let blocks_db_rw = - open_readwrite_ordhook_db_conn_rocks_db(&config.expected_cache_path(), &ctx) - .unwrap(); + open_ordhook_db_conn_rocks_db_loop(true, &config.expected_cache_path(), &ctx); let mut empty_cycles = 0; let inscriptions_db_conn = diff --git a/components/ordhook-core/src/core/protocol/inscription_sequencing.rs b/components/ordhook-core/src/core/protocol/inscription_sequencing.rs index 02d181b..e73a1eb 100644 --- a/components/ordhook-core/src/core/protocol/inscription_sequencing.rs +++ b/components/ordhook-core/src/core/protocol/inscription_sequencing.rs @@ -24,8 +24,7 @@ use crate::{ find_blessed_inscription_with_ordinal_number, find_latest_cursed_inscription_number_at_block_height, find_latest_inscription_number_at_block_height, format_satpoint_to_watch, - update_inscriptions_with_block, LazyBlockTransaction, - TraversalResult, + update_inscriptions_with_block, LazyBlockTransaction, TraversalResult, }, ord::height::Height, }; @@ -473,11 +472,7 @@ pub fn augment_block_with_ordinals_inscriptions_data_and_write_to_db_tx( ); // Store inscriptions - update_inscriptions_with_block( - block, - inscriptions_db_tx, - ctx, - ); + update_inscriptions_with_block(block, inscriptions_db_tx, ctx); any_events } @@ -523,7 +518,9 @@ pub fn augment_block_with_ordinals_inscriptions_data( // Handle sats overflow while let Some((tx_index, op_index)) = sats_overflows.pop_front() { - let OrdinalOperation::InscriptionRevealed(ref mut inscription_data) = block.transactions[tx_index].metadata.ordinal_operations[op_index] else { + let OrdinalOperation::InscriptionRevealed(ref mut inscription_data) = + block.transactions[tx_index].metadata.ordinal_operations[op_index] + else { continue; }; let is_curse = inscription_data.curse_type.is_some(); @@ -711,7 +708,10 @@ fn consolidate_transaction_with_pre_computed_inscription_data( OrdinalOperation::InscriptionTransferred(_) => continue, }; - let Some(traversal) = inscriptions_data.remove(&(tx.transaction_identifier.clone(), inscription.inscription_input_index)) else { + let Some(traversal) = inscriptions_data.remove(&( + tx.transaction_identifier.clone(), + inscription.inscription_input_index, + )) else { continue; }; diff --git a/components/ordhook-core/src/core/protocol/inscription_tracking.rs b/components/ordhook-core/src/core/protocol/inscription_tracking.rs index 724fc61..80bc238 100644 --- a/components/ordhook-core/src/core/protocol/inscription_tracking.rs +++ b/components/ordhook-core/src/core/protocol/inscription_tracking.rs @@ -2,7 +2,7 @@ use chainhook_sdk::{ bitcoincore_rpc_json::bitcoin::{hashes::hex::FromHex, Address, Network, Script}, types::{ BitcoinBlockData, BitcoinNetwork, BitcoinTransactionData, BlockIdentifier, - OrdinalInscriptionTransferData, OrdinalOperation, TransactionIdentifier, + OrdinalInscriptionTransferData, OrdinalOperation, TransactionIdentifier, OrdinalInscriptionTransferDestination, }, utils::Context, }; @@ -114,7 +114,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( let ( outpoint_post_transfer, offset_post_transfer, - updated_address, + destination, post_transfer_output_value, ) = match post_transfer_data { SatPosition::Output((output_index, offset)) => { @@ -124,7 +124,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( tx.metadata.outputs[output_index].get_script_pubkey_hex(); let updated_address = match Script::from_hex(&script_pub_key_hex) { Ok(script) => match Address::from_script(&script, network.clone()) { - Ok(address) => Some(address.to_string()), + Ok(address) => OrdinalInscriptionTransferDestination::Transferred(address.to_string()), Err(e) => { ctx.try_log(|logger| { warn!( @@ -133,7 +133,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( e.to_string() ) }); - None + OrdinalInscriptionTransferDestination::Burnt(script.to_string()) } }, Err(e) => { @@ -144,7 +144,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( e.to_string() ) }); - None + OrdinalInscriptionTransferDestination::Burnt(script_pub_key_hex.to_string()) } }; @@ -181,7 +181,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( offset ) }); - (outpoint, total_offset, None, None) + (outpoint, total_offset, OrdinalInscriptionTransferDestination::SpentInFees, None) } }; @@ -190,7 +190,7 @@ pub fn augment_transaction_with_ordinals_transfers_data( let transfer_data = OrdinalInscriptionTransferData { inscription_id: watched_satpoint.inscription_id.clone(), - updated_address, + destination, tx_index, satpoint_pre_transfer, satpoint_post_transfer, diff --git a/components/ordhook-core/src/db/mod.rs b/components/ordhook-core/src/db/mod.rs index fbe1a4c..148658c 100644 --- a/components/ordhook-core/src/db/mod.rs +++ b/components/ordhook-core/src/db/mod.rs @@ -20,7 +20,10 @@ use chainhook_sdk::{ }; use crate::{ - core::protocol::inscription_parsing::{get_inscriptions_revealed_in_block, get_inscriptions_transferred_in_block}, ord::sat::Sat, + core::protocol::inscription_parsing::{ + get_inscriptions_revealed_in_block, get_inscriptions_transferred_in_block, + }, + ord::sat::Sat, }; pub fn get_default_ordhook_db_file_path(base_dir: &PathBuf) -> PathBuf { @@ -228,7 +231,7 @@ pub fn open_readonly_ordhook_db_conn_rocks_db( opts.set_disable_auto_compactions(true); opts.set_max_background_jobs(0); let db = DB::open_for_read_only(&opts, path, false) - .map_err(|e| format!("unable to open hord.rocksdb: {}", e.to_string()))?; + .map_err(|e| format!("unable to read hord.rocksdb: {}", e.to_string()))?; Ok(db) } @@ -276,7 +279,7 @@ pub fn open_readwrite_ordhook_db_conn_rocks_db( let path = get_default_ordhook_db_file_path_rocks_db(&base_dir); let opts = rocks_db_default_options(); let db = DB::open(&opts, path) - .map_err(|e| format!("unable to open hord.rocksdb: {}", e.to_string()))?; + .map_err(|e| format!("unable to read-write hord.rocksdb: {}", e.to_string()))?; Ok(db) } @@ -494,12 +497,18 @@ pub fn insert_transfer_in_locations( pub fn get_any_entry_in_ordinal_activities( block_height: &u64, inscriptions_db_tx: &Connection, - _ctx: &Context, + ctx: &Context, ) -> bool { let args: &[&dyn ToSql] = &[&block_height.to_sql().unwrap()]; - let mut stmt = inscriptions_db_tx + let mut stmt = match inscriptions_db_tx .prepare("SELECT DISTINCT block_height FROM inscriptions WHERE block_height = ?") - .unwrap(); + { + Ok(stmt) => stmt, + Err(e) => { + ctx.try_log(|logger| error!(logger, "{}", e.to_string())); + panic!(); + } + }; let mut rows = stmt.query(args).unwrap(); while let Ok(Some(_)) = rows.next() { return true; @@ -824,15 +833,15 @@ pub fn find_all_inscriptions_in_block( { parse_inscription_id(&inscription_id) }; let Some(transfer_data) = transfers_data .get(&inscription_id) - .and_then(|entries| entries.first()) else { - ctx.try_log(|logger| { - error!( - logger, - "unable to retrieve inscription genesis transfer data: {}", - inscription_id, - ) - }); - continue; + .and_then(|entries| entries.first()) + else { + ctx.try_log(|logger| { + error!( + logger, + "unable to retrieve inscription genesis transfer data: {}", inscription_id, + ) + }); + continue; }; let traversal = TraversalResult { inscription_number, diff --git a/components/ordhook-core/src/download/mod.rs b/components/ordhook-core/src/download/mod.rs index ba7a2c8..3b96f1e 100644 --- a/components/ordhook-core/src/download/mod.rs +++ b/components/ordhook-core/src/download/mod.rs @@ -6,9 +6,11 @@ use flate2::read::GzDecoder; use futures_util::StreamExt; use progressing::mapping::Bar as MappingBar; use progressing::Baring; -use tar::Archive; +use std::fs::{self, File}; use std::io::{self, Cursor}; use std::io::{Read, Write}; +use std::path::PathBuf; +use tar::Archive; pub fn default_sqlite_file_path(_network: &BitcoinNetwork) -> String { format!("hord.sqlite").to_lowercase() @@ -18,10 +20,12 @@ pub fn default_sqlite_sha_file_path(_network: &BitcoinNetwork) -> String { format!("hord.sqlite.sha256").to_lowercase() } -pub async fn download_sqlite_file(config: &Config, _ctx: &Context) -> Result<(), String> { +pub async fn download_sqlite_file(config: &Config, ctx: &Context) -> Result<(), String> { let destination_path = config.expected_cache_path(); std::fs::create_dir_all(&destination_path).unwrap_or_else(|e| { - println!("{}", e.to_string()); + if ctx.logger.is_some() { + println!("{}", e.to_string()); + } }); // let remote_sha_url = config.expected_remote_ordinals_sqlite_sha256(); @@ -39,36 +43,66 @@ pub async fn download_sqlite_file(config: &Config, _ctx: &Context) -> Result<(), // write_file_content_at_path(&local_sha_file_path, &res.to_vec())?; let file_url = config.expected_remote_ordinals_sqlite_url(); - println!("=> {file_url}"); + if ctx.logger.is_some() { + println!("=> {file_url}"); + } let res = reqwest::get(&file_url) .await .or(Err(format!("Failed to GET from '{}'", &file_url)))?; // Download chunks let (tx, rx) = flume::bounded(0); - - let decoder_thread = std::thread::spawn(move || { - let input = ChannelRead::new(rx); - let mut decoder = GzDecoder::new(input); - let mut content = Vec::new(); - let _ = decoder.read_to_end(&mut content); - let mut archive = Archive::new(&content[..]); - if let Err(e) = archive.unpack(&destination_path) { - println!("unable to write file: {}", e.to_string()); - std::process::exit(1); - } - }); - if res.status() == reqwest::StatusCode::OK { let limit = res.content_length().unwrap_or(10_000_000_000) as i64; + let archive_tmp_file = PathBuf::from("db.tar"); + let decoder_thread = std::thread::spawn(move || { + { + let input = ChannelRead::new(rx); + let mut decoder = GzDecoder::new(input); + let mut tmp = File::create(&archive_tmp_file).unwrap(); + let mut buffer = [0; 512_000]; + loop { + match decoder.read(&mut buffer) { + Ok(0) => break, + Ok(n) => { + if let Err(e) = tmp.write_all(&buffer[..n]) { + let err = format!( + "unable to update compressed archive: {}", + e.to_string() + ); + return Err(err); + } + } + Err(e) => { + let err = + format!("unable to write compressed archive: {}", e.to_string()); + return Err(err); + } + } + } + let _ = tmp.flush(); + } + let archive_file = File::open(&archive_tmp_file).unwrap(); + let mut archive = Archive::new(archive_file); + if let Err(e) = archive.unpack(&destination_path) { + let err = format!("unable to decompress file: {}", e.to_string()); + return Err(err); + } + let _ = fs::remove_file(archive_tmp_file); + Ok(()) + }); + let mut progress_bar = MappingBar::with_range(0i64, limit); progress_bar.set_len(60); let mut stdout = std::io::stdout(); - print!("{}", progress_bar); - let _ = stdout.flush(); + if ctx.logger.is_some() { + print!("{}", progress_bar); + let _ = stdout.flush(); + } let mut stream = res.bytes_stream(); let mut progress = 0; let mut steps = 0; + let mut tx_err = None; while let Some(item) = stream.next().await { let chunk = item.or(Err(format!("Error while downloading file")))?; progress += chunk.len() as i64; @@ -78,24 +112,28 @@ pub async fn download_sqlite_file(config: &Config, _ctx: &Context) -> Result<(), } progress_bar.set(progress); if steps == 0 { - print!("\r{}", progress_bar); - let _ = stdout.flush(); + if ctx.logger.is_some() { + print!("\r{}", progress_bar); + let _ = stdout.flush(); + } + } + if let Err(e) = tx.send_async(chunk.to_vec()).await { + let err = format!("unable to download archive: {}", e.to_string()); + tx_err = Some(err); + break; } - tx.send_async(chunk.to_vec()) - .await - .map_err(|e| format!("unable to download stacks event: {}", e.to_string()))?; } progress_bar.set(limit); - print!("\r{}", progress_bar); - let _ = stdout.flush(); - println!(); + if ctx.logger.is_some() { + print!("\r{}", progress_bar); + let _ = stdout.flush(); + println!(); + } drop(tx); - } - tokio::task::spawn_blocking(|| decoder_thread.join()) - .await - .unwrap() - .unwrap(); + decoder_thread.join().unwrap()?; + if let Some(_e) = tx_err.take() {} + } Ok(()) } diff --git a/components/ordhook-core/src/scan/bitcoin.rs b/components/ordhook-core/src/scan/bitcoin.rs index 87844e6..d1f92f9 100644 --- a/components/ordhook-core/src/scan/bitcoin.rs +++ b/components/ordhook-core/src/scan/bitcoin.rs @@ -26,10 +26,10 @@ use chainhook_sdk::types::{ use chainhook_sdk::utils::{file_append, send_request, BlockHeights, Context}; use std::collections::HashMap; -// TODO(lgalabru): Re-introduce support for blocks[] !!! gracefully handle hints for non consecutive blocks pub async fn scan_bitcoin_chainstate_via_rpc_using_predicate( predicate_spec: &BitcoinChainhookSpecification, config: &Config, + event_observer_config_override: Option<&EventObserverConfig>, ctx: &Context, ) -> Result<(), String> { let _ = download_ordinals_dataset_if_required(config, ctx).await; @@ -85,7 +85,10 @@ pub async fn scan_bitcoin_chainstate_via_rpc_using_predicate( let mut actions_triggered = 0; let mut err_count = 0; - let event_observer_config = config.get_event_observer_config(); + let event_observer_config = match event_observer_config_override { + Some(config_override) => config_override.clone(), + None => config.get_event_observer_config(), + }; let bitcoin_config = event_observer_config.get_bitcoin_config(); let number_of_blocks_to_scan = block_heights_to_scan.len() as u64; let mut number_of_blocks_scanned = 0; @@ -95,15 +98,6 @@ pub async fn scan_bitcoin_chainstate_via_rpc_using_predicate( while let Some(current_block_height) = block_heights_to_scan.pop_front() { number_of_blocks_scanned += 1; - // Re-initiate connection every 250 blocks (pessimistic) to avoid stale connections - let conn_updated = if number_of_blocks_scanned % 250 == 0 { - inscriptions_db_conn = - open_readonly_ordhook_db_conn(&config.expected_cache_path(), ctx)?; - true - } else { - false - }; - if !get_any_entry_in_ordinal_activities(¤t_block_height, &inscriptions_db_conn, &ctx) { continue; @@ -151,7 +145,7 @@ pub async fn scan_bitcoin_chainstate_via_rpc_using_predicate( info!( ctx.expect_logger(), - "Processing block #{current_block_height} through {} predicate ({} inscriptions revealed: [{}], db_conn updated: {conn_updated})", + "Processing block #{current_block_height} through {} predicate ({} inscriptions revealed: [{}])", predicate_spec.uuid, inscriptions_revealed.len(), inscriptions_revealed.join(", ") diff --git a/components/ordhook-core/src/service/http_api.rs b/components/ordhook-core/src/service/http_api.rs index 5e869a7..c1d6b62 100644 --- a/components/ordhook-core/src/service/http_api.rs +++ b/components/ordhook-core/src/service/http_api.rs @@ -334,4 +334,4 @@ fn serialized_predicate_with_status( "enabled": spec.enabled, }), } -} \ No newline at end of file +} diff --git a/components/ordhook-core/src/service/mod.rs b/components/ordhook-core/src/service/mod.rs index eaae4fb..b7a7c28 100644 --- a/components/ordhook-core/src/service/mod.rs +++ b/components/ordhook-core/src/service/mod.rs @@ -14,10 +14,9 @@ use crate::core::protocol::inscription_parsing::{ use crate::core::protocol::inscription_sequencing::SequenceCursor; use crate::core::{new_traversals_lazy_cache, should_sync_ordhook_db, should_sync_rocks_db}; use crate::db::{ - delete_data_in_ordhook_db, insert_entry_in_blocks, - update_inscriptions_with_block, update_locations_with_block, - open_readwrite_ordhook_db_conn, open_readwrite_ordhook_db_conn_rocks_db, - open_readwrite_ordhook_dbs, LazyBlock, LazyBlockTransaction, + delete_data_in_ordhook_db, insert_entry_in_blocks, open_readwrite_ordhook_db_conn, + open_readwrite_ordhook_db_conn_rocks_db, open_readwrite_ordhook_dbs, + update_inscriptions_with_block, update_locations_with_block, LazyBlock, LazyBlockTransaction, }; use crate::scan::bitcoin::process_block_with_predicates; use crate::service::http_api::start_predicate_api_server; @@ -49,8 +48,8 @@ use std::sync::mpsc::channel; use std::sync::Arc; pub struct Service { - config: Config, - ctx: Context, + pub config: Config, + pub ctx: Context, } impl Service { @@ -217,7 +216,7 @@ impl Service { >, ) -> Result<(), String> { let PredicatesApi::On(ref api_config) = self.config.http_api else { - return Ok(()) + return Ok(()); }; let (bitcoin_scan_op_tx, bitcoin_scan_op_rx) = crossbeam_channel::unbounded(); @@ -388,7 +387,7 @@ impl Service { ); event_observer_config.chainhook_config = Some(chainhook_config); let data_rx = if enable_internal_trigger { - let (tx, rx) = crossbeam_channel::unbounded(); + let (tx, rx) = crossbeam_channel::bounded(256); event_observer_config.data_handler_tx = Some(tx); Some(rx) } else { @@ -503,7 +502,7 @@ impl Service { while let Some((start_block, end_block, speed)) = should_sync_ordhook_db(&self.config, &self.ctx)? { - if last_block_processed == end_block { + if last_block_processed == end_block { break; } let blocks_post_processor = start_inscription_indexing_processor( @@ -598,12 +597,14 @@ fn chainhook_sidecar_mutate_ordhook_db(command: HandleBlock, config: &Config, ct let compressed_block: LazyBlock = match LazyBlock::from_standardized_block(&block) { Ok(block) => block, Err(e) => { - error!( - ctx.expect_logger(), - "Unable to compress block #{}: #{}", - block.block_identifier.index, - e.to_string() - ); + ctx.try_log(|logger| { + error!( + logger, + "Unable to compress block #{}: #{}", + block.block_identifier.index, + e.to_string() + ) + }); return; } }; @@ -616,17 +617,9 @@ fn chainhook_sidecar_mutate_ordhook_db(command: HandleBlock, config: &Config, ct ); let _ = blocks_db_rw.flush(); - update_inscriptions_with_block( - &block, - &inscriptions_db_conn_rw, - &ctx, - ); + update_inscriptions_with_block(&block, &inscriptions_db_conn_rw, &ctx); - update_locations_with_block( - &block, - &inscriptions_db_conn_rw, - &ctx, - ); + update_locations_with_block(&block, &inscriptions_db_conn_rw, &ctx); } } } @@ -709,12 +702,14 @@ pub fn chainhook_sidecar_mutate_blocks( let compressed_block: LazyBlock = match LazyBlock::from_standardized_block(&cache.block) { Ok(block) => block, Err(e) => { - error!( - ctx.expect_logger(), - "Unable to compress block #{}: #{}", - cache.block.block_identifier.index, - e.to_string() - ); + ctx.try_log(|logger| { + error!( + logger, + "Unable to compress block #{}: #{}", + cache.block.block_identifier.index, + e.to_string() + ) + }); continue; } }; @@ -729,16 +724,8 @@ pub fn chainhook_sidecar_mutate_blocks( let _ = blocks_db_rw.flush(); if cache.processed_by_sidecar { - update_inscriptions_with_block( - &cache.block, - &inscriptions_db_tx, - &ctx, - ); - update_locations_with_block( - &cache.block, - &inscriptions_db_tx, - &ctx, - ); + update_inscriptions_with_block(&cache.block, &inscriptions_db_tx, &ctx); + update_locations_with_block(&cache.block, &inscriptions_db_tx, &ctx); } else { updated_blocks_ids.push(format!("{}", cache.block.block_identifier.index)); diff --git a/components/ordhook-core/src/service/runloops.rs b/components/ordhook-core/src/service/runloops.rs index b8293e4..63ead0c 100644 --- a/components/ordhook-core/src/service/runloops.rs +++ b/components/ordhook-core/src/service/runloops.rs @@ -32,6 +32,7 @@ pub fn start_bitcoin_scan_runloop( let op = scan_bitcoin_chainstate_via_rpc_using_predicate( &predicate_spec, &moved_config, + None, &moved_ctx, ); diff --git a/components/ordhook-sdk-js/.cargo/config.toml b/components/ordhook-sdk-js/.cargo/config.toml new file mode 100644 index 0000000..7ede30e --- /dev/null +++ b/components/ordhook-sdk-js/.cargo/config.toml @@ -0,0 +1,3 @@ +[target.aarch64-unknown-linux-musl] +linker = "aarch64-linux-musl-gcc" +rustflags = ["-C", "target-feature=-crt-static"] \ No newline at end of file diff --git a/components/ordhook-sdk-js/.npmignore b/components/ordhook-sdk-js/.npmignore new file mode 100644 index 0000000..94009a2 --- /dev/null +++ b/components/ordhook-sdk-js/.npmignore @@ -0,0 +1,16 @@ +target +Cargo.toml +Cargo.lock +.cargo +.github +npm +src +.eslintrc +.prettierignore +rustfmt.toml +yarn.lock +**/*.rs +*.node +.yarn +__test__ +renovate.json diff --git a/components/ordhook-sdk-js/.yarn/install-state.gz b/components/ordhook-sdk-js/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..05478189178fee78f4f2b1850a4ae4da40424ec9 GIT binary patch literal 179343 zcmV(*K;FL}iwFP!000006Rf@4u5P(@oo5{^3lfw#cAj7%KrUiwb8wJ@AP?Kr~Xs_>o5PqKYaPNf3v^*_RIhN-P-@#ckA!I-ar1^ zfBe!f|LV)%^9^5p_wAS8#{c-;mw(DP{;>c0%YXWVxKEyQ^$yVNH@`W3td>`wXQZd39MbOdntQgZTUw!*G|MTy@|2O~ehkW6G`hzEjQSw>$nPpsg^L#VbbTw_(m6+W9j=l1n!0lQg?0YZKEM0n+b@6qSHI!6zj=T2t5$g8?DM`#Ic?>0uDE!toYuN| zz|P~dMduVOZuYg>e6EwziCB1#GxMx%k7r+D^@1s!*fMWrom%?+6qc6i!5_}Pa%g>F zyE%tv=KQ3GpYRJ7``dr=U%r}^?kAOS)frkX&z$j;9OjOpTW2VwhnyYKMGaoMul%iFlQ}m)=&ou7t;gQtlmRN}=98x5COt3b8({s-zRxgzE|83_R_+)16`s zC6+}5+3l2-Mk#@PjQ7gdjd@;u)sxD#$M^;7`!%bnX&#IsT(j)Iig5S~FOSbeYjoI3kRDVNyq8qQO0LM(n&?^s6|abA^g3t@*R zmKImz2k{A?T@Bt|S5Nn5Yic8GJ$2rzUZJjQ*XOxnC3uwQ>6l@zGnVVV$1c6&`1@hE z*wz#}F|e$%*r`|(fxPs(&lA^rVq#yPyIp+NHTLXR2?QUUHT3jhOPiz-exgsi`8C|N zw{hY&_BK|K18ktUEBn$bNBSLHP<|*>eIs& zVtgXb(*t?7kJI?l!n@$ZSn42V@rAsh_Ow#N&}w&TV`r8?vLpHRo1gdLn1(sG22>bx z1b<@G9%j#_=gcy$C)ekk5m~~Omk|f96ee;ICV*2@Ar7 z&Y3(Bp0M!%_HbS$=5_{lROe!U;vmnGaQ6cyBB%j~D#^E1;Klu%MhIYY{Q6w`XIC?3 zz19`(!QSsX1d-jHF3daeAYd=g&9r`@%d z1m^j$rIi}Vf~`J6IO6ZV9?)3{V3CQ{)Sd?Easv(UshS_sw3;&QJa4SqVqMK?`D}b03YIgVRPhXwlDWzz^K1wH7q73l3VR3?}NYKE70VW?MTTUwv1%#gz&WfF-eFuRc#E4ZSciC+=9K|S|+ z@DSo<0G;AAHIaQuJ^ax8+0}$6g!({f2uyiD0QyEm+B4uX6PU$5Jah3?;AIR6dOG7n zjAP-r0nrY;35o_JLjVQ{8lP*%E*`hn8?4G+Mv%jOL1HHX?!g@)&T$pu=7+NkQ*rjC5|1XSb|Hpr3HH6`OATIYVz($e)SPL3MNWMT>K+xJB zaKTvp3K#nkF&vn7s>F;eXDFeIEcr&lGEut&WLAo>&)6ftlT-t;2s6gOI>G3J%zQ1s z9h05Ez(@b|+wa!?%fI>E_h0^-pDF1-{{H{x5yO9Osb!W7bi?M-5x9W+@%Ry-oGclqQ7ABP9F~lu#nT_z7O~(w{5u)<38ei7`Y9j_mV4h}EEYzl zg-$Oy8VCui#PEpXxDa®dS2w9w})8@OF2A9&wDSv>f|R4(#%p9LDrU>ta5JI{C) zhG;Sb%{(ivb8a}>=5_mpY~};{!OrB{oh;R#5TQF)dKQ#pkeK=zz;$pZ87C1H@Y%FL z;RmyPJWSZ@O8m(1;nmCvs)xD}#Wp`PrZVBG&jhN#4+g2F<}nNI%rihWBh(mj)bKdI zFkDdV3o18Bn1KhyE?d4gc=fF;^!+k#HZ0{UX4$4LLqU3M{fZgoHPua34g)zKse)=GhwaGb2Z{vd0?Y+ zkfqqwQJzS64+R#uYlkP`H7Su>_XVn!7Lc$(Y@uJkiFMc#aFwaMeRwr+`2~Vc<0diQ zZz2Jg4SvOi;V~Nq5$An@G4I*u?m&QbL(o<`C!O-Ffu#-7DX27FwZP8XhVN~NPwe0d zHUaZu>%iQ+ClVAHLY#C8DdWR?LlC_i=?3@+`Ghm_ASCs4h+Bm?1t9Zy$pceJ0mu&j zXb-q&;2SxUUHXO)ZE`9IgKdUWKmE=PfX>Ij@`!gt4PH))A#eE(?R;IuziFCUHq03F^}fTx_zkB%6}+%aa*LkJzv$S#y|(vW|R znZP+IcpO6j;FsI;zaA4K7 zr;*oTm&%6^bPhSCw9Y^45JHDH7o&lgM>l=25%I!h;Nj8ZGx$qp?Qqx^tx3!>+zkJK znT9wLRObMFTGijKl~^-Z@Js^X-k7T7mqx~dj^1`?+PLV-`7(1 z&A((;Mj8T@jg-iDQ=mM($$5;6}8=*UJ(xJtxD~E+Wj%>1I#K$$cL0$v@0*fL_ujm_AVC>NR>f zI_?BN^Dqi4%cse=w)wEan)!y@fH7f_TDLcDc*sc+AijCud-AR2fU^l;8^a`b4c^wA z7%|}tY!)Z!=kns^su`1 z7Lb6iiDDj?5=(d&_aq1;KvdzE26x)t!}k^-<@3p9-5zay81V3uU@*j~GO!mBK8FEGZMb(plce`#d z92*0RoGh*%QqL)uCpDPN{Qz`2T;Sk;V-ce9DWGYpaHR~lCJyH&qE6(eP56*X=T?b| zHR7G=c;@5)UYPtdX zT;Of^^Yxy65Io8mS0Y8h^}G!6h}wh-ge7~<`>Y`jx+;+(rQwmI@8Fl}um0xi?}qhP z>#HAs`py3F8xKi;ZCz54&2N|_##hJLlVn4L075{ZA#7HBlm$`h6==D;}!#T0Ytfiu0asPOC)mnSXt=41|Lggg&D_M>rF7dJ`5f}+T_J2!?ePf z*F8rc%etX$j;SH6JLb`^`~*P4v!&s;e7(7TBA~ZF`-&GicjA}f&2&#C=ZV!pev6FM zJ)ulM5O_CiqLzz11Ytz!+6=s#B$<6C6FeFE$C`atLy+uMPll}B7E+Zb-DDlhjc&LB+Y&Q@X$cn!^ohT+ zjDqKXNK=Ji56;fTt9x%?)5d3j1s9~L5V2uYyd5Gv%OEuX``FmKl*s2=kn&;b9RnU( zfcan=$W38&P&rT$NV^t5Xn%_;H@-p2Egrf>+=}#i_sL%and-Y~wXEw{Y5|h%kiN9u z)H;AzB%XPmiv&$t#*9;#+tUa3_ZOnwpS`y~|JUDsHUIX@KmY&S2fcsts}NDHtO!Th zKz{;RCu>QjWf5%0y@=O^CyOAp3nT2FN<-!0h-q}z;!OkC^yW`8u&IH}2YH-)Tr(+q z)}F<-*K*%^IVUyVVz2Pc2}%5LrN!j|U4gmwia%|lMOql(6`|D7i3g(skfw2U9uf;( zn$mTeu@08r+12zi2Vw%I$D`x>a66J%PERMkJopiuHffj>Fw4sLT_jJXPe(k!!zBoX z1Ofcv3Tu*j0oL$1kEEUoeIskIz-)?*b?_A1N6Z;eTiK-JCR`Y-xz?k{)E^@QppQ^d zNXa`NV(3j20ZTqm!o116*U2A7tH+yc;M&UdvPyg2o`hJV=TS9ANND5FNGzih=z3}C z=1Nzbq^@MlY?O{{`2YE{F{g!t~{S>UQg{0FeQ=XNrxEyVwLxd)`^#& zPj$&npxHCd#oiDsEXxQbZE|YE=72{h1J^M_Y&H=}y&_u?M%XHG)svP^cCv`3hx6h1 zeeHR86d3lcH39JPP;lDHvqFm+Y>4G_e@7gTheQP!$gmsB#ttZb9N20mwZN&Ku6uzo z@*40(D6*CIs|ViL5YhUh%-{>(>)@&n`;Fz{vsiwNTkdu6lT4B)V)0S|XV}jnEn$41 zIzl%AxxYn}T_l5ndaGsSCR-b^M|OiZL)0ktLa>xd(n`m=3a?W`8xgig7#T!}oIh-7 zWN`=!zAP5m)w7KUV1g^aBrGMz{ICy#GZuvLWY4;8pYd3|1Qo0#=MDV{c7u>KiHVpW zn{ek!&|97>z$LxuuhwKm7{nxHW0P0=Fv}Y-=6qjwf;5Ml_X=Pj6((yeM*{%NVygpC zj(bxv}bH~r+Ycq$jB#vY57aySvzbv5xq_b z$)~Tl@3O}Qhr4i!8)gE>xdB0oFhJm~AeMY#RE=c+WJtF6)7DqRwtc|3*G&MC&o0>C z!kdWQ3ES%T0`V*;)wN;eo#2@#{`Y7IllNAy`_rc*q`_`oRj%heK%DmY90x+i(}5pv ziD|4c^kzc>WUlqzKmh>g8*(}(k?JNx@+GI={CeY0%R3>9_zQ%b55Brpf*@^H*dP0G zT++tRK3t~=kRG_T)aTA4=Va~)BoMM(Txk+W#a3QB+?LOhJh7{#`NdQBx!al-PI6tV zCE(_U8gxj*OjdF3NUFqbK!I^SxZ{nVu|Ux3Q{q!U90dS~gaI$DfW0tH&*CvD(vyHrR%j*Cedq4Ic34-b_hyMT z0tU|l-{ChOjshL-OtfWB0JfgSklotVs|lvSke?Z$q9@llZ{lmTrh3QcK;yE_YF?l6 z{S8i22gwTrp5A(fjqQe1$dWjieG8q1=zUe3If@`_;lj^o4>FR0l~fvkl;9TbpjM!p6#29uPL)4?Z6rb|h(z*LjG4o>b*i z5;PI=dIQeWd$RrM)fC);K#R+iHFhIm6Qn^{T_m}qS&^*ATfXcZvjP!li7&w;KsdFK zr%0!(#L06$JG{kXp4bo@uuoAn93K8=IfB>uo`IBA`+Z9lKYir@ifnO&-ODtNdKNVn z6d{mITV}h)Tf=X7>%3P29d9~cVx5cl(d-Rj6H_Mp99G`14A*8uQy_?0>jp9pAd7Ql zYXGh8wt5@vc?hQ;wzS84`fiap$fmU?+(%wjLfr-5eTcKEY%HVn$5eSXppjtQJ>ta= z$Wzw~pLy-$A>cpf8lE)}lUpO*COFS&>48WTOkm%H9HQZ{r|9`~+0Kfj7tm$RZ|_Gf zk7wtpoXA4wdQN}~c)3GLpFam-xTO{6!2iNiiS3^VjmV2tKX8S8W3mel(Q`9eUWJd% zCBtLKs_%`&YB(EC`e`QJuwpXkf&vp&S8H{SLiUI^XiJDt-d3$>Y_`V*Yh#fR@6fHM zBB|tJgNW^p7}Etcf@OeTYUL}vVw{9PbEr)ub~q-(*?Y&tK7N=Hl-?sR_gDiGSqUH- zo4DDC9zG>mqxy&dw{VHajg&J*@Jn$ zmS~Wlt6l8d#n%O3&WEp2fwav)!%tkc{M4p8l46v#^y2Z>I=6`+fZ)WbY3 zzwWi}1Na|tJ;kbv$2!qV`jgoJJIj*YT(I)uQ6V(#vIGWL$8OdUkZHN4011YGn z6J2={I}2*DX7LrFeHw+Fm28Fg&JAooB@U@X(Nc(~isdDpnjBey0zw**_YN_Jlj%6&!_Zs%}V_0z!NxdX)T6U&mZ zN`OEu2immp$O6+Q?p15VK3sl~dEe8vYiq_Y5gV>y7h_8|>8^?;7a<&amXp^~0L&)H zBFj7nS3U#c#^dqa!^1WU!GhOo7m?w<_G2GoKCn)J=OR`@6hIJHhBln*!>hq-*!EDs z$BUS@D+GFUP$m2l+ajl=3c<|rI-o27Kzls5m>!AW*(<>^uQ$KoZaI(p8J@YFC)%^f z!A6^YCKZWO{O@O^deM+|l%&j5V5ru(nHk-ZeqJXsf zE^Q`Hrt``D?dpeG20+UtK5NABU?!S3+~+)OHL(QX`K%jCI_`q=5F81byW8>kVYX%o zqWo}zFoDjG=F>d`e@X-OT2oc~#a4l>ZT~rgaEtGlQ$W`s)e=Dyi5S%^I9z=cm<&+4 zz{cTv)tdTgnXm`EYw($H(L+KCB%KfQn_(>mzCtoM`3QaOv6!jG^uBWMo)$X+j_=-p zPCJzrGhydOl4IJ^|)ud+J~KRb*ynmIOy;Yj`+|cRzSkEqGJ4fn_oYS1+K1q z#0qKIDblPkoU;+0iN0^2pM83rSX77YzBlL#x=i!}6M#*kjU>cg+~&=!*7u|v96>OV zLKHhOyf&UC0$Jgt2L@N3>JCi38+ zf5V613r~9wcY)C4eQQ~hfw?p`jr54m&kzCrFmVs+tlN3oXxLc9QRjq;kA4y9KU`it zpLFbe(N!?%$7Q5Yz&kb`vtM_{E|$+p3gN#e@strh=dBc248yuDJ_Jw_1>-|NE@YNd zyt8f|Y1aF)Y|%|8j6aLi9EmP`dTO7>&=Q&jC?4Kz22a)jg>W}8$|CnXJH@?7M!RQ^ z)Sekf*{Ku3h-}Sf<#hbHYr5uH@e}&>3;JSvhtfHbqK}Io2hG!Ij<<(v!nL~`ylf5Sotpj0h~v)&Jw$9>?+R_pyGJio?bmX7tpOkGR6hHBWben zd?Ju1vRF1bSz@0(#G5#9p8LbKEWpH2j{+<({d#2}fQkkU`>=oNv4Jec1#Tv2SP-y4 zECi|&NW+tTxDwv8wZm=wBKEr8NOx^~2W$X81U+HW(1r;W_aX>?+%^=4^xZIT|X-jQ8_ld_YzpFWQZ0K@*PtTt4n0q*kjvbSTdUK>WZick79T z6$jGkv*%rVt~_rgkT2mH(E9FpAl!~sJtx3@CXmi6`M}P_XBdX-Vk{OXeSEq1v zdo2|}3pQI95?HjN*-DgXyJD(VmMT$~Vgv|Xp~R{t9$si4Da540kU+K{J~2!YPmQ@_ z#`tu;y8s3lvPy<(hN!mNrM%a|tvn!r=*VY!2xDPlge4rLHxPhPz7ZqK1H&Lnx*>{h z;qbsvOp?XN_lVbqUvM{w@xy%7rld=y28d_@pd|03ZVv=J7gs}ynMK}I(Zm&JpJ1+G7Cw_@V-B={{7q_&IK&45o^5Wu5BlR z!nQP;WqKC1SqJPjt(#Z~78s!PRI5OzhNWoI^0ZgcM+;y0O^@C@)?`oZhb;|wMo=Xk z@Sn_1z*Y({o(Cyjk}m7L(>(xS$)Jt=8 z+O_aWM$#1a+nr22eTw%RsLQHhdqtzI7Q_V#-9!*WO{ zO+B|zh`Q(PkM$NIsnH3r_TVSNq=v1-U7kv)IL9i=Be}Av9tr|+XYn6q*LHmJqU|}n zPqPOT^N+p5k8{4E)CV|isS^;*oXUC$w5Qgm17BJrPJ{!|1fMoruN%(PAM0!CSRJHy zyncsAta&=lNnGyG3=Faq10)LgUw4C$%6YD!7RgClBK`m> zI|v2Xq7)U+RY*Mzk{(FDersV-lp0Q=Nppz47^_u z+D#ZbkVOU02+7xDv8SAlFr+Jx^X~hy2eGg@knea|AOy_o!D8ggruu=Qu7?~mBE$mH zy)eC5PrcP5oV<`$`%X*!M6X&t%z46t&4UsnFE0Fibg9^>?D0Mo;yA4S2DW(mxDC>$cqXwtAp?o)iaeO#Jlf(n) z21Zb z0~(KgxcAuD1zQboJH0Xio<+_NpMMgPdC%Th=)}VoF-*_r=LZ7YiEq`rXhri*S2gSc zwiM-AtH-g*%&=m%2C2i2(CvvLkvY5vOx1>hI1$w<+jp@ufVHoB$brQJA`3b&fP)D^)dLVz)9Q+_U&9)=3;>& zxmIrv+gD248f+FjKYjjr0X)3)&-PB0VMpw%%mEK=WYA3zIQt=)6Oo%m=dgkXHo)}Y z|JNi$&3Xl5l;AZD_Lm^ea@EZ0o{RKdVAloAm+~uTX&+F}{hGXxPwTgZ*ST-f%)l<7 z9#+fl@w}qvUb>q|yxX{6V&I8^9h#2~A6H1P!o()%5~4jcjMf~-2%NcYWlz*Yeio1! z2n4$w+s;m$$jg=VapA1oRpoj-v*;!KzC{nJsXBaYl2FUJ4$cloY1mI75=^y?a_RWY zZi$R;{ZxIgg%c^>npd06TX|2`z!J^eRmZ;Uv|mDbL;%>fKw;G2##^_yVxt98wB#?+N_W+W-Y~a16qie5H)i_=xGR0Cms9aIE zGd4gqBq$Ks6+}>eNsaE0zy0p}pT7M0&wWSV|MV*l4DZM5Uct#zyvS^%(7aM6@CD!& z*fG~N#!%%XZRll9=hb2Zpy7S2D2B)8((@|XdJmL}=b?+gQX26jOLx~6vPT2@lfB~u z_NZg?>4OhaLL=`_Lsd{d^w_DE&&JkqC-{F41Z{6V0F{b`oVT0+s%BYnNj0bq{{k3m zIy{k9GpMNLw)vAA`a0AOwxK2L62W#c@JIZA{P2Mx^hK=|*mVa&6MiGUuEhD%Ec=-6 z5CSC&fLa7Gb_G0|lmzyE`(}9#Fi6UTVrhcr8X$MMDMC)lBD@d}0D1u&4v&jlJs_Kw zt!T_2-kbLG!7Y#E)j^)e^OvhUVZzkX2)NeU_TIcmuk4JHroEQ8E@zLr!qZ7lS6j2^ zg!zE^$V9{lg`BT`U7iryhpp@(@W|4srSj$TZuy7XunB76QD}O=3i=K28Nm4z8~^}d zTxyk&_)EY58~F+s03QKoX4_{2?}Cl7wEzkDTg>dS0$h!;rw{OkSo>{3BoXkF_D*;Y z!Q{Hy=A%AM;35&qzSID=f@4oboh>&Z0N4`XjlAa~eczVm5Y<7&s}jA_tIHVTm8>bO zF#mXu+{{8O12|}Xr(OQ=3a^QS*UDA(mb^L`)N;5FLpO54C0yV^Lj8Ms4o_E?YTa52n>0J2-;C1 zAOeS6A0`R=KKttN^6)e6d}P3Y>>-F z;vKg=*i(&$l9UKo+oljlT;wZQ<8PfVKZhW2VDq0=)C0;u0c`Mega}XM!_VhxJb~4k z1XggHp&8aZaCgg+LHQem|6DPyPW}OD4~3qedTe|N8%Gks{366L`S>le>-4yi_uM^u(8N)}>;Kus!h5#7BS; z>O0ltdOC4L?Un}wckj2KDSIk)zx4?BQ(+R%<2;OChyq{!Vt)7acR&2)kAL_5_uu{S z)0aO{Cgaz^HC?JhJZfG1&Uw2;+bAQk;7sM zEZ0EM*zc^Gh(yuRHrM^CkwrJ3?|T%D1-ln(fj=$ghJ%)nAg8b#`%+Z><2h8wB^ZDi zZ&Jvzg%wiPqk`NQ0UDdjeh0V*NNz*H+>mk);tpS+^yc#@*=_TQ*ZVi{$F83KT(G2o znQv<@K71-#E3c_+@HL^W+R%D~M zp+jKH96Us@{<-x68evIKebpSxRctNt;v;RAUKc2c_*_m?f;=ZHU`_+c?h0rl-8+;4$~J-n^XwXPaHeNs)V;6$t( z|FEeys&pDXb<6XubI&YXT?va{w;i?Y8tG?2=;L6QGsw1Cl&Z{qcoGOnE%Q&GlRAyU zn}oF`XfgK+e}LtM!#f5YEF8@yHzz0+-KUM{6>n`G!=>)vJQHXIC4kADxpe(}MX_yv zg{=dV;*m={#5WR^^N5J;M91^tTgDBzNso&CvD|_5L(sLGcPrBh3mupG1a`GpN0^C+ zH=*0}=_imaI~LgNq#{vmNY7cah_@QfDxIF*cEH}Rrljoy7M`L-P)H0aI(_(-(OY@j zL}s~5?+zXltJbwfKbDJuryro(?J;x(VS9Iv(F5LWX}xP~ck-62!ylU5&W6*{7wf8^ z9=__H3wOCT(a;lBFwr`eHk8qxPeY*7a_|7%i(ts*2C@-T38~GQN+7pkX|f_>xQ?X* zM-c_W+_I>}ZU*vx_8__urGJ`Q;j7*dU0oAvAkx3;6J6u7zro`6~PXW8ltG`4O3 zB;jO7swgP4x)vIjCqe@!ngpt5Bi1@zMOwA!sdyygKtP(Uf`A~^ryf;=J}tl*i*0Xj zYDlYst?>EI4^j#l8!vZfqqbuz9u=+|FC3Txfd+inWUe9Ggs{Bew=w(O;Wk#2oez6r zAv_f;h5(UFn>w%wsKe@pSF0cHOXyZOZckcjdLsw83S^$lwR-F{kzcUpEzY;u|odHr0@QOmaGc_GDCkUi>CE#fcMl@p*& zb_xOX*)}m(;aHytA3V;>^8Pxu(!my()pUe}iAWMJT?7jen!_oU1^v=o)?c-njj9^>|;E7))IB2&av7 z0Ays?qUU&r2hAz6`^AbtMeEa*{6tsVz<6!==sLstGbph$1$RhAjRGPa#Osx#_V{B& zYZCzm3NqcVUUhxTB}l|~n<_a*i#|J)jZazDQw^KQ#00#Eh9Se(RYa*DpBNc%ZXn2H zceaA|qJdP%j`!tkwOfE_=MLNyn$t`WO-VD^Rxc zu=Tq?1W!u}nvfW~Df4bC);uu&l_%u5on2y%))I`H%ntmXpnh^K#%O)a%EzzWj*m3^ zghez2ayo5bLr2f!{oL;Amw%YwPNnE7;>-zXw{UNXq^p9AJ6FfpIFPjwdym6E zXL)e&S=BDN6eT$K?WCgjJ_NgR3gzY8-`kqm1owVR&WCy^VL>cnQpBWRpH{|jI-i58 zj!K^?VR8dEDYg+h_sAqUF_cFbz3!zxNj&BxOW5(9W^KxDATWKiKyJ#+6#m&c!k>W^n_(c ztjuZWEQ~lh$CPa#1aCmW0DMnUaUhH>iNj7=G@y_(xW_td0*dm6Si+|-;YgR843D|P zbX76)YLu8|sWAyV^>Q`a6yDeQs(j^rJq@b;-b-Uc)gxfFpT%jVSRU~f@$()m;9Y5Z zzdD3?e7K`!6i|1}Z~XMNmGYK_AhzDwZY$s{@MmWW0=RUUl?R&yv#yhv-66&7+g7ZU zeq)v62F#C-y0Q^LYK)tOfDj9!81r0i@T%-t5b{N$<>*;>EsWOtQe) z()n(gJXxSwO>z6fK75(rybKaU*~@b2FuKJZ{leidFLj(*L4YgOwkaFgy0YfAb|C8U zDmBX~Ni>i(z-Z3LPUTxUpY=#fkL8tsz^6b8tC`7(U)^d-^+P_bjM0Ue@W>gw!0zzj z(^Z0c1!ki%lU@DhTCJ)+o@bKPp9U?PY4GYJ8`V@c#-Q%=fF7!&RDsMtA6lv2>JbNl zEMKA9ucPpUQn$POlIr%aI^`ghRoiPk{}d{}RcV-nLMGLjI(Ko>!!==|lP!TBoTo(M zb_J)-H{muL`$IQY`MzQ) z<56b0JCUNhr6I<%3^r}3pi1_r8l)R)H#Fi#jyrk27Zg94u2epj<0zM41J2dL6jpSpR~8LC)iP$$RlO+ zI=nKudN(ddveU|NpJngP?I7&!=!6y=C9?|Aft@5DY!{Hh; zw(>OlahycwWKPd6ThHc+aSfZ_0m+JeNK#ZcENcefwava)WSvtXvv?~nN1(>ZqZ96q zdjY&8GdsP)c$dI~QI&g~?9;>T2w58*yntw7;RrcfUl{Jk*%{VLhhggxXcKb$IHa?;nQ{YI^|`9{=! z6p-|kg9nPm$cZkBtgPsflq{>qnr_?bw1ynw`NOmmAz#b61n4zJs!_`QdZuE8vvJUIOPt ztZsHwFX^(brhDyt!?B+M9l#3t>k?H9cbwQ!Kp6LkecE%r>V@w)+=nlCrq|gIeibdF z23*`#LhW3YZcnPBVWmEw*8e2WIiDptCB5G3vcqkj;{ioVHmprTm@_9x@`@Uo_;}i+ zQlvBtn^RZCCT+*n40ZSyk=n_GYKcE%fS^5qdxzl>J5yrcog!`n?T2w17#TVM({u() z&qr;D4H@Xbf3@&g#7IYBi&kG9rQ|$FB3`)OPP_%K;VT?I{J@X9$Ir0yp*~Ge9Ki%(V(ka6^QhKOR`dOM+6{m0pDr)5r|vFcEzbjb z2BkbsS01JZ(1#sXa5d69TS%gTHDX6rM7H$m;My8KPPvMiBm;$}vwDcq_p*L*E9IOW zCh{a=A6QnYtx~+XBd>j0kIga8Cx+WGy_Th5>fjO>z9-^Ikqhhe4=Z77-hL|*3Q;`# ze1%rpZ5RgpB!E!C1|64BQ%h&UX@v;{L%8{qtaGzLneczV6CuG5pFX*rvpH!qu9Y)< z88E!aD&yLXh$Yz%o>n#u#KP3H<}9{JJlV5P`@}Dm2p(l(QlEf_W?M#fb{%Z?Kn6k8 zkK=C@)5ZUZ^+`E*;@kD%Q}tIY8r@5@RO5A$w`|II6Uo}}7F$<~ z-t@+HK?`6ox6V-EsDS^wR>!fzviqKc>>1!2!7=qmIon=F=+A`6%}*DAw%qZFt@_|_ zzQlT92Uk%f-v8a?LdQ=izq00rBfvAsOT)?0WJK!<0|rRW<*kf$seo7b5~xj>IXl8C zIYtHdS1CMMtmrf{KHZtiA3h!I_Tvr*cX(m!HM9c(iWe{K8t;rY9tuQNyPP0AB}m+| z`ZCpavgtuhzb@srh~Pt!-Rbp=cWgtQ32`nJ-a8xE&B@26Gg=drZ0h~HE3 zzU7v+@q?E$WE_CaQmf4dxKsD{#OUsL6HjSi5{m8u;1sCL0&B<%a7+)s6ym>B|G&3J z#wSI9=N=wH1iJu;l^>1*_`&w3(1}i@HYF^|aRjn*x$kjqB@kVu0gK0ZmB5I0Rpp1M zieV+7&0WJ|k1tSqz_73IR{N&NZ*h6cJ<6*z<4BQc@c{-r@v7&;SO8xbUZ8uvQSBj) z&dF)#X-zFCT<19flnf!b91%~_7xc7gyJe{k7bIWa%}Qcn_GO`e*rVIh6Zybannh&E zGLP>2(^a{;e z=(m@Uov`A;;k-6ecz97BAarozM{kaEff~Fs#_TT7Fd4frh;A?(kE5pJY&>NT^--?G z!D5!l+EC(+qw*1-?s*fMTSf*6Sx)H%8s1ZF=3~QbDPp9kH2_&n{}j=DdX7!Gq(Z_UIw+dKl$DV5NgGjbWPPd!i;BF5Yta9lsq;FfzLf8%;f2o;4BK* zfU#~hXJPRy1ArplQtVf{)!K2gS&iySS-anpdOpAbVmYYT`|Qy`Y*cEciolcCC|`VKcJ~ z>(@hb3XT2x=e|3X?rDd$s?o225oBqUk{t>_0O^-+5ybJ~?8#4pc-S$elrouRv@we2 zl!pb7?G?aR>BlPWYkTKu&TQHCgme>;`;TH%6Q+>fQl*6N>FK+}%Tu`SMCl2#Sd zxGgsHM1gqsVM|+fgMk?Hvt|aXyfqDJS(O^Sj%irm3HHd>Xd8q>33$o-RMryju5>or zid8zi_m6s+)ypn@<5yv(jGsJ7d1u zyL7YFf`U&^)pF{rijQ}+>~UJUg)7e}buX{l56K?h38j38LW8?fxW@(wZCHQr8PvVQ zD*$!@h&+SqXnN71!Y+NsFU-*H-TdnoO1CL~P!|~2FIX?zEXBp>gPF(Sj`qlX44;I+E zFMAYbC+s=^UJe(cAi@68>cq=xYt;#ORJvIWk>dWivX7_VfW`Mv3H}M?Z;BQLTUNY+ z<@v)2cNFDc5Qk!+bi2Cx-}YN71-c#hOt6D~kw={KbSkEJuD6D@l6v@Psp-{4M{T}P zH`|o;;RrqO4@;Ov1j{RFygXWCH>`_sEM3io^rIdqe_kwEs4cvj5!UMCpTmy)L4A3|0-T;wWd_bD`U*7dAz1+io3r8)|OgY+o8hN zB$|GD<~W?wiH$H$ejL_ctsf}G4sKBM=u7IXjKypYEP`P=D6e=TCHrg*YTBabw9>slrI%1`teB`TG++2_DsfCQE9TSvdTC_xf2|+ z5~dT(N+9DAGNhj|-}X@u9*$EGp4i(BI(En$y#Kil6fMMRU%`S-TrZPOd`lX~Y;5f) z;q=3nHlC@be^~0%;MEGkE(>t?JL{AmZ;Pe9qQOoMt2otraBgkNbHE5-`$ zG`$}O-K|gS6hZ1?XuxK&0pNpBg|T(Z73|e_pd1hdCi$u@rj;f%MtOksWgH)nUR>b!OKJj6IZ-su$vq>H!hC@)oCW6MMwsN=O> z>9OXBb0_~i1PBFuFZ*)UV7NR+@&rEf8Fm$)29OzBaardYWNWBF{#AwD0P?)cw5ytQ zW{0T5-abC9f#(hmDV>1n@?LQeH&q^!zYQ}7P#Jh8j)csOFl~T;7aJAaw_Xt7c>!Dj z-Q=9-5bJM|TIb_VU7la#iX-VoY{~=uSdW5xCwzWd16K7|J^xO}Y^KqlrR!m;lgYfuC;gwHqbdNH2Ksq>QJtGwj3yqY$!o8fqE zV%VC?3SCm=+(E^UYM0>#t0rLgdqqdsgrGEW-vtk0Joi4%_X#^82x_ z)+9(2dZ)|P1{WAJDAt2d$v(+fLrvDlni|D*iz8?O{j<~)Y*NDgW3ki|JIlwa>KTZV zaMzFDNkg{4zRA0kHz|a7jAXSIke}Z|e@|Q=(ouGbHd(X3!%dTkHUR=2YtRZ?bX~%4 zpaRDFvsR2(?YCD1R}lor2*KXK4(N|{UY4|dI0^s-Lv!lv9tyLMrkaK4&c zQW2sINQ1dumK#TNt_6@wDx^BX8PM))gdB046I{Z?}(OVyV2v=)=NpRtKQd}GHnm3(NXXO zkkJ8d$4|2VqaPdZx{{7|!St&pkAhhyjP%15#9jd?PYTJ$>ANb)irqNm@SRq86R|9$ z4URS--QSqVVhQtYd_G5o)0?0G&K~LI0IV_%^@?VA>T}{{!^&e*a=l=<)ekZ5(C!&REaa+b(X0d(TswzI5b8g+X`oo)wy#cltzCB<-L)B4N=kD~aut=(09 zE26ohqWPbSlLm-tfmebJ0^}a+qm;`c#{7cfz(4!|igOw6_rz=;QNQXa4x~*$WmQT6!UQxR7=aG3 z28vOu$Z1oDSD$Su@T{=2(DXQF*P8v&Td>fsdnNKxcqOE65YO<=x3m3((QAZH%Vyeh z=6zq?#Hgb#TG&xZ1!sTdG+V&>>~FG(xc0sPG(?5#ozu7znbN7iDwyQ#RoWrSw{ktI z%|W>}>a6NQ>p&f~i@fW(GGAF7^zut4xPSb<|M27f^3Pw@i{JeIw;174`?6EFyO!mF=h3`EhUek(KY0+@|)j)b)nHOhT)dl=GjRbO@wLU()!a}`ay*HWX zIBmy4Aj>gYpjJ<#_9n{pSIf+vl4Jdtf)WZ`7l;KEE7WUywO@^i{YiDRed&PQ!CWM8 z0KXanDvEg3>S>b-x%txt@Wt7)3N8}YfEWDSx6QkPah`~idx^5n;8z^&EpX{#Y}S;( za{>EQJpu$P3UsK?a&FHs&L?NS5bND5(x0fLnf9FJe#c}P@cHo3NmhuJ$KW+TrB3^f zVmQG$inl40T>>UupxpQlMYEx*5SF7BW`m(S^~nx&C;r_J5kD-Fd+ud8`GtS^v_hDAS!5(byWQ_; zg8tPs%?(oO%!V^+u@b4gCCWf|9=j|DjH>IicUJs}WDDQ30$|qa>lib4daTX&+?9f%0$D%TME92<4ub2C1V7ebGUWk>ytt|-4c z)zl(caP3SQ>M&IzA%-jejdkJfsL<}ZO$SV zI0xfZ!M(z?Qp}S6`QhVWaC9ZoW(U&1F|dPpbpn%xNqN2}a+HZMHFgWJt)BW$iBV$l!!hl=8pm5jxUB4D z4lvoK7DvUHY90gr9p7031KY7BDS=AoQuxoos1we**}v{wqTC-iN^x*DOdJAFgaj|t zcXD)rp#-Pi7B4styY_rId#ci^YSNV~tg5v-D2Mc3-~MSR=q}dK+b{p_+wZ^mx8MHwQ~&zw{lk}k_2uvP4?lkO-M3$U8~@{XU;g6z{?p(7 z>)-va-_8EhcR%<;|KjVP|NUS8?%(lO?~ev#{fj>5{_)4J#@GAzU;E>K?~S@@bj!+l z@P>N3iv+9G`=d%J6cR+#6h9cEN+%?TcR*t*8>9>xc6f<8by2;~ZJ#tjpQ!Z?U+OB5 zRo>Y1ibg*|et??dWYC5?g3CMQ*k z61#VRZP@bT7^6pu~m`~pkSL{9p8Dh(V&t#sTjKH zv@#IyD0^*;xGE^mkG+c-Ew5KeQhe{!DiJU_!d?jLCe_kiIr<1};@kB?^iinvigxa1 zJ2ChKTQganLq`-~Tg$ln%IMP4bLz@SV$PTKp~SBC4a zSBo=PCah(wB6hQtftWa4EZCZU+c;0FYH9 ziG3A0Lt0Z3c>^-M*7H8kBa7nYu^m8RSW5S7ld4mrOIf*S zLS=W>DS=bH?B>_-RAz$D^3H=rh7FlOO| zY*^hpGOkz~Be`y8G)J*5-b5VlXmcmXH>D+r$CW77s#NJY%}!=@9W0LQ9=nMuuAmGd zj64Lhfl`SMGq>^nJ}RBZ?Dp-p9kzPbYN^0}b@P5wkBtEHA~b-2}r5Ab=a= zOOAqH?N%IoC){UAfV7L}%@H;!1MiL|#3R;KCsd;mBCwuLFe3R}u>l8y&8nA4kMz*Q4^!oB<2dhMIVXn%C%$b64q*!Twv`<#s}CQYa%`t5LDyLecJXBsi5LihCVQmYt57Fu8gc4+Tk;{yq@MiFSHBN16J`^d<41S_txu1{!TZ%R zY~iGBVyD`1brdGSSqa`s(|M-sjG=-d)I?|_MDRniSL`bFKGurmCp+6SE78Bb;jExp zHl#fubr_2(Y5dSL?esRkvbFe%O3D{rzAV^%-cF%c7N4Kd)n5UZU}6#cm2Jv@ITrxX z7A(BZ&_p17rN3|IV1k7k-tsK5=NQ~(DV z4;Ob31|4N|VF*?UFAy1Iy=O4wyC!^Gc5cr*E*yW?_CIug%h(p`MZx(6EjNw&^saXKlL-K*&d> z55*1ZPO9J%&Xf^9Y|JC3-0M=yIrs?EUNImFX1@8ts475m{-6RWYgh;i&V-jc}YJU($P3k1%Wi@>Jl4xIT;$LA6bAHf({nIlKrKSprvNmgLPxnMZP|Cr-C2 zD92$hcUA~N!z@m?C9D@^N9+3te#C)#6XII6%|pNxh7GQKx2Gz}!c=E95d`md9#R1+ zX73ck?*|v)w4s1@HY9A=HwJ~6?Cf$1wXS1Auzzph<;A%O+tAm11R$NV>}fzP?3LSA zIAX)(B|s!Z$}Vkq26@Nx59cdEz0?qE=cMD5t4kpc2*&Mba+OV*B1q0^i=ANF9es9q zNlwKAW834EjOeEj2z(3p&D}gJSKQ|SX!!2i5nGqHyM#cT1Q0I6igxz#)>?ar(1ZO} zcjR<+@Ag!7-f>8tnRfLsuF1!MX1p@BO=u=3B?v(*ly3lhoXWS5-m~6jizE?!Rht~( zBtb2$?nFs|1+JJF@yp4bmj$zl&am=N91x{Me*&@AeYZZV}Apmj4D^hDqE%+Bp7oZ-HQ?;6_p|76?neXizIm&VXcb z=XN)7TxSX|ud?tg)~M_N?_4z_2fj)bB1lH{th@3#6aOjv>5XqGg&D9MWx^Zo*@^>@ zQtUjSY)a9`3u??GCcCW!M@2yz_QAQ6Y^z9p?V3GZ#q!9iYC%{=blR(XpISTXvA4P; z=NaVoDspAzu?b0*Qr(;-#|tw6*+rSb z^EO~~l@QGo0+0*_Vb7ZbcSmZr?8B|9))%ojY{?--UczUOppw#skkVvsv5PHAfj_43*6MkQg6) z*n~IZ5>XKjt3+6|ew60{2yU~n1DOaIjnvus(z-zGsNMt6EGj|id@KZPfKmygAW|3tUOHzj;{J4G&e;`vdc z)P?36+sKAG_cUOIByL#`7j5S_p{jpmp~SADdkrij+DzJHt){x-c`M?Q+ueP4Of^BR%GR4oKH~M zEM}{<&2FLg95 zk=zu1Nb_#SZJ3ld;7uargUhA_a05uAVliB}bH=Mcmt(ca}lJNtYzkn$FZPYN!D6<{1nx=gSn5!lXV2RwUa zJ5~pq_XNZVn^EpHcS3T3g_Ha9buS$UJ@44{>TIm3`C~f<3_wH$GlN6kq_j&{xTe5E zV-dWDvDB)$ZV}Wdi@dY_Ak{o?RG_-+>!lDvo*rmcg$=XP6yzvGO;RnPz_~c#no|L~ zhmr)kosB{6PL3`XK7zx_PujL?nu;NmP$eJLQd_ng{7$EC-L{hvs@dK4A44dbrJb&A z;UUV{1dMel4PD;%o(BNLu0X{Q5;4GvcOnZrcCMqJ0tgdI$8JBZdh(?zzUQXoGC9Ed zpLMEzun&lP5loReiU5wGWi_0Z)Mf@@36rw2VYBEfaN7b~C6iEzwB-JLX&~)D59zUF zl2BduJPuV8wX)n{W2+FMQtkX}bw$_mlzanSGt{-ieGfq6icXEdPZ-eQO55GcrF7AgB|Bx48TX)zqbgKs`kVTV0Bz#81*O{{&*Q zLEseJC4<_WS5<6tc&WzQHRPEA()_sUcyb5YSo(}Ii3~`pgR|Sx_ZK6}y#%*?z43q1DF?A|YrT`&reRx7m~b;+yHDD^=uxCB%h& zoe08WH2Z)8lKmM`EjBG1Y{+z$uK+qYzbfmjX{OTDF!pl~jW!C)G5xubH)cSR*nkh+ zgd`4jWp-})n4Gc1hILRDAae|@dgfu8a=@N!!MU}?;#8jkbl~NNJW&;t?XvSE$ccG1 z`P$V+$*ls`*f2$_64so!bn#yxD2ie4nKQ5x+BV0_d7W%&_WSHtzN{J(003z4ktm4w zo+bNKKc6~ zu;gL~-TfTPRZck^@Dz7DkttV^;N&O)a(r=XJUu80r}lilEpAaaq&i=%8u8%30P z58O+Rtg?+~(`5vdMcya&wu_+Gbs^FeBR205NpV9#E*0K(!RWlA zW_pDXG4dKm0vDXu*#_&Nm$;MrUZ^@Lp~}}aSy~lYZOU8~w*+F0nppCp6S;hehLJRb zZsSKGv>s7`2EyNYfXytIc^9cNBcHmBJ9P($cz;pdtZ;H%cg<9jZg6mXi~XE0j-Jvk zMPHPoZ`$dm1z#O}u;RXKB#G3Q+QgctYXYEoo6u-0n*)ZIBH0rTd=VEnolgKZpm#C@ zlv8C%{i|Ug3Piy3TibH8Ngjmd^@<%X;MCIw1fOHDcSKDj#J2h$@8OKYu^S@-2b~ZC z09NhQxGuX+-lY+lSoYhuvq6w2l)A?yJp}n`&a&KV+@tSaG(k-h&;i5@qgxt&?47AX zIj?g&i`&u0kyI^RkiJw{gi8P+0pxm-rl8!aeHlY@T6To?A_PDX2YZ~er81RM&h64b zg+HHx+-zRKkG1fWRBf@tI%c)@JJDh2)}QT$h zb5&W6E^{W}B=z;?gc7mKIR5P-%r4(mB2GA?HYxzD+=wU#KbS0Ok3}MSI;=gFK$FW2 z8_D?XyKgH_VDS*N!^X8OacH0^JRq%Hj{u?7GhHMFc^&NGsQdzs3BT!xhU}QMSyWDKI(!S18GNuRcv`RdTbs?TL7{)W{?pZ1J4^+ zH$e3M4qJ%gp|6Mj;L6?bCoSo8o8pwvtg+eiqtoBMiWaPx$vRgpc+Y8>RT)QRfgxhL zyIGjJUxfaFe3^{KD-L`w%XSEnVDnK0dLU(TT-XZ*8}pNxXS{Svg8xA_gd_f}*3;(_ z9#bt)m9BF&ZxhXyD1HmKZ4AXGMM8kYI_hn4s+9&h>wC4Enf0)?#*5{NDp|9sUZB^h zRl_Y^$^b#5I1p?a3#ZeX%E-d|z=t@xY3yrWspl6V0o`xA-k(JC6Lc3mB%^Os7EEdSP#19 zvC%*i{4Twy#W|S!w>H-c(z52D?{!NhM2i z6##xUlkE0_00OhjW!F@YJWNVq-3m;*uTJg#H1D>9G^3MgSMV*UeJ_I`oPdZ5|IwBP z$`zCu?g}oKWrpPmzF80P0U5braO9Z>{&17WET7;>66M=t*P8v z((QZ^*__SB>jN8I-UA$JH5_6Zw$9bbxZ7@Ld$-hgfxlEw=8r1RaYbk?YpxZU!#E^< z4--53tH|=!s|> zn>VJ>Y{BccuSZQMGK|URc9vMVc&iyhhbB$INcZqf^*7XpX?$6eWLWeMmQte5e{r04 z_8d<4lBsMgR>U>LH9tM0kHAh~RYE2U-dSCI@LH>+A&^mbCX2WUG&+F8M0i3X`2JGr zq#V>6iuR<>Fib_=|nZnUm%tfCTs8STAQP zwsPib*N2P1QQ_c`Hta81tx6<_l=9VgS>^$6SxtmP^Yo?#V1ur_C^~8@;3O7{s;fW) zmM5*bK*33&I*#0^HZHAU{I1djdod_Y9Zy%cN&Lili!d;n^pL zlG-vr`P{Qg*l{DiHAO~Ah#Bw);3-}M>mzZ<`;_<&peXQUQch_pPgn&_8o2H14d^(h zRPd6E@yA)RfT(e_d(EJnvzm-ThnZ!hds^l80coX90jDr{HfpPgKqOfnG z*O^w>vWC5OKCx43GAgJ?fKQVE77#D&C;59i75a(}CfCu2%TU9n`S`C*a z+DR9r$`|{BRDNEI^N}dkX(u|a7V&(sJj5P0Uk^Y=AWM{>Sew>Rn^yq2f%kO1PeHJVkteS4+y06W_9DhCk+_-R&O6CVXN z*A7LIM?H&&SC&@&^nfY4T~rl(H2pRT@Kl>k&`z;-N96)|B$Qi7!1h=iY&u?c*eHKG zc5@1ny&7tVcUl)=9}vR>&ao=--ggH!p7y5zJa|=wTaR=*sJ(keAkzFlb|LwM!+3~f z4tM!d28K&?ZWK- zUZax=Nx?XsU8DxAxRq2=^I$!1R`e3Kak}PQ5r$yuUH}cVb$Bn3Jm;K!TVzAK$1K2| zrW`&^EyRl>0jX~GNZg$_s8)@6^J2Fsa(~${>D)%~M$1WzUGG@_Xokaf1z)?(Oox)# ztUEtr)u7oj+o8=jn@cywq9i$a?*I^m&Dn`)Q~#~?f~_QViUn$LV2n30eChQf{&|Q2 zs30E_J!j0HZukDsARsBl&5v0u&;BklDVb@_$~eGbyJb=8Dzc(lmkSUDs)I1ZR@{@Y zDJiwOvw$!fhih%&$OFoz^1#iTSpCOf+o=A9*I`xf@O-M2cai_KedQI}m7w||J8+mO z2iz_$ZD|%=n-@Ty*Fhj$uoi)W5V#t@rz2I#z8(#G){|{Zy~^H^txCQxtp*E0qq#SR z;XFV$ph)Cpas!gKCVN}+(7kv*cjj3lFY$qRp zcg>5^&AP#!M!(HCn~kGH$W`J9MpUc57BwoYQc7}z9@#Fz~Uh}TVU!F@=9_=^ovPwUL3-BmddtA7gU z_F36*+69yCZ}q~+>EHUAiX&Nhz#8=T29HG>dXyChcpr1&1?OY6OBrIklPpvTv_xOq z;`y*lh=6z~ZP%4l=-@fBZa5U2&t_NR!oGv!L0&w==(T7amgXvbDkzcVrw-yzAdRyL zoI>!tGU5&?0kC+z1Qbxd?K#@JgX^F-Hi(csg13j!zQDGulZgee5hCoynYs3^*PWv< zU2nuv2LvrE=a|HfX*rmZRyH0nybvKLwZu4SLe$iN({)KjzPUy^y^`V(IQ~JxVX?Ms z;X<{9rP0Qg^t#Rtmm5^2y*3O=?bS_G0e?Rd7$So+qcCwhlGt z;d*32Eet^t_G7{H9*F06^>pdO1a^lA>?*7En=ifCC%ph6;itqfh)#2ropxRt(RKvd zo+wG`vMC3kK{6_>+ahAu2yezO)g|w;LRYM+IsT!{aa6*H6T`werM%mQ%wzILsxv%C z(svv>bhG974uGh3&>XN$wBS{deG;1GgRi#uJbLv^)2uPTnN~wqw{RU}=>gVHc*2a^2tNZIP&n zbyCimzoidKw)ejZBkfiV9Q|$^t-TGRAcr;hg1Ksp7aLjun#<-o9!DKfj$07&g=H=| zgX0J#In8`(V+Af$;$~A)Qi-wgG9^;kK*k<22nZkg@9@56ggp0F=A6^Wk~3J-fW zaseq+c3Z1HCyklyx0TL^)kj3YqzjcQfE!S!~0F$!%C%Ualzs{3WOQM78L4DRJPT2HXBs40nnc8s~8kY2)`{lI5 zko<0;ELd18b_E}|g2~=%m?Jo#QO)Uy7jzx1O#Ldk4R2lO+*5qw5 z=|;P%5zj-GE*5*St#NEU9Y1&OcPz*682KqL6p=7KQTJPP=y%Qotf#gGaLd-CqtAmR4xXwSKN+<+KMcJylYBam9y>iey9 zh|LyCPY0ulZeAKk5ZL&oU?k9HCx*5heRB@$7U!QGuzs1~ahy0i0IB#8=fsJAo8VL~ zJoeF+W5;|!O;&ktIB^xq54TZrP*Dp;no=sCJzlDIvr3kjagXeRw}eGfz7L-xfe||4|`|D zKx!Yvw8joL*OR|@I+;e^&EEa3`3SZ|4m)5;ooWEIb0+*{2j19zWRs*pp&e4-jk-C@ z8998c{o&srPLoc(euha#4NUDSR24a$r_-J`1z0moglqd6s#1{z6~dAwQ`uB0JWw90 zL5;iEFW=Bd5o1sd!#`IKcmITmQ%=L-upGmkwYp8*Ea);IG$I z@?Ajy^%pugEjiIF_J84#db`xcpR^w1XANQYw8?7&N?4(?k;uN}45$``g0h<8bC#;+ z-IjQe5+pXv6F$Ofp@?<$N93rF$aYYR#_X(*Sdvc9O%H_-+!Fz)+<>lC7?& zmsb#+PAjo68$x3*K>Pc!_RROF9H$#X-U6%d=^E9MB{K4AFl&0ItG=eT;GNSdi`vDd z=$mKqIDj8`T;8y4U7K@Qn~dS;>t`WjazRYQ(ih2`DEp1oZtY<+g%u`iG7=sRg z80f7vOpPz(T=ioI-U;H{TvDT)1>%H45FB1k(p(e9gkA_DyLD5!cB!)2&o!LKi1j<%i3W}AQrw_C7v zUHEFT&&&F*3R_ir#GF<1xSZY$kPJ_Bil@TYM>LPG`?g|?Cyj)v@hkM1l8LX^Zz7TH3O$E9(gF zxAxy`zRJIKVvzTi;RO61C&^DoE-!u>u@x9b<}AB0fv6C|ZQal&xV4rS98!$e%Cb}i zj%e<56PGSW%l5pa8=EC5@2snrHbXeuyc=3Z!}~^Xu$I=Gk5;>&sE;>Sk2cGA*!~Y; z2GTpc1mm|0j5r7dbaq}uJ$a{&IL(kPyL#gQhdUI^h1K!l$=)#^;j}$Lhf9T62c$+D zIF`uzTX$SsR2X&*m4Zryjen(fP$AXWr3$KtxV@Ms5;A>jAfONd8{MWY9SQ+Q5ELG1 z51T!owz&bD3Fl?a&~@*u*x4!~=&BNxKRN7)2}?>(5ez_~cg4DC5rOr_IBfU1>>BZ_ zm1fw$I#V4FD{LF2nrK_~QSH|X7(zjz5Fwq@s6%QQV@XC8{cYf%HrU!UsSLEvA&00! zt06)J$W6xtVE1%(-4+XSv6r1N(XM9y8v218z#2GqoGNkh)pS9<^!9Q$SdqE4`*qZo z#~`@h>%y1=WmgCf$YxQ+lJp9&Qr>1PO8_DY8Yk;z>dS}!o zzB|OTdHDnh1zm^R%6zk@#3;$rUtOK*ZfkFOkqHXyG9qc$=*v-G(9T zAlY_;YG|&zMHMTD(+?Fd2P9>ssXdww?bEs7>*q2BVy~O{G;r_0*kuU`YCk&2 z3xb+ANS%|oiC9OHg;4M?nRjI=SyzqZ$Plp3C=sB><|rqg2e1j;N}L+i(bc$`2Xq*9 zaJ<_24D1}i8r^)tpgXW0~CUJ8z`%>a$HZN=O)ix?15T%RA{fV55ea za@yPIxNH+tvgl<&UZ~x0Ohd&f;%eX*IriK+kAzVcpe^X-;B;KGwNAh{b+L~qC<1~f z;9IqI1KPF9^f{_nk~vYjQeSWfWzZ})Bpvnap0&E6Fvgf#piZJv(f>By=5*k!@zL2u z!nb#v+Pe+=>H4a&5Q_#ek5>q=azMc<6Fc4;K|ShgA3bhaTFwuY{Q z#J{x)pptD@{!4)+3y>E3hG6(0y>G&;9j?qa1NCuoY;iuVBwbcutq|%q)$MWz#D)t> z#nxX_|Jf3vGyR9@(F@?}WiJO`S#!&8Weq1dhptNNxV?%Dty)s8k)0Q5b8?JTJ(o7(vt)sa_D-Q@a{Z zt9j|rY}%?@1%AzH7yFt_+Z-CI4l|bGjpdXdsU)bVYTs2h-dK{$i9yyI^RBey7;kg{{#v4f#HKmO8K z2e?h}AhGoo&2(u{{kGWo(HtbRx|ifa{8nd57ULx4?a3Ct?t~4XFKj+SDogqsOvKv& z+`}---kL>ocB9(w&>y9a573vlHI>aUmF$8u&szhj3*N2Bzq6s_=IlfcWL=YjB2QxX zY1ZUbrc(E24wW@*t!-|{npaCAa9C?`4#cT6EJwEW1d@Z;MQ`JE;PpagwbR(iBs+r1 zd!C_Gw)Bw-ZGbiDJ3*tcHA&QVuLu*hU3O{#K>|E%a$OW-! z!{G=ZLEn}EKqhdr+7Voq$Xo1k%Ba!m^zPZ&@4Fg0Y#Wc3lB*>&aA$+;LRwD_Zp)i< zr>c!iCjfcnTkSUG-6gW0RBzx9oZZr#9xj_#l!RL-zqh-m*7K1JRI-<+Yi^1lqFTVN z0A5LVv~#6HkCdm_ZA5`W7U#$bdk)SRRrreCxgW6zuf(oio8(kHXwD(4%C3TrQ>mv? zrq1cTNXc;WbdtW6t+PYR96=@|Q-hII1gOx5lJ`NLu4HB>h52UqfPJG^S?%Pz3PGHg z5La6as8g$5Wy4P3Sd~fw2344~<|%O?BFyX5QzzTUcOA`b*VnL(rB8MuWKAE>0YtJ> zP@8vWQ^3Q7&aTuS*|V&y#PZmt;-KtC$exbVJ8-#)(TW$W3IgcZX3vK+G>(YFUce5g zv&=*vf0WEsn}k&czm`m5fHUbpcMxn(#mt(=Skt%UK(hYFEEWMl?L`)T+W)s^;_Rnu zGsoQ;&zE_~))IF&p%}Anw+1h(GI|QmHdQZ&ItvT5r)ZR`FLU z>243HSHyEUU8U9CQIu@#;iZ_80gtZORrlqSo^=k+FaS+|PE`g$7raL`0MFvY$;OFK zOCyMgx(FR8RFxwz_Hh8uNO?D>zeP~yEk=c%cpK#UdC|3lM6-9{pk8~1`D4-U#?#JX zkU8P>^6p)KMW;%qcAz9J<+L2EVe)dv zecer6N98>aCtR8n<@ZVA1}es5{r^Ouap2tM-@C(Ztsg1=sJfa~7SS#--bT+F;@;8O zk33b+C9@reavZzL0qjF(PIqs2mI5RDm830|sdi~KhvF@VS!8p@Ia?Tj5-bgsu0O4| z2Bhn7Lbf>yhb_s)j*~8IuCRpWbllM#xa*b=thO|#3ojOWFKZH-moprh8UPt5_11W= z0_dD1Q!CUI@{ois{OMbP0+ro(KHZ!)wn+8APYn*UaaMSGIeYmhtSi5L)AlH z-ZtzOW~*v|T8#stIZCxG1ihS;_ue&fUn3@@X)8|N!P#)KugP6!2O)R*F`p`QXg;tl z6Ewa+IcAM2B~34NFJgcuLbfJ>fSkRDD%`8FQ$3E%UxOP;>D`XWX5FMr>QOd}Dc0Cl zHx9qqa;FMiUZRUi^Qq0O)AaRHlz^6;K=!wYqo$k?fmVeg6QrKuEv# zT;6ti+PRWzR)CDN=@hQ^x(bkyMyvNxZcMNiM2zF^0OF;ARAW2pv$U(rOZ;4;rngtF z{)iV{nSF^LsL`=+E5PqS@Cli@ZH-{t*#1Pqy}ef?7Kf`=-mkVO)_do^E?r1zY^W49 zozOIveUR+bT*j=c)hvxk*7CAI%;M;WPK`?3_PW|{Pn#WdKb;CRM-mJez~*J*dvcTw zq{nv?XN~nv>xnt8O95^>z_)+vMztRl?KOicH`uepmx9W14PZ&?&Tu$^$G z1lc63K})9-%(jUGK3dL8`jDMmqd%P(Y-r+NlgMq^aOyCs`w69VwU6d~(6z>cZO!%q zH0rq04M^AF4fhTRy&+sS6j?~-Rj1RtL@$)5+OA&rD+8bq3pC9B)#NpfsFTy;i@5C} zA;rMc`k@J+1x-!p3B#5Pp#IuPTUp<{{&qN;pQD;3Xem|aIaxqnn!;X5aHG1Q!)*E= ztL>M~AG@uSI?@zHQq&m+qU5E7JgV;T{zCHEt-s^RK2c3+5|}PBblALh;SaS9~pv9F@!JEmJeK_UZ zHE;2{@l`a6&conrY#s#8LDQhA{Mw z;1Sre>7^B0`bl4umVhVUT zC+DbkjpWm1ZQnkB($lec_Vl`b|V=Wdm7l^GZWon)8MmRIS12L{G$rR2Ko z!(GFJdMR2)xE#n`1Df7ES&g;LzjGFsnjL6KNg%Kif2OO7D(cR5!jT(Wy+vwvj)I-L z{fhQV?O9MSZql&cduRx6(JC5P1}I927H z&`Y~=oZ35h&2?M@T0mM1vjeSR0k@@#HSa@sAjA;;vTbhB_Ix5oC9VpKHP40P!mDP*rvGN!^#)X1 z-++$s|F7D5zJbI0?oGJDya8>QHz2Y82BehVfVlV@&@p}k?vign>;4TW{=Wf1={Mj6 z@&+v2-hk8S8}M6w3udR!cMf|4k|u9pQ2PxC$G!oFpf_M}`3B@|-hk`u8!$nB1ID*+ zK-lFC$XL7qHRm^=WBdjLpWcA%)f@2Gd;|8sZ$QoY4S4Cj0p+bXAc6J-4i0~WGu6+YK#@%akl~9UR*W+SY zA$W(UT9Kk)aj~mBv3dV-DDjdUB$J$xkD4us`hpWwy~!p;oC-Gac(z(3^%thxn#jX) zTM)NEK`!7Fu}hYhUiTwrfC~aTii1|Xf*6{Uvi$93xaIVM(#44nU2lssQnWa?7iei> za*zlqTN>cX<_O`wPqsfV6ntjMJ}ct^)&*-gRif_5t`Wq$Hz6YY1_Y(wfL`evkjZ=l zR!wifr05M;HN62lKiJx8H)xturgiI{0K)w5%qAmKtCB#ryqg1X-K@Z3nlY|9_vwL) zYMN{}2vHV1K=7@cqH%FY2r?IWxKaD2c*_7ojqUjmUF6!+e41r3&19C73@ zJ6~8F^3D7pubwP&=pa~m-GrUoG;-oV!@7a&x0;IzWjV!~x4lD;gC?stq0Is7vVjTr zX>*FAA@;Ud3LjpNnR0GZ$HjMM>1%VI0Khoo()_d#Xajn;#leZ|yQ<)Gnm~qygfN|I z%c_GoXQseV%(?~+PB4MMR?X894|%=tZQ(0cx!xTYX!2H`7{6OEJq{b;PL;Zn74oRagMAxT!6JL~ zUYUl--j{B`8!)(h0}jM*!Qk@wCdhBVu<8xC$Qg;_CedN1LJT%%_Em=CEbQs=KKQrt_R1yy)X>dv)phw>&j(G!5adkc~5=(tPM=AB^D ziFurhqMkFy!;6Nr3czo`UGfdsc0rUtsmgLTHZxSTI2@4(A&TKD^LpA}0iA(EIL<>t z@U3h1#Pc4Rtz&_=C~$G^Te{Ri0ocsM{#@;8(-xwU?S5n7lsrA{Y~@I|mS1!OasuD2&7I2G);Rc{y(?EDqP?tQ^YT>q*(Zn(%5)QtIn0Z=657TZ=!lNK4JX^( zquwTy&W>XZ&T)1w+n>nX@7{!G)?4sHdA=)5QO%p!DCgYOVIly5Kz8uhtTKGS6o@-G zl3@iJ5>5D2z)|!9B({$Nj5{?l-XRlKijHeZ_#WCf>}-7RE7hRY<$L6ywysCTZuo%ZG2L=8P1oSaZM z7yziKTQ!_88d^3<$K5mgWG!VkR{pnyr2rP4GpLbhA(=q&G9c!7XS_!SjZAUnsWj@s z5bWin)B#&*OLIc)nS8^WIf48d_BKG>%l7-~4qUHt*J!Yi=!FACm(j@RoPUorikO5&pg$9@P@6J zMYKKOT&jD{-i=y4baR(n)2ck@YbblUzk3t*zp4(fY9~>1s1Kn6B%zpqrqcyse>g!= zPE{Z6;e~;+S*3xys3JGr8K%v`92qZN24|vQ&JnXyK>9qs`<5LFgtRKj5+>F9Au2GA zbs~1Vs;_mNV};xYz=7?z62lIMIN0%OZ_AZ|4OJl$0#LKSKdi|Y1HThnFM6dSwMYu6r2~w^RE~i6hYTk%N3{v-M-{art8La;?Pkd!esH zud+r;tVu|-fnkb+aWJ|DVKG@0ZHXLkA^}0Bi>`TBVfRp87TXK}FCE+HnhAu~Qi}Slc_fuIKxSX9=<)43f_fJ26{rqLz z|I7HffBEo}bHM+_wXvRlD;rHpvrQ3hc6iZ#+Jy#^;d?KASehyqc7lY}dCJ4GXZn7c zx2&{p_U;ayGC(Xg`q?>9wLB|8-g8}^o?b_QmUTlT5+tzk=Xd}9!#zHI{a@?PfAGu< z%gD)cH+0Ht@T96Je}mIHECX83fD})4+4{Cb&p^7zxdyYPw0gIYi-s;u0vD1U35IZy z4(}s@1p>!#L|wp=sM5hvClg>Q?|%1l|NPT<_xFGJ@a6N*fBO0B`0?j=fAy*UINtr^ z=P&mkK7an>`=9SWzW;AOzx&7gFDv=&;h(*h?|%2Ce)@rj|JTo7{`m7x9IXHR`~Ty2 ztLK=gT@JS7;S@&In&a5FRW$+T!^NUEiCP|5+Ki6&fFfIc85=AdupLlg|E_lumNTr< zs}5J35+JM0r9_rb`<%i#o%ZvBfvCiSJiKIuQ_051rutIU)5gL5wk#xgNTS!NP(Nsj zwNk}?vjLdDGS&Cv2rLzPXm(!A8;+iI8gaPM={>@>CQ3>fnwgbktguyel}Jk|Uw?kd zfAgvS^x^%NKfmDrp@01F%3FQ*;{D~Ve){Rh|NOsgzmMnd(|W6*RXA!Ua)ArHD$-Bq zR*<2~Wq18RR9-pS zwpw+wCPh03v|0j%mFbC-Pj(A<_7403f&g)ue{V;umsVl};L*3Y8vgt?>%Y`j-sZCx z?ay!X@7CKqejk4y*UJQRr*+}(jEs1a#POnb)j-4`?WuOz<-l;1rfj<|cJOsY&WU8U zcnzx=dk)Wu3GA$ zFc4pVDsSrTU`e(vB(Iix0ZDA$leT>opZ0v|(#9eshxoF!2d9ix`BIAuZp(WQHwoPO z6l^AzTi2$kJRu|a)*1k0LuptTv z-V|B67yZ%NiDiFyrwxiXdmY4;ZH?!JS^x_gF*WCy8*<#CKEn@&l zocg;LMk-;qH9&7D1;iB^2ToSGOs^*?_`1D(1+L}ONfaXD<2(J`dZ(|Y(I+q487fW{ zBGus@!8y;;tGx|lIkZOW&Tu2IP==Cu;o)`i3lIB!A(p#$1Mo2->b*@>-kU1BrOuq4 zJdBWx8dS#Kmj9N;pyq5?3Az`-EP~_jS&KVegfiUcs7|D@6S|sI%}Gyd8(JuA>wfUz zb^d+*^z(=JKY#tx$MG6AdiLV|`lX(n(Qk2=PlT1;Ygg<$M0Kv-;oO&!DD*S(FCCwf ze8{AghOnJ`tFAU%>~d05y_>fZI+KUO1W%~D!;CrM|J34 zTH77yKZ*l}P^h#!C%38<3Lez(_)>pYzkK=OUtSBjPhPfPzs~sk@a>E`EHS5Al-=8U zb{Akfd-DR{+xU?;2omzHL7l_g3iEioq_TpCKPmNOFRv)w3nPbfiTgXi=FI0|MQ2N^ zyMMp*;!2aBdc#!gV#|-O(>vIFOr3srC|uEg>+<3hE(465gC*kMk96oOlpyO(PiVWC zhvSs@p|U(UzmCPDyB-!n#oX-FKqz+i>e-mjG^_rAUKDUDuDFCQ9$x2P^EyAwKfUrk zpS^CsexHf=`I162v?=ywA6$cipTwsdM0PYog`iCFh)coOpcT)sqgy4?ZR3l=UG`h! zMExUJcl!)f`<)6B@o95c-CollaJqE?+2`J1CV7?}s<1u0PcWaYyxI#kc!nw{ftT8~ z?9gHXKJR62g|69RT5i~f4YgI>)uiu;?$Gdpy4vrzzMamv>(|wL)~Zj#*y4|v$~QZt zy(ap=Cidz+yw88%>&K5jfB5=p#C`VC{rZ*ee|e?VbFkZi7_Aq!uG{jSER)U6I=eR6 zB>hrNU7PGF3>)FH?xt3C92hQ1F%sb2sk(mMLj}6Wwg-omI6{Zb(}hI9VL5cB3oNNA z|B<%9H+RKglL{R7*6em1Hbn0Z2yU!URijE(dXkk?M8$rHiJEmnL5I4vw7#Ki(|k6T zIq7srBk$~fVqG+4I^UuvHv5MIt)-({SP!rCuX_9Z<+TI)(t>K7c8lINBzjL^2Y*Y05Ym?|pmW1@^YY^_GyiL^;4f;b?@^Otrxz~;r=auwR0+jBD2 zJC8NheRRFPIc3^fJ5_1#^5rZr`R~p|Cs5t~m_O|-9I6Z@DEP*yDQ&x;p=u%TPEv2f zev8vS!>B3b&Qp0Obhg=!G#t~j7Y(Wt4^8B|Zm12?(`@QQvq!V>zr%sGK@goWC zC-10uCu}<=KjX~G`GHy$0(AOxC%8EXe?*VeF&#LNZEMD$E}5!L0)05_>Qi7NDF3Hd zk5|Zw%xFf&&*l94K2+vC+NEUVBMJTM{)b;a{qcU~eLj2Le*HcP{u(m$k{QSxbefGjV z9?cvKqu-g@zAJ z*-3d?!B^#ixkMIAbet8Y)K6?efC!;S%btwG-Iahz3Xvf~sG))u8sHkaIw`bE+ zuM^H9%gIOcnOYd=cg(@+3aZ*pkZoz0aoAof>|SCww{xB~E(2MWVMl^)?}rLPMX9sL zWUBr#xTqX?+ouJd9UVVhfQE{ib`*1KA_zD z@|UT5bl&j1yz?U_Zdz+)+gq!*o+{ru4sbp4(!BGlqboo3qT%-)s(6M?uMT*F>Pf0a zY$F`{R2BU;SetE59oY`$(7e6acLHME9c8oOYRR47TUU*Q9RfKbKs&sq6%vSAtw)7$ z9uMt5^p79jfBo{yr(VB~*ADEHSMML^UR9?1Gt_{mAqo%*{Q zHK6a2b(Zbq(x$@dt*yQARlU<7fA_l6t_}N<$d|gE^IZ4lbM9IS&t-ZKKfNLkqtg3! zsSDtEnl0)>yXsJse(vzgkaH)9mjNxXQs8b;FUfMKzB+X}n2fuKd?d|f{Q*iU{o#e1X z)w-HVyQTG8ClaODb}KiJH9_5nOM-)6S{*uny6rD+Q(mTNq?X97_PZVW5sVJWn)}0mk@-ns-7E}#bU@A!)^7k@8%1^T6K>J}etHMnj&=;7%`0!T$r~diJA3uL0 z$$tIA`=7py`QhJQi^ES|!{4e8PW>5o1z{9rsT+}FsG^dVOHu?Xg7gT5)qxZHCz`j9 zUc}q`Ehe{E6%~H9bt*@Ps@G^iR@CI2OWZY1txwNr^Y*1nL{?=2bn$p%p(CAGIvfSC zNp5=WuhSF1U40wS|M2=_T1+^NqYf6Tou=mdZ7VQQ_E6$!<7E}n@P3{JMo4H3iM7!d zXU!q?$*}>H|ZB5Ud zA}ZR%M{Tz1vUWDAkgIRzg+BBzQAD;BFmN)WzY=oJ5YR({&YM# zq9mfKxf#`W)<=-D+(X!{@=aa`$YUN`gg@*#T>IpV45Ko^Pv3Ol^L6GK>>A(o{Z?r6 z-uK(N#!b6~pgJbUW{JteOKN*87~Z4(^22M%^~uZjm|WAhv#Js<=p&uiitDf}^(`dA zNADRrMhX~Or`)~U8?-f+E|TlL0iKsiJ*u)DL(32X9t4pg%^@B4|olEOffmtxMleK zR?YdATVhQo-`u^)JadH=kj1VW+_6-9<~SUMO!n2AiVq;pW5ICz_~Gl<@#VEEw`Z^1 zZ?V>BmeG6gbVe=1C-gWjWCDmd2Hys`}+DV!U`|J;_#*(#qzIfk`AWOg#{!c={rq4}^ZbooJCk(a;k)5VL+PYK05~`( z;c<04$dxHLGeq9u(N4f>j-_={tfnjH*$7x1URIv>E_4n$kZSuqrgq+4!!#{{kH@yM zznLF?_~py17jDm9xbM^H3r31S2`KQPG1Qd+g^7Kwy2x_bQw|2eJ)O+b$Y22EjuUQp z3@xvAm7Kk6sDp^F-ln?DaUL83oiDx6yh#DUyX%brQWqR&cPZ~aoNSnp2|2gf!!uH2U}KY!QiIEj|?Yn#NGAch+K z5XZg6%(wm?{0Q0O!Q!3iv10hwKYaY$+G_{&+3WV}#?L5C{T6fi)n2=T#p9Xop!`7d zFSerHI%PMJher}G;r=meULD)wht@rgUZ%TYPtiyGFq?(gc$lHq1k{0qz@@xPAU z$*8X8mkNL0`aZVvmc7~H>GPNIzWwPv@w5K& z@zuK0lb7(Zy8q`2M7-6v)`X9)qwKSW7Eo0 zRoSVzJZmTa0M}{KtE2h}oobvvT~Qaix}CpxWPOAC>(lFW_$-)nWr>KF{+Crn6m7AHA_0RCV48Xvp4aQ@N1m2CNMnka+_o)N@=TzZo1G+iul?Ol)G!c4yTKyi`JOGilDb zh0W1>vUNT+AJo{o1D3{PweatJv0py__~GZ*3QEsjyWgq+_X}*omz=D?QBA{rjdRC( z?GEph464)4-uS2KPG>XPYeKNG&hAyw;iZF0f0r`f&TX;z`Ef%|d6uj+k}788#iZB4 zxULsLo+~`o9EKwWT6t)K14ym6Z~5G{o%X&w_Z-$ZIlEh}Vgi+-3=rF?QSolii+%zu z8b>?wCQlz+gQQ@6Y3Lb{RKltwc@?65G>fUumkynel;+3!wf|wf7JZ++aKCj(H!TK2 z(d1YeeAAUCPG{FmNzW$^J&URE)UgDaS#dEX8Kj<0PT$cX_f?2%H=9T4TjzA#zv^<^ zVl+vFnl}=ASZ4cz>2w(Z~;UupCP`z9$AeQNL^n37m z>ZSOBvrqe2vW|QX=_&#`2M8)Vr|vmf9bkF$p_&FlUZH3*0?+9AarEiO@#8Bm^Vy5` z>z8@`rDr>6?-R?mbg%eZd9{;kU!bAk4q;d&uFY;9721YU(W<%DzA9q7hN8;5XjRM6 z$eFmm<*q{DU5YL5Uhc91mnX($_5IW`(9&f-9vdJWk~li_T79KunsfSsu6`ijqcU@4-CY%ClO^woIzTPj^#k7hj1HptQN%W*U!N ztA;qIcOE$kKfwWeoOKU9M3VM&y7N-x|6E2C1P*Oy0CkDqF;z{f_hYT0LNVvDECl-4 zp=?3JQu~-8tV)Y(7Yg`SfHIu7y4C;=B9-E*2h7JSt+6RM4Vo$>Rx|1m^sE`W%sY3! z+ivNM{-pv7l>XMya3k(LmhS)Nr}yJuc)C}6Sf0CZ-$&Z`?Jh=nfm-;Lb&J|IgsW8k zLbQ#h+xAZaV-Ie78F1vYsH&wLPncaTkWE2XGK9YB9jS(YLX%Z^xEYZ3*VH z1PiaM&A!)uk#WheoZqU8l(WNxF&3tsJU)EkATC!M4B`9V&9MFS{>S>$tG6%DUAD*9 zdHi{vLU|Hxkdp3{#DGHsssIL)pS5YLn<5`du4~kL5G5KZnteWR!nnFXjnH_Xw^s%# znmMVjN<+$o2(J|EP*7~k@$S}?aUh6x^=A5GaW@p=7QYxe0eDap!tT$Ym7G11UOmC^ zRCtT}JX+`F1 z=P7>r&_6FU^x8bdlb7x>JXQl$-~$H5 zad-o!X$&a{NLrh-vR;FGhemWvLm98G>Jd>lX0=B_D0&$M@T9GnMmeoDlttUNGpHV@ zR<0_^n&K+$&sPK;59JvuI6c-De){7N@B8OZ^R?Q-lUMGy=!z-cnr&?+P0mSO&_t^!S=dn+N43GfM}jm~;5gl;J%$^IY9D%*85GnP%^`Epawc2W_FuC@k9tS|9 zX(Og9jN4`~$F@({ygrEVC@4QK0tlj(cYnMgJ%eZL_TZ5RV{Nup@(nP=c88#%;23<0 zwICx;a=11vdEY?RB8<)h@}aSceiXH7j$w5rbC7J>QDSnc4^t$(24Ns+kT8pg0&dd4OdCp)T<1H&AP=PAb*3))9G8T1bRn+A3 zlsc;+ILoyS{RoD$v^L}KO6!nPr^UV6pa|RU>xb6g-naGL@2u^`ws2Y1AImE|=6dU) zQ|+M4^HQj*s(Du2M@lU}b{%~gKY#xCFXMgx*Vh_Tp1pX#)k;<_pF$fJhu&DQ%&uyx z3tBv>tDXUv=#{LaWEb2#0r$Hl>0?X#zKa@XSq`K`l3w@?8oNdK!%|Vd_0{6<0mRvr zWe4Y#W|M-QT#u7%#bJfOPTZ8qbk&pU)mv$u-Q0$QFvTm#bd|FOjUi%I8hl=hXhKSM z0$$ns?fjee7&8Nnf{X678J~HB8oS<%MLlwGa8Nya-&!~yi$s6_^Viz{`2Lr#A3nZz zQlGte-%rb&FSUikF9(Qhz$>!PlGxW&ci4B)PKUL|HB%^ja8R&QBT}d!`N)>k%t{kx zyd3EJwT!TKB@FDZ)l-|7qTMdoZr9wTDj=-SW+H3oiSUSbn^J>aE7jx)04Uik=P>>N z7g>uvLAGJJ-kzGKJB$ejjW-k~rwliVBPd)IlZMr5VZu18N;9OWo=;NTEKr>h!>Mk| z=)y?NPxA42pZ0fNr2X_><%ZX43{PIWU%%7*7fK4a2RmK_G;sXJu0GWi1WQ1i^s-@- zb4rpDsN2#L%}Tkns*I>!XLWkjFjPcX&eKN$2Y64gr6s13_u{oJI5dgG)prEw@qa;5 z!qpxx(^Q@UdPL_-BWLayaTYHf?=V$bDOph}aKf?c%W>VXPjcsNHgsB1ar)Tp*)A7c zuN2O!LQv=2AO`$U4U?jN@|Ra@Q+=GE0f|~~*Y()X@V7tz^3(Y8^;K5-?3MdI^uD}N z_8EV}CVov=fQfSl$ep8Wm+4(U5#08lMwpis)E(f-|Cze7sml&#`F~Coh?^JGZ8zN6 zq}st~+Fjj{{EMI?@Hw=t1%whg5?SH9A>s%RSbB#F#N3W)ZkGMp5uKMHRUJC_h9lZ0 zo52et)UI8HLnE6qen}-F^3Zb6BgJMNRYjIryc?T!#E<0uPK9bTsx;zu@xP}HSU)47kjXzqO&Sela(MH#RhevE5J5`hO&Ber^8}A zDfrVr%@6EhO}KtP`t+|~K71YT=ZBBuef|3R#}EBA-MJ?(;crz0?Ooc;Q2O-rK6Is5 zG_)L~>su8O2sFRH-}}BC+{XzbD@u>oGjC*oS=7zgojW=EX&Xu8feQRv-Drhwh&xJW zJL;QZJ&>dpBj-)=TnRQANlTj`td&}8L%9RFJEy}=Hap4@Vh_NFF(9mv48Ti zJ#>@h-{(I|=492GRgR6vnnh@n{S7xzGa%`drpGkTt-5PIwR^A7uPqdN7PpHfx_8(g z*jvHHrba`IY$M+Jay^SAR}zG>0mLdb5j~h zc`I$S`(x=o z9BkUI_%OdDHNF{GqdgZ9c;`!rz~m=?@J5tQ+9ic+IVrIjvU3$Gu5Wt!6b`7ji{#n} zThu#QZ)aOQog&V=@YAWns1+u#n2`M_wDPw<)h|Df*Xs_?Ub)}Os*1m;648&L@6~`y zR86u7Mr3=-SD@~iHt^hOX<0p(QpD_|!#I?_)WYYwDkaub)AQ1;+vjF9N{5n z9~W;Js(ER2XqZ)KMIm)SCZ~J1i~6p|uJ7n}7{K-4I(yVQ;Mg8#C;r2a6)y9`c)tdV zU+rgj_5yxCPW(;E)$^`O;%T?=tq6A6bm@Xa@Q;*aN>@JtFMBALRjfI$bfuB|CQMMWoqVYT%nYKi2RM z4_4xQo*O^G=r*;~mAbbI3n-fyYFD~yuiIwl=I$&}l(P`Bl-(WBy#40my*9NO33k+M zkxqwd@%IQ|7^0+-Xi4!wPQPO+uTYxb^^YHZd9CK~>}C7D;`!`bpQ4mD-RD(Jm zgiXb4uW_@9!I}Kr@3cQJFFTG?Gr~;)?PDnWbXvd8i z2?X%s&^7f6n=0b`Tdl8%(uZ=f~;&aR9Z-tp^|=1yr7`C7)o@O}UawoyB0Q`0{m%TJ?G3 z9CIkjnulxhXEMB!17vsnp#ttkXk*tY%&GB7`>uwchHa9t)RRC9Ptz1WR{eezT)j)J zn(!($1_-YDWgWJ+`t#ZUdm zxa4Cl{b784ue#v)vS{jS{Pf8S_uX-lAffjai-d-2nGkbLqQyKDp9=9q| znAMAI-LjpjM;?%rbJQD5gVSv_trGeh=S$BwMZtw~`(;B=G8yuTQ_X^*tmAl;=FrUS zV!KxbpN3YUYP0qfL`|VU_@D(R(J0*Ugv9R4s5R%L5DSD*|4?mwOC7cu4$T0w>V0I^ z=o8->p(;rit_@ZQ8ww5dwUhEjo{vZMpT3O${g)44hV`V;d7H0IK0SL0zwa)4IkWov z!qw76?gIE%Z8gE4Wdn?`NnlFlu3Gxp0z2BJg)}=(d(N)#GYpVry}TjQWO{j_Y5uJ` zcwQ2!u*#+!AR(l?)G)~uy-3@){$2OVae*Q88qYsc$rW&!EyUl)33Et-*CU0g3nv(k;->PoU;EY_t z-0tPSd&k>;*`ybD?$^?K(_$Uk3SZ|{gG+dPzM%tV^SX514m-Q<19*DJ+5G)sYJ{xi zA9=b4_WZ52B_WOE1!5scoZEK-Sbz1WSY89Z&tA3f%Y!fBcj<@2+|*~+34CZ=R=xfh zfa%Rse|l2dek<*Kk?h%Nd^&7wvl-!#C=vLwLpth-K z1DEolP((AwOz%XTj$$$O=}SrdFLHNrNLJYsjai{f92LFjG)V#0sCx`%$a*JUHCaFb zwFASWE>7^qS=Oj8A@JU{^}2My(h_;^k9?+#CE8aVL~zPIR-&iYt!3w@Cl%mfquIO| zjvSNWYA&UN$k+2bK(x@6yAg9)UJgXwwWkblo!mJ1oRd@a)k_FK#9;CD$$8lc$0;6ABV0A7hB>Atm zD(t1&L9JvZsX~GGW2zt1LkFN-viAfwyOJJStGEifBp|j+w@hbKjwPrWbQGO~4S6f# z`rUO+C-Z2z(Y;$K#7i*}p$nQ`a?_S?_H|3683oywW72eA9tWQv@5J9rY;R54_8J^u zbguL8s$gjEYEKOLuJklc1Kx7Pjl)`F{7(4lZ|kQ&{Z?1#vsdm{Z}k6^-h3OXfD`ZP z`2=+b2=rPEdhvA=BlLVf*kNh1yOT<)b|dRqxank*;2-&z6(Z4=vV>0M$EKIDPDqE% zj_g?iBY!haz2?)=wACrf#GP=`#|yaTM$MzQZc`3GFK8oAY=w=qdv!q13u0f#fD}ZD z!KF(jVXL=`_0yAwXPpXWkoS0=izw*SP43BZu^u$`Tw8@FGODf4Vd?3#f9N~e*Y*YE z^6E9slh^I>eg4JR;DAq^Cm>;JqgU5H)g5kgM!9Jl4E6$j$7+W$$TAhe)|~G4doCRe z(7LUQWw&3CM4*rQrZ(8INP}2ZkNeYl8IRZ;1mS31HOI#hw#Wn9^l2A%*F*RJrtZyp zEK9B|JwT{Rl2ufxS}LGl8_=^?+dK%3hW?3QW2TcHgJK|=g+~8&tc@)& zlQ~3q+pG62+rbj>u)t&3tcJJuRCaR;pPIWPI1@2PTCOMT zlY&4(;!(N6w#30x3CdDJ-fp#q?u$({_@K?{g%Ml{$BYAoRBFk<@6;Xyn1EI{2QG{I zL^1Undp^CT(B($hfc|OQQ;!E5c`7l@2sLue$wi0ouOhDEst=$js-lzk&I9@*g~kA3I)!%wn_au?f-~&2Vm-cPtBtT@7H@d{t}x5 zdP{+W6YCMkRn`gCaqX!DM_$SX*K4tDt8k#ms3vYIaHVhF z2!8c~a;NjoW5kAnx+ttLNkgAJ(k?b4v{cm@ea2Y3b6hFhX{}(7Nua(|d2Ser48u0k((J?LIjjDTB<0sTWX+`j}fN_ zkR<#{m8XL>PWxQ=`^fEPQBaBw^U?yk9#8yE^U8j`SH<+;f&2A@hJP1u*4TKoVWx6~ z&A1yQIOAzeLIlQHEO|&_f}KP(+bKtj}{(gIRL$B49Aihw+RvjXlhTBit)j-R)*)feAg z6%NG?yl!e1R#(LHSSVvEToMXihUSF;Q5TS*tJYIqeW* z<42F&HJSSF0y`qc3UdlX2$feVcGpu)T7h$P zjcVM=xfn-AT^vyqQ#0Up^`|GKAt$3ur*Rht9eviIcg|NGmfwUbz@x|P`&|Bkxpcqa z-QE#_R=(9gTfoi70mg$~lh$^{s6k)AS>5``uIHipW-D^(+xkE*Fm|zV3aoq-lvIr8 zCb}aF$GI2j%Q*VFw0k;DBNQ)aeF~Gu+YVLZTidP(B?iT#IqdOZUy4XO33c?QWP|j^ zpbb}_jme#}-BMV#ndY?cQqlzWEe45@$>~8$4$P^o?jpK03+rwSnkJGTcq3|)m@D4> z-Jd=m6NGz*OAj8nU!Mm1f3@F5eA`gAN+Hpyu~wmB*KRV;u3{6MLy8W@=@q&#ohw;G zJTZ|NCO{4CIrRv};~AOq4yV`5_$*{&Y%l@c?2S^4 zxK|`?7-zNAU;TE(Fn8AAAt|S4brsk%goL%RkXu;iR!abcXGc+KdR+Uq7$-8E3R$8D z+h&hX7iU;jWCJg*pvOm{p~Z4jGx~XbdVU2)Z`O=HcmUt(t>OCJ?9Bn>2*^n3i>Euy z3d-O+4i3yS^~(BE^rKw?C~D($kt*UtLD^oREGo9>bCg^3{7Poa#8@jkYr;#!%Hawf z`02$raH=c)rf&bYb;J7T(Yw82eMLup8dM^TX{gGY=$&wxO)o5KRioK3KQ} zq)P@8q{{Pxn!9O{32_UIj}j0wni%zTY`D78hp||36jbB)K;aRke=rKA&*Ye^T+(l< z3+~ZlcQr2lzEg)5xrU*N++wm*kJC%W5EuiFopTGzF*c~Z&4}cQ;HI`tMrjvN!G)ku zd=gzp;}YGfMvb-}Rf(@+0qSXt<^aKLdi{q;o2Rkf++5l8jw&7IUh$}^=<_!wv58{B zdUS0E8+D8C;s2pk-lHNQcVH9MRgX}lnYP7%U7m8RxQ-QRs1)}{z{#nypJ-zr1!sti zwn&azLD%Z;Km7Gmdvi)3J#@Fh_nY`@Llt?lF@mCdPIb9+?LJ#VpHVqFia2Q5OgCt? z6WbdOG0)i*7Bi+QRN5&14`uc#z=~p?uw7Cj?9k*WHhJ1*oVY@76*-)`IxeT~H-Fsl z=<$22Y~N78m~mv`KtuR)k8{uGY~5N~T`&SEwhcVWLPOk-mAbS!DpT{{43K$X9yeoLY|j~=?)3-j>JDM|_3 zx~z8{+0Dishp4?%@}XB?W+5~`TU*FEDmSE273AmUNKi zriwD6NZ+zx3XN)AQ3Vr*xLwfF^hN>mdeo~7YD15``l1(09)|~|%AzH@FiFjY%HV+! zWfjI<;_9w-@5E*G+ji#-++9g@e!Ed=439$8W<^R8 zu0@95&hOXXzAS~{5AW}h)khEETeT2ETSE0~bF3^PwTHK-q}W={EusLr2FcmEJoU8` zM7s&RQ|(;2{^lMM8(8fKaSV>H_1HaY^=f)BTvPD66$}0C zoZ>%v;BH$nUXhYF)Ai}wu&1wVP52S>FPnm# zAu9>c8LI6-CqjVq3rjBgiRnr+9L&Z@wRY)ve;Y%z64|^F-|kuD^O(dobp3qy`g|N8 zwvv)#`D66$Ml8yQDB@D!qBympRu|{CDs2{Q#uA4#0 z@o}EzU`RXuihlR=%gfX2$lXD|4<5TWH6Vt7q+T`PGCI%*FR_U7a>FO=942@B@pPDl zh{G@L$lqF@%?cLK>>@nhvHRG|a#ySnI`EDW78IVxyG+>(nr5y3#1JPMRohFa8ztxbgp^1;{4~&G5!mz^BumYaW;PkAg z!K>2Xh-OjHZw-5kh7qx1XEyjz7qRsfv1j3ZutCi9j*Gagj0&lCVZlLH!$sp;x702g z0CL#LO^uYoH&yc2Z3>rpEiAlSHu~7Hdy}N5Q+|h=xgx!>4U`i6;<#cI7f_-lAL}8v zxS&;dz?48c--N~gmA>_p)KV9Hsi7IKMlGYwxj5=48h$-`Mfp9Q>klnwzp1Rt6DgjG>E%5%wGpC=w{QPpayztS3_h!4Qcza7|hq;h#ZdxeZR3&`T*6Gg8XY*tB zdt`5V?^B7#&}fuJ@re(GD+JLoL4=A;&c@f&M%-qn z?)&J`yUyw_ZbIImB7rljP{S<2;A)rAHcTFkVWYQAgpjUOUxq$2Mmi3S2$;B@MrH;> z*<;9KYVZ^H_vcbyaR}x9q(!9%;lMg2j4{Qur-Gr_xV|SZUzbPxZH2VVgqf+?4Qmj7W_~fGZV+@_@{$(Jz!8G-$Oevt1pc z#)p>=pAh{0%ldS$CiKz6cYEq!zlpUdBn7N|DZo%h(l|{8Z7<~29meMxkJ@4m%c8Kr zm^Tf9DM_rk8hj%N;p=^$M%25k)XbEYvU>)qm){FqaRn#sh zZn_eJwj^2*SZuRcE0$g1SVQPxynd~UcrIjNod&_pAe^tS-9`9BkIiPGJGlAe(LO^r zWqL*RD*8%SumVDz9^nP2-9AJx(Y?H8)!)Czdi=+q@0BDydgOjJqc82t`uyb;Cmm%m zpCg1yYbbUz{t6GX{arq9E;tCNv4t zkVwUmJbhE(Gwtka8{B_<{`|DRzPucqq#&$4`|-o`-P-&|59C{SH5{twXEACeGm2#vda-sOXk(c0J>{>|pAHF5lr!OC#K7V|p zh3e5m_*RPbsnDK6#U2N0`V#$$7e;eI6nhkOILlW0S9(AO9Rcy+8ct57j76uco1KOS zzY!~2U3;tNFpJ(n5k;{S@LH)#*L!iXNY`-nRdlZ1sAnlWS|c*BJrWNV;~tS38f;o_ zj%4Wtk4w_tXd^2{()Ot_Pzn`J#FKoutR1nbP7p~DdpJ(3UgJhdCLvxRdZUihV@yMF z(3>`?ck213>h~XBk<;r{>+L!4gU9aIRigG6D_rdjE#9$Rv>2RY0~nM7Vx@Q5g9Em?Lsglq*Di)cj`YwXVBe=78+ zH{>YndcdS5N>N!9kgt}0zPxGlH6WWPNP?o2FmRx%56LWwcWFu!yG16si36aapihni z)j4muK=<0MxEY_GK@4r20-e%%LLNz@o3=(+@bemv|4G~QWY{;)_a8leZyhozDH}0} zq~KJ5lGVeHt6k_8&X^fT9zQEtat4#-X>rJhI`UZ)7t_0Bw*6fFd%HI5fW?SpSf z*A z5O@0>A3Suo=lkDE^eIQxt8XJ#j3uX#cgMBRpg_bGE%zZdS7gev7?cTdYsDLiNJKjV zK2HfHRyQ^>Ng1*KT8hJoJCr<(K{6YqoF&u<0re{i3n&%Nech^J?wnl5)G5lrIx9vE zzR(fwx7xZ^NJnwG2o>{qkT;`5WyeO)ds*$3jj1!uM36w`XG`;0k4mkavTw>3v_D%I zQ}Bz}m(bpz)L>kv^#53Y`}pC#9`CumJPD8f`NO_vS@Y;Yd`nHMR=su2mDHxyY!K@O9nUt+S0I ztlEHI6b}Rq6c*=tNqSllAfDT~y)xoX;sYAuBfgANg-@dXbBbtWLAs!2mEn$fI|XV} zM9P%(rj1&rt)V~Ts@SGh>#jqSq8xj5#hzE%0Jng&j_rZgATLk=Sg@K`nR+1;jYvE|rmUzAxlH&ZPlXob@DRZwvajQjv zu5mI$Gl|vDEaSN%vV*<@FJN;TokzkJ4~dJ3dr09Xn=2H~PHoj6nh0rXFI`jW9zmh3 zD5+?jiFZnvR5vCdB~g+r+64`4{n4YSX=1Y(+$w<-kCvK%`e}bVxo_jacD+1cTdWX z8f|RcM9f{rre~jf&Ta%xXg!Q#a44={=9Y@9y=bIY^5|2H6v!tQi@(e=4xcWq-+>CJ zKtD3iHc_#MU-6D9p@u#bw#DT~6Y}gX&k==KkSC)?B)*Zq@bTUm#G^;;ts{O{@UxFiyTOFOZM`UaU&n>|i^`uEO;Q0}vv+>%@h}0w^7f4cx;}zSz z7bC44tC}e|>~XV>3w`=zsl46#EXbayYf)szsCtNtb`-xkVS~jtv`dw2DFiNQRZZj#}=SGI&#O36`g3>(6{1~ zxIwID^Rr7~-v|}x+Z(CD3{a)0pCSwQm|I)}X^l}&oEWqq;u30_;dBSV^1X)`)*RKv zs{A;X2B+|;&< zv<)g{Y46lfL>cgr>9jor%Iclp+-4#MdE9}n>drrWdVcq*-2=Oi9=F>w!q3gig5WNMMnr)7)gh7*jdBxSy`=7e<6iTad82D1J}=UvxE=D;t19gZ1>;wPwuiR(6(0TY zdA<9~U2(fdkJ}aQ`frkj!heFxK5*t@l(ULIXW~XUVG5a)A-+&>gjUp3bnp0@jZU~j z)2YWoWuz81B^y)WhhFK5{9Lm$WId3;w$>ay2jcqCE*m#K1;GbQSgyzj>(S8^3}aN} zF)0&pWdPkK^3U71M}6h@?xzwb#m&9)B7h32{W+C{*K zV!SNYk2!eHxYdgKbR_MsZt`E+T`Bzs585@@es4BzBCa*>qgJig#Jn_7=7x1|0XHCi zI5P@yPPjvH9)a3k@NGh~*djn5Tc%sIInjzWI0Zw2En(=)@Fu$o?x2c3RWYQY^yaPJ zso%7wHYaY`aFuk_L<vbhSc|MjQm`&FS29=6*<``78j)rNKr zbP%|hL)Mh?boAX&?FC~ENu|NnH zPo|$UOA7odD)1b=_mp56`?@zn#w1{B)0CmtD%>ZDPMYMWJX4e8v zPeJMHdanEY`RV=Fcl~bmeDu)0)wL*cuoKa$@$>YPY^|LpMt}MkxX#!ex57!aB?a!!$Ta3#^S z+N()%0tK9sWds*NI@;pKRAEP}S?_AP%~bq|b>w12J-7)OC;cJ-hZaT|MgR)+C{1g2 zJ@wE;{IM+E2?=3zC{4-7=HSK*cYprZPpiGW(X#mH!Ta^3+JC1k$WaN^_3;?103vf>J@E97*MC#)9ZOX^VT)V6vfgu~6r;lsqdQnA8Lz zUDRGB->x(I)B5y$UqJN1Blmqq|Nf}zyvAI;!=f-fHyRUMSR3-W{M5$?Y zzD}mc=c>V2gc9b!%qw~WaJ40I)G&=HczR^Cb@Y?z)NK_mn#38<^EI3$Xn;lH#p4PU z_QJ@?M9ju}TR0F!OUD~0Lt`(azh@1-HP^G;KfHT>|NK__)1!y(ts6A0OD%t{GCqyb@b$|p3k$)b$bLW~AEw<-#UUQG%)W9&2LPKtkeIt1OjK6D`_Jz;-7 zi!ca*TB_?Nvcv{+l9tC!b;?lkOm%zWDK{p_uyOUE9Md8Vxhd$yEnE+fNPk-8qEVPq zKR)%q0xUa^Vy8Cp^kX1b*3iU4tK56vDIe6X@e_wc>?bnrG0I9B{p%6#hxg+y&VBHx zU8Al4rA|=WJc+BvfH1$nb~3^f4(Xw_1hbr;mUE`0kDchzP6a)lkv4XeUK-s5w5M?6 zSC4m6M^QoPUtk?)$*PRD0g_vBqBLt2AC)bok;i@>VIqEkE$)C{IPcI z)rc>O+(eoUh5czxDGA4=z?JhlKEZ1#$O&T7a$GCe*Ue55w*t4|h@J=y{nK165UCxd z>{+@I0=~@VKZAyz1a@2h{Nd&6m%H{t4<5m{kP&`9o@KJo^RdO1$wj2Ar&G*Xrv-xR zFINg${ARUa%}fQIX)|fS7D4h(u_RB?;K-qB>SKEG1I0zRvVL<`%BdzM1<0sq0gE*! zUg@f(qX)@Z^H(S{LIYp3!{q~hX8!o6#z`}P)wm7Vzd<*;# zIaI7BYz=J>{rhs^SRbJL=#+ayp>g?KQn_|LU--kzr>{?=ji2sL>4S&vt@C+qg~e-; zW$FUO&MI;#&{MeF8oJ1O{UVqNf*iOn37;u^7%JE>lGTdB_tj28y<0TGY0uXgNF(YFd5^R4>wsx_VUMo98#9*?op5A;5I1mCLWD<*xCq8j^y!46 znxdFSe{C##^h8q=qTsOLt46PME!Q3&-Yfnt+GW0c`tb72zT_STe)K?Iqwy~tZUZC4 zbM&df+XY!YE7*qGfqushtnS1E1m4B?6&sQgN9X7y?q2BPwGrN|wRMa-aLf~Fo1CJL zmX8mx)w&Di#GS>V&C>3&9OH$XmJ%5|UfsY=w+v332Jz8C)k5}ZdgesV+m6~eTOJaZ4G;ZBMlLWFwCwddkHt8fU zC!`+49uyEouG~gYWZ@v9btxVv5}gw*A}yIz$Lrn4b_h2Kyz}bK&|+}CktqtIUJDX^ z!HJMy=#EB_WW&xLLm&+bYGJvcRwE*zQH=_lP9#Q;5sX-h_}@Yh#UhpvM-3Xbv>hH5 z5s|-;R}M{YR%k=k9-+3{DLY@!dw&=|efaD9yBDSp9=Er4XWXK*q2tqx1CyOO3GmNX z)kUSDsDO=7o~0OM_l^HKB8-!M>>##f+|W(cO6 zJ}3G_dRi;MpWC(dKN%;qCkm>xGX*Kk)c5rk({l0nX=ylyMh9OP^!jotDT~gbt&C3} zRY!UqN(aYL<3P-DXFB{9$r}Q|uF)|gHpmTFCl7D@g@wliK5x(OpEyqX*goIGMUNi5 zwJm3fs;`b5XrQ}32M+lDY%B7&xm=}$N_6asYkp5kxQSwe#5O( zd5VU#Mhr7LVbw6BL9>4PA|6Tn#M;5ml=HftKcJf)q8li9SsWg;Hub6;jBRaQMbzqy z8D4Y&xF|?0;Hv1`XKmE1B%xQl0sKPySX3zC)rVxG;|&Mfn;59Lo+hg7A`mHxKnTBt zbYs`|`~ROAee}rPcEo&B=!mUaPokxV*&Vmgl!8MFvG|s;E2O4}CL#d|##o=NLoI<2V6y99D4lAS$4M=9cC! zY1Fmwr=Vj&BaQj8v`7tgz)~UD^$i zyxlEYz$2xuY=!7wgidX72}*X#iI10kfU^S zO{5|k5!bB^2577zu`gh=yAI}8GHpsB1NKqqDTV) z%|&~jFhX~}xrkHt+zH>i5g=~&Q&<_=l1gQ z{Q2JL(W3|MEm0(d@*7QJqU4HU*`IQ?9T4>v%BZM7h;5;x5PMa~KmJr=>sj<+TjL}B zJWAA7T;3vwp|sw`tu0sgIA4LV0blBG63>_KI{DjY74ZyFtamz%?P) zRrH`~E(9vI&{r7bG@t|(Yv^(-|*m}d+YQ*3nKufgotStFUSBJN|n)USH971uObT? zAS>!-D%Hcur-emGid2u#NrLaUN6EhqLVXZ1)cPDIC>cgfw;cu6^BkdQ%Pr1+#0$+$ zpPJsXDgTvLl2tBs8q?N?S(WDJ^9*;I3A18aP?toP|D>lPE;lh(ZW>} z+@clmaoc3A4`r(=V4SqclcijH(q&>A#^KoCUX3eoero;Y7#Xkj?%svlg9q?>()-;2 zst?bO?s{8vFs8U*v(9xiFjm=AJ0*mh<`7BrmNDD`Da=9Rh7kNf7+DO_p*bA4xPw)A zN$1`}Q4#@z)ar;@aN3Bpb!6Z4t^>M%BVeX|HIxQ-P(U@COJk9_c*L&)ek1}#ML{le zYfPV-R{Ov*H16Y`STNWMksT98)~-)E=CL;RK8B(@i;5wA;R(2@G@NG3b~=XJn0T$p z{@;$@?bG_($9D9X?|D}|cmQutc=KyB4Ca)@6q;v7RR$vTVN&lJ*VCxPF7bwp2}+pM z>nL6ounH`(uG>03ffTaft zocd_ON2Wl_6>Z`r$fyxeye+|NuBLc=&mHlcK*3Sd7S{j>l5m+ENnEP>&Q05c2k+ODYJO=MMnZE7MWAPqP9uQF61gaLiv|us z714vdx!ur$)_{qAi6UsM>dJ(N;?>;lx6X#F|$OI;0F)hTgvGZ z>9(r4(}M7sNBjY0dFq@5Nd(Ik_ms0-c6xMi29y#w-a?%^tcZpWws@k6iuV~rZ_>&F z534kcxZ81dRk*+y#s$yK=%BzVFVyF*NfoBe!HV{)rosA|gca#35rN-FyrF8MIZ0@h zg9$x-n@Yo3Bbc%92}+Fu%9{9rTe0RnC| zW=uut1)A>Avg(WGwM;Wf3s@#5tVM;2HfQmzMlqH;5HX{VA#fUCm6w%YE9O00sTQF! zZ33>N1zU?g^#|+quPF#cU@AmWi`SkU!%;19u?ycgLDO8{^5or?==GOyu zt!KqOs%3z3bBP`mY?0^Gx>H4MLUgG3?;5= zD3zGR;1Fl_+*1~?mNrS?2F4X2SEyPDMY&VE$Ix~v@~DqoCS-+#s{+!?hc=)7^!da4 zr~UkL?<)M!V1T(Ia2BTt#<@eqR2gZ z6=E?3LjXOOk|&m39Of(d&B)a`-ERhG3OA{%?W;@$Ktbst9*a~m2lr^`<0}!ju(Oi! zb*H`-AN@bVH6P~P2B=4m-z`IZMM+^C#QWy*joo{;2dsJ+KZmsYZ`R<1^& zKk)>X3wXf-MUr^jKDxjim-{Vf1hudbU^NPZhFgVQ1!77vz2?2$F`-pj(OSGlU4lyv93S=Y zO1l`%%pz4o12&83)F7vEtG`6ytJ232fZIt-QKP0W77Pf@`0f#@)o&Fyv@--q!kF|M z(D6Hv-BY+sTXb&vqQTUHtv4EU71?kB55zc{K1uOcpQC9(#zdhCMP6H@falyC`I{m`$}J9uFDKA zCb2YJp$K20ZfwxQC^j{ha0;fjM*y=TnlFY?Dg4Bbr{MR3zLk>MWk&zyr!QYVz82*_ zeO~X{`!CPqZso&+NAcFh;&s0&nu$RRiS>@2s2vfrS@E%>Xxy~}vq7P}&fTV|}Eqrv~p z;ojW@3?~ji3vs8G(y`M+)9hTD(o4qOrbAqj7#nKWRHv$>oIM3yJ>!8vA-t%C=RA+= zIt29__dZqVtfTGRN-CbSy=!^?nca_{KK$+HrxTLzDKbBJ1mCJ@5nQAPENkdIG9;;q z+8d>Kt_>9I(K9zya4chSy>S-qLIkLX6@9ocJ~nGjf8#%BgivhB%OZV3x2&-IEL9_y ze220L?M3%`mYzgUuVUL83_d`Ep_fC1+9*Iy1-Y!BrJHymXC{ufgrt-|g|aBJugCJw1n^1XZ+CxYQC1oWiB*GbEN9YYN7zFDS0Rd}zL#=@uNjhfs^Z#UOA3cO` zO)UnE$$3SG6ro?S3$_WJMLUxS7N*&T0i*b)S1ev*%}vWr%d?nRMG!isj!F59+Y96r z6UO#559oK=^vINK)Cu(Ywh7O+ptY<`)mFJqtynqjn|m28)uvQPmprD5TX9vCqbb{B z+Q%u8!ZQcnTc8nH@gvMg`)6N{LKt8bdMx6oLF-@HQ0Z6!a%!P#&`8468HzQUO8YoB zf!F&ugdSenyFS~!-TL66dlL^^r_hfOVdk6)%_*(&Er!th#$#8>%83@5wM5_}cf)*( z5N2r&+kwKFYisnvQ?5`sg){hK2MzE>;?vA?oIb-`DPkcQ2CghCDhgil@NcQ}?a@Pb zJ!HzixX$1)dMsQx4X+!|FpKs?5+j^~Emm8_IR}`->{n1sjL{g>pTwN?J`NP$XnEIm zn8G*?t*0%%Aw*s$Wq_RQIKOD-()(keHtABD?WUP=Bqc?G{o1!el(@)>p(%Aaw@!2U z=?O>0Hj0pI^eSS=+Jk%JDWk2C%;AFiCDEAfQ7xi0OmyDsN%eE1YtNTaIb#lnO8$mH zbP8$S?9zYwe!2Rp3wqak=CR}Vri(=@m`nMluoSD(*d9s<0%_t()*MmU(z+8CEz}e% zx+!Cwdbpz1BQyuOSJo1W6~xDM*Tn$w>JFl<{pOSl1|BM?i$`HyjypLCQ>Jv++c?Z! z#rHBE9jwVIkeX2Ib-hslTI1F)*DTgTNJar+2wp9rMN!9~+&DcY*16y&!A?QvFW}^a zn{d*18XEC&s-LKG8f=lLCU$ZNbiIxHALjMt>)l({M~~la2!2(nLm}4tw4HVMlg%U0 zB+##QsE=!7Hjyar=8CA=bfCpj4k=nynexSg`bmuX=_r8T^cT07LI@EYNdKL9UFUj3 zYdBf-fx6z`E9uADZk*&%-xbtn=~H`z`GX#x+bpkKGcn=Tgd5Zx1Tyz5IHxtuU=rvz zW|rvmGD1qm;QZpXro~_MOj_)54&O3b*gaWAU%xXFN0gfAHO}qyjqUg^^ZN1m<9d01 zf4BAR!9#eRTKDY&owhLJ0>#rY#Q+aLMmj1;IKBA}8?-Lio}KSLLLDj%?Q=RVfm!s_ zV2L&s&hj!I0$EG8D|fl75ak^0FxE9r4$L+Sk+MX$yTay8RYcRai+mZngQBBiFcfRi zM`6YAG$Qyg_AKT`Hv`>&w#T-*$6w4L%ln0erk>eCSNR5o8 zJz^=E&&ybC;T*25s{inQ{rKU_bJINDJ3)N#*j=zj}+E53{*q%BG@20E%51%XkouMP!44C)z#@~F3pk-L2jUPL-^j2f~so##GM zoRa!T{RRv78isQ(?G)}7On{c+mlZ(uqTr4R^ix2{mWjEJ0&pgFnPoSEeMayfl{oP| z(On$G>ZvQPozy%khTcn$5l0@?>Q%Hk6xcg)Sx--(WhvaH(1wyJ`gW-QD#BvVr1&RLD|m{pF?$xZQ5Q?}9{tKJ3aJ>(s|m3bC&Vcr z;{-;o)A}Die;9xMpV8Jw58+$4u3FPAq=cmr)}lcWRI3YpCqu8VXuzIf;|3VFJ@|b4 zF;w zlC~VD^O_LB9ZlpEgNeSEXpwvsArWqj#Uja@P>Gn!Xx$5Fi6n>#Ab4ac+ZUA|2Yb2R zX=f1(CYotO3Cd{ndJW>TsiChQu4lu4_xbaudtRxJ9<|HCu=!;=ZRN^Ki$>^Si1ix$ zxH*#b;`|EV8LPr5Djz!+2mp?>j4x5aY$BW}{!F(>PlD&7B%9(6r*zJxGS&;`=vdg5 zn}Vq5e&E-3OAeO-e?1shRBfW9dbe{;x~US>HY!@B%2XW0C0cuT!FOe%eFF)|r&-q~ z+s>u9zHS>0c9_QyOyO-I3ZY*R)ze~Ws||75t&QOI-$3Ii&=r*7u2pH{WwrNDpTD&6 z=X*%$!Grf!TZUJ_F6dQHj!4j(op@GtlrB(1K{CYQA-t8E+Dr+Dv_a#8IM@)-XxbYa z@fiJT@suyOd1`h`Iw~}JzKEy$7-&dxO%my#9dJ{P^A#y|8i_r{(j1g(@KZeh77XR< zvs>GQO0W_aQp{8pP?PD$Vw(u@7%ZUBW!g^p)!8<1-r1oeD4E*UIss36r9ojZ<*_a* zh~p2+bM<;J_m3|hxMzKOLvZrZgLm6i{!OVxp@RC0wG@biN?Zt-!zuKSAn+DvrTf>G z9bERpn;5hoWls9D3^;>UGCK3>$Q;ct#SBL`QmTl^yDG4{C=|q~Oq*fRcBwq6sS84J zH=6279NL*km*Dnb@w%fk)Z-3CkQD!`N$8i(&R#_px^1XSArmn5C#u7`Wbaanu&9FX zR#x-y`NfD0?c54BmcQ=+Z$nfJJMI_-{0J1wPJtV6WmbmZ5t6-iwlLYZzUzNR$r zUJMN-&)~_bZadTpt;HFQOVHg=Ktl>$SXY=7g^w~pm0X98Mytn7`28#*^whuZeYf1@ z(S!GE%fxp4Quf)}Q* zG)`LuK6}J*5*EWtpk|cOZ6Dk#3yusQhPH)1&7kX+sm8xvwraf!6ctp~yWd@#jQECk zERMHRi6?_w5m4%5&uz3dw0HHpT>;q6T`?Mo6!{3E>?}asQ6v($szncE1(_qoqK)bx znu)P^7f%RNA^s{<_`8o!$j9EB&_@s4TRm|#b&J)n*i-YO-*^S0X`_VPjqsY-@z5_$ z>hd@?nIUW;NY1YOF>-f1D)!U#1qMk1?*W0+?orh4y$%{NTM`23ZfZ=M5Wb$1+FdIk zcip9k6^gT9Ebm1flgE!KCBAx*TJox=H4<|idZ+L3EXf#d&GxpLdo z{o|A-o;Oy)>2NJ0!h@oQejuXdqQ~=LiDGE$UU%tFU*EO&&;Pcb-rWnmj~=|+o#x*~%k1^C z=J)SE?B|y+_sa|)JaV@JvER5%7Td<3h0|3u3iP=G9%uw@dK-rLgFvR^GBZLereH|* z$%xL;FGyFWmZS)mz=56+dGSrpU!fa;Rs=7Y>ICPtS3D&*iCVJ0gZQ~9_q7qu2(l01 zJ@H9_LcG}UjPwS}73`ns__TT)q+pA~5fdYN&1poE5pj<&8`dtN1vtZl6B2pPx?szW#sLRQ}N;_~ymxaw93^jYKI; z6%wym3t3bGd*xGWG8NirdjK+O+z!*V5IT zMxm*qyrck|N;NhV3U$*~0HgT8O7%B#P#U+^UL#C zPc*LH<1-H)ySJdPNKkTG{xRDva2a?%+{xBDAYXJ(0gk?WflN_5tlizIJg`ylvnpTH zwJD@6FoOOvmGK>#U=aNiX!SJmFFl#TDWKM%=R&}PGuw3QDO5RdNrI|@W~4UxOy~6! zTxsmlx*o3`|9ppcHj9-V~x41<0bE79y3D8{zeEuF;%_y$TdY2vDLj{}@amu4!sO-@emB zm}pNE%w1z4CV^ednlx-jF%Bf=7T(~Fn>!P)G5DWW`~0PSes1sIn%75<-}R#AJEsv# z5G>?CPJ4m++w`p;v(dFb>2aP>*-eRFAS7z!MzR$bW!sT6pdmN(nv@r+en>wo+SM|4 z>AmD|+@v{_J79I7Sd;Wo2pCsoopr5NnnhVB8&P>~T7s54LK)N$6lD}n{#K;Z24Jks zCf=VZbr)5pR3OOb_yz%R*M<1B zDHc^<+lV?OY`gU*l0w}+=cnS@K~!9TWI26Wwt=XE6QlNQ~yuWCF_4@+Bw+1W~kh%lo)XInv{1Z@tZDqduo3IvMonV zzn(Lp;Vsqudat|FE;M05hGN(Le(h2!Qn*CrAM{2|f=)U=9``n3ULVH!X!KKI0e6%8}Ah7u^*Xre4i z`Iw`+QqWJE(`nZWAj|&=M$Wje^aL4}wyv$G*i)I&+eRqhfZMHSeda5Z4sZ zh-=yJzi0;A$MsE&`!(v`Ye;_dD87Y}6w?U+NjaK&ag=|2q7+Dj;24HZWva#Sx3dQT z6m&x@d|m}nTGJq};Zgr2)@3dyW}|D+h+mWf+Y<7e0d1hpp^J$4^jw4@4tOnkfE&z- zk5WG3unM%+dIS>m9+eWK)*UrTc2cD?l$|0bB(Wam(-Q4*U4sq2M1mKe`2cAT$dZm~ z#4^I(v*{Tv;A2yVnz%cO`^skiFu9yTH{f1_&4Y*Tt)mA|U7e%oe+x}OH=62%+A*gx!&90s z`sWoICrM7&G2lHQR_mt*N;ys_MK5fZlCL<9Fbs11?dHgLeWu6p-s#|@2kxy_b?H-|?j43n$GZ?C#!?U`p)ED0FqW&_nYyF4 z6F9&PHf#66Z-%Epn5r{VH-52MIg4ULtZzkaXGhyU6$~+|MT%Pk$fb&2DBP&E{9%j7 zJk95Q&y@PnLw9@N`%SD+$U^{v>)}FM7^vZ^+$tb|DnP@j+h1+Xqv6qBcr_=ws z)~?=q~=UkzTW4RahwFmB>|MdBLLVZoI_cRM1Jc4f>4^lZ%G2%u-WB8rDVwQ#0VVZ)d zf(W!yTg|y4YmXJyq^vSkA4*Wz(K?dydb{Y625fU|D>Q#^Ah@970iP8txb!V#v@n3O&RA5#}%95_ZGtL_($q({_K z6b81kIqB&}NqFgV3z|M2ZxrRY9l#teVkoR368OwFUQ$22e3-}@Q! zzuIqx!w(!FU4_?(Ng|W_Dh1Q zMgeJ2s4BunL_%A{uoCIl%h(VkL^mUy!E<}X$=ezA8hEGqp(6+%!-aC0)nBG-81-=* zD?+NvG*yE-%#E!_Q;Moc7h#f{G3(ViH&FWD|`<-+{OE_z>)l`O-nBh?+^*F~{=12MoTOvCBDNq&q!wmYv%+@# zmg1OVecp|@SGl{Z1))riTx`b9QdBt`gps#LX+m+%qgIuoR;$t26=gkc{uCYaz%n{c z#La4^J;q#bPmwf89K`Bnl>>1-Ksl;4n-!TjOU<2oenm2c<>|%WgegiGLD6Y8nl1z^ z_7ul!Lr7U6b_^P8v@h#ptlE?kP1hO7;j$7K>zo@u9ugmKfnL**Y{7K ze}30L+{M0+9>X`S5%3eFM4}Thd=MrSsn;h%oVo~o6FMt z??sicV7lHlQ6Fp9E)&s0IQ%Q{!;H2|YPh{stQIF9y6$KDvV3-n^m*qD?g+Hy{|H5G^~I9eOE ziY>PAQ%||kDx}JG>OFQ709Gg$cwQKTnPK$~0ydVrSgdOl=jJ&6H|wfA`NQ*%?>~IH z>xcW`al0N0e(!EmSRYP*1Kc}}TA00W4&16xI9Bet3q4@yUce#NQ%pNia^g_k`c__* z&wE75JVcbEm01K$Py%a67_bZ#{^%gHUGJAO_>K#coURwAE*saI?A@VOB!iZoYckkwZoJrvLJ{Fm?D`Fcg^VZg(Hci zP(rWh74T-Uf!R%{PV*p~zA4tVqU;&J5ltG!MEXF%3(Z9Ljynzo%z~TJvh2wgC^0Z} zp^RB_&(wNq^I9t+xYKBy`TC&^g({BEc+?{CX|(!pd>22z+^3|E9=11ID#UdRCv2hz z)aKDonMI!!=@zH~1==cbhFO}DH#&g@Cob_|fi+<}(RQ2G5Qn$=x+1`BW=}En#ND6A zbGutieZA;e6C>1?V&y6uGKAOZbfSf@j;=7|VJ+Nl=Rw;{Xo^L#AzY(1-HJZ7nG#Ri zZa78FqB0o|=VC?QofWk00dk9)iO`ha9Per{Dc$45QRz=8W^i61q+El)F&Fyy^x9N$ z?}YckBlngpEcWVw&I^S3riRgyNwm}&1}z@=b`0c%0!t%`Xh|vjIV~!YuR)V+M7st_ zcc_=ii8Jtk@6{NE-X7~{Lb0!6nV#l+LBqkZX0q3Q3Ifi+l!v@?)H;9^p-%c~DO(ox z8%C5woW+Y!>feSw9)k(1khU?(D~5W`u&IU)z32}(Xs4K*=!NCfPJG2rZog_?RTIs> z0ZZdmKJ;InKRxTI;FJgernpph-}xE>0l)mL~npdI_h&rvz*wNvFLhM9x%Y zO@I|K?}jFz>wX=J(rcC}O7S!%3EyHQkk6s0QhAK}I+Qt}{K+cr z3GY(mP&kc3X1(UAZKRYJr&iC@xEQ=Bs))Q$@l-C;==Uq){RhqN`rDT`An&8c?kzj8 zj^%SfJ%N_k0I0UK>6A2;55_VjEv03n=b&yx^Z-#zi!(SS{#uVN&?TBV;KY>`U!9_~ z9v5*?M8Y|N*RYqu2iFgDrR_i=hSuLr>nUJhXwWeh#okv$GHmZhc0knc_D1~Ur{{O~#LXT( zaBm@Cl&YhCa3q>2J$K9$4CHjKmS-^$OCF~{0%!@<8jdF8OcnQ{r9nW)MCde%V3@oK zFczzg;uJNNKysveDPcx%TG^{sZWk%s2Qt>1sudCOhG<0_21iV-(9|0~c*4C-D_UcS zlfWpu30lt6M4vMiV}PJzAVJ5fSmD@t*D@Qq4c%BR69RFM8pFh0(Wj*arAMUw=J$m%sszsV^Ouc>!(^tKvRuHXN7MJg|j;wSOx}GsB!p))J zLYdRbFpnC8xK(TdpF2?#M+Xx!iDHc$j)}3+6Qa@O2N%i{A>j2u@uoTQd;3O2-zk%n zx}5O8Oa63;GzB2VL_=E|j6wW6kJc%=Ym^0a=L>cSVK+*D7G5z!dqL2pd+ox7oVgR1 zq`@4S2mDcYM>oMB6}FVUJtyqO-_-TeQ}Oiq%g--&J^UU$cyCb~%Ag|xi^FGQ3*0U# z31Q@(IVcu%*6?snX-~j66J4L}u^|wncV6^xDUAiAtfvglPC+rn7gE8XMqXhjIb{R! z6f}vNvK$%SUiPDv`w%#6n|edX)FJ`LR1S;(ZNR1Y9TNLs%%4)CL(icuy+wy zIUVahR2Pzhp2(ut;E7Tfs-{hIj)qEf%|quPwo|UTwY0NXhiJ+5G~z&@VIw9XN=~TE zhdopvX_eo1VD>t{*^y!U8=3GnLC6Sbo>j8|k?#E>=y z3O7xQ0>JOT?5987&#aFfyI)H?*k8=S9Qe#ok%2{ku(%i&-t|2ekvCyzVb1Q8t28JG zqq}H9;JDLz@Q=G{-R{E%duyMWok3Uy%jqV1lop1!ryYo z%%jKd7A?Kbsh~6$f(ebrq>zg+5htc}7)&ba(7PqDhm*jrH_7z3(l+zxVY`N1|6NitDPwm> zxmvb?#X#exus6N8?Fc)eJv?LQ&_+v2IbN~eXFVPVSyTjLvb&hS7bs9FfeioC+K%2M=})`b_1 zp|XWr^ip~dOf-LrfrZV`wSDJ4B(^$5WtX;w5yj39vnc6$G5+^Qd+_d| z?_-DUdgzTXJcQj^n{gf= zB!?*8To_JtUqnTYX~%9$l-lc|gK#{;kj_zk+lm66$p7`&fgXoA#Z)SK4r5TWxsSWs zvO-GS&4`TP1+8!QMxepzqo?IGDGbWtHwq@&E<;1=y&g>jfhtk$DELU?A=(Ape~LM* z)acp2?$PQ*JXTzaRSA#rc`8G@!LC_>%wmi=T*v-4r=l%fi2Rj){K5x@h>XF6)Q?|jkzL}1CXCWL$xo6z9WP*sQq#llGw2zj%9%V|NXJIE1#L$N`>W5ic=>#_%;3!4Z#*!6__?2Zk{=5~1Nbpa0AA z-R{H(kJ($*pIL9bmf_rRVa?Id?x{uia+O9`0Np4NmtBDqJ2BYOE}11wyao^?rurkI zJs^56aJkXnG_zXloG2>J)308d22}{(P^>{Dp|(?N^m=m&IBj(FSsIyKAGl0Z&8Krg zbT1M)MdTD`6M7a(JbG9>87ZtR8y^;dd+nQ1o{c|BEW?ihI_Ztb~< zHKn;!N;a(bv1U|65TKihwdREVlY(1UDwt&zyxoJ)d|caVI0Xi*QW$s8g+uHySK)l+ z8gV_<49LkhAv}Xw7bdfv0x;1PkHTw5F%wH$p-FAKE|$}ap9-FuLcM>$K}_*5D!BzW zxqNF;&@nmDazxe@?8v-be5m(<)_F-H30f%EH2T9|Kedk^?iz1w2(BnnRSpttrYR@oOkH9$0mDy+;&T!Qs>5o{9B=1Pv1~&BQYat|Q-m5d zZu*BZiERjL1O=jM#Jy>uG=cs=*71#-CifbJ@^pcEtidM&baBnB!A_J8oPw1Q^?8QV zccWFivegteO7+WXdmvTg(bG{dc7nS}@!Dup+l)>PGQO_wtWb%PLbu&i^l@=&ylJIq zA3uHQ_b%2RJ#OEp@?U;Qp8h}mxBvE^{)fac$VPphb>Qqnbe; zF=Y{EG3SjQ$<#tCS!)aaUyg^iXf$otTwrCbNBn$7GQy@5H&Q6?gaQl)pe>73PVw>U z728_qQv_dd@ZFv3DSb~=5;<$zL@zKYl;EfG4OB$`L1kx37F`6FHzwo>lO2#{rlV2B z7JVVn7!h~H^kfwYF>xnMi#ufej5C*RH~vBY>-g~U;nVkOq(&R) zv4Y=Qd4|EP&QZoMZm$oRrviLO@q%M;Ikm71m%7nvy)A(mWiakAQ8Fr}_~B^8&+HmK zt{67af3pQW@k+rtP9lIRLx<@$jadmv5%{R$IOMsudO81 z2E}=6)+*SeVL(?#Otax$NL9R^$d^s98~MogOR3r2 zNqy|#y=8G=97!4PEAE;SItYc^SB~CJ7xnPfX<*zQBJWL94i%~+b61O*rE1u4@D$EQ z%RLl2RwgljVBtguS&j(*bw>q8Ru-YRQY#WQ8GoJBN=rL@-L19h8dcyC{!z+d`Dd+j z0fZ>Z*N~2^&Nr;~n!>eUFflojJ8+Z(uJbS{3;K#K}=2 zR4TvWrJtXFeBWLWWWKjkA3b=teKM~_D>mZVIPv5W3s?X_db~C#ElNxx^(N8JC&s0X zp@m+lxYM%hxn(RE46^)t3`oSDr=(y8Evbyq6D5rFN}E+pa2kS5rC#+@fd~#cuDsL> z*%q;oEJ!dd`f**4q!i|~A@%D2A9ZiHt4oe$*TL3*H)P2dhT$7SXkVAWAcH|t{(+vs zZ$L80?v%2!TA5X9TMuCv@C$nkp3Lg5eNO6jcekKIW}dUZ9Up^SYtF^B=Ik@t0#I)C z)w|lKZzC^}XS1e-{0fKXkG)0NxBe75LA`@B1R+QcYI9Ium;<4}X_jGSXV2G%&8X1d=wt8dV{hd`f+{b^fmhT{RhD6Z+_dq?cny=>-TFlhYBf<7g&U~18BnI z;e>8tB2wR)5)tlI4Olfh*l`a6Jxf-!hJN8>kQggaJjZO-Ca=s6;Ep&V6#LOSRi ztCMJn+yGv^oMXA7lWC7d_H@}N#L>_L1W?Bx*5Meat{opM5#+k(4ZP|KyaicY2@;!F zHQrhB?XR*u$IjP~#hL{GXUq6Q3;0b@RQ)U$$6=`H07h9l)n^?sAgC-*nkt$=bnl_< zN8TmCnk|6rU(oPh{8LtKe*fJsCByygJDSg3x?fYjBD53ISVxsIwY(y{E8))0x4o@C zueGh9ci1y^w!71#uuq?+{i5LcH3g}68gp*jnezkm>}%NK2VCV#=6>CG_W7UF-Nm9$ zcIyk?`S3~~;boZX%NsodqCw#Mtf>j}d7J$d>{S{N{U%v7It4 zaj2xeHTEl6<6;hn0z7P*I_?{MW(OxRdyGuV8y`dQpYNZ3^Na7|x30xMdGUVDA+_F5 zCywyFx9D-$RvHNg?+D63>ouj}4M;Is*s*PVJM}^2TPwght~P4kmSoB2x@6y$-jiZa zbvfvbuueG`!#@NY-|4n;un=(S`LOdMc6^_WT640vNx`D zbqfNg1m-st9@#}K*A=efq=9E5~DX5b*mrCno z+Y7K+yjAb^;jLFqfRE}|e>6s&zx)3CHNQn#KYIng2Esr0uMj|ha8BMoDn-B^_p?F%%fGOj@}lJ9hRa14-fmmQ#i9Wf~d8_(cr;t zW9L0X*NM%x+eO~6t`)p6=K``TkM{fvWy z>D_{kjghIa4imsH_d8i!$rh`(w@-ar(ulL$Vl z#<9?(0KW6HN@@^v{cnbCVk{+V|1tDBRlR|yu$ zu93G(4J}b1WX4TUn}Z_&Hh_Fa&)VYLdE0%N^+-YYSEEo4>h~jVpOPZ=WW+Bn#soH^ z<>o)>JY#YxFw_kptb^a4lt(HGTxG~=<)8T9t#D2NLwf(s6WU2yRiq1>Bsd`Om5*Px zV?vN%Iv;Px|IzRJH%(?fdC~qfkvaR>I1pLPk^GJJdLZ800LvnS8V=9}yH_Z1WKZN+&om{@2 zLfycMorCQQ*U_gdusGd*!sRr?T11}E2$|VBp-$ZKdh{CA^c5PB`ykh}+EfD_MTw-W z#&z(RW)Rc+Tvrc;UGangyn*|lF*0&0+~ULA{8xYY;k*CzhxMEN-S_KDf$3|&`^gLV zYk;?9=+%AS5W?_W8$4+(0}}Q2Qwe}4H$^&$-_uI!^=kH)9r+ylOi4C7wkc3L$@wi49oH6+o8-y8Oe7} zI3@6cxEE|CfU3P+S2MOYNVeYPQJ5w19(TWMyfyp2v=j#1UL>j)%wlJ6-rjB7%QcrpfqcFW|4eSg-H4rnyd4$;wr~NZ$CCnve6ks>K94 zs2nJ}f!LpA*Yq=5Vvz&n8R!l2Ce~!H#uj_^%8GjRTNU@LDvU!A0Co2!$W84|cDQOYmx|J-oK+JL`KT zXyJA3Z*pFXvRYlNPvO^V+7bC%K~G2N>5&k_=wt!w?L zvH{U(rYkO+Ull8B2bRX|k)6ds67GQdU8~9z-xnz$l4@n*t$4MDC`Qc1X z23sGSx_ycekoT03>Q>g?{b)eScWZNmb?YR^l0&+qLxiDTm+G~4Q}yL+#B6odCq3=s z)QlDcvv$GKWpIl6ex;E31{cgk{~$u|1~8SO>v*@th#*%TOuQbiJ+9!S3MW;6kS99_ zb}lIcFSezje&l#nbR;%|LZ_nUEU)G~;Uk;*7qXdOyQ%r?rTb_z^GjKO75#L)^WgOp zgusDmwxFQ019#T{?JFiI?6kE3M=-aCWt*9-hqByf=^CoZzj3%N8?B zD!V2fs>QLPg1J4Krraxj>?r&PL{L9_<$igi|MTBYjh~jK=a=ICA+0|bfgfpcWx-x{ zJ?I*i+cX-h&I_qMpVY;E`&IzC>1VzkLX6|yx*g5)SRD;NYkQMRGPuSB@N_*4Hh|M26F z-)b}b?8W;~HvG5OAI~nQ1bEE`WP8U>@b1db1I75B>dCXTy29~)^K~eX4SzMlB^#(@ zs0Os;31Soe9k6-d@inb$3VFQ?XzHbZt3j#rOW{bEC}=Rh&k6*lkHb;V>^w?PuOcQL zwYD~tj>d#5j?u3NaJkN$Ad&C_9kKHZ@fTtX=B)GbPWf^MMVGL6zp8F4viv^U%M!_g z?isOnaH+S@=0-i5nxd;8-|GB+^&fuo)9*>N-#WgZym-IX;>}UNz2s|0m)5@1<`qw! ziq|atT!T)@V3ENZ!>pduld1>GE`|SfK25>B!r#C1u_91H1Ry63J!1$LpXm#k(C|?k z$*n1R12=y^8qhQX+v6ky@F;Ueq2R&M&qw_o5XosiiZB9BX;3@|l0RX3a2x;!k2obR zk9J&H7ra$9F4luR!1qFc+wdR4e2MP~@U7%otdH>y())hZXQ(^s55ND}4dGk5&7Zt{ zzgB0ut_!+y1j*vnlWng~L(u~7h=8s9 zn||sOtfk5+lR-NMJiChP1Me$AeAVHQ34Hw1p<(UcqTL z4@p?6)o-T)oxaJ0ZQiHC3pUBCqd&{$RoNB_1q3(;y}d7>v8_VSqiW&P;zPExp-3}f zPV7elJAUjF^7?=MwW1!s`(_K%CokZy^%`pZ_e|$?y*v_+CW3d@t%$so#wq9A#EYdD zj3O{juDmV|u|PG6VBanrx&~9kZOVFbmPUI;${W(MpgGL>IyCEyk&~9{U(EHfFIboO z`&9?yRa%8m1h{>HOL~E6Q`v1yf}z|sD{}ohTIE&r8O7y=H$9(cf8c`kR(`vgPh-q= zfLdN})?tW{VU9{9oU3NJ^raGN)?eI({^HMn|GVG)zJLGy4+>BId@c98ALci^NI!W6 z|D=sS{_KDI&c$obmNv8wmP3`=bSj-hda}C?FShRat>1;$jP5Gh7qJk8L z_E(SfO^fRGK2NXn1EER}34)+jTb7SFG-E#HBVK}US3Q7i_tKK>wGV<+qd@t46g+E6 zDq@ww+YW%g05A-pM#bjh+b%!Kt2{<8~-I zfi2dh)u%3FEQFQ5@ zu!<`E(~F4q&X`DTY$m&;vOCTxOG1qZffI14adWGW@o+?P%b=XB<4cA}U)4Lp3?+N) zkmNIWd)3!`w8d(Zx6$A7l~nAL9X?5!B?*L=X7fl6&kaIq)@f|o;t=NLoj@MWHl*zY zMDMSuY|dlZ6Mg9S`l9)uwdhty?FMny+5uMljsjHa1j=Ef*ku1p-M88y zK6~Z9mJIf(06-}HjvE++s=(7e8DoA)M7=t3hP&Nxmd zAMt1R=s@8ji77$zT;S&{f4(+t617fjufz!b_>974w4ELaC@)2=Po?v za}$D=f2h?U-$2M>AWRRuWXJNc9c`bTTkq|L8DL8KI9*<_-0N1cy>pgVf3A;ajQ@Q7 z_~UPWW!UDkSMF;7{N=dbMWz?j94^FgEqEf_@G)CGz>*wcecG67k7NwgG=+yF#NWdK z_+0J!Qe&<)G85~k^TS<9_)bAwEUpbil_VF>eoJiMJMwadSBD=P3<*CV`eA^5q$_<) zM_C+5*r&zIvp7NdV5IF*LeTT={f@2(7aRwIKG+E(LPY_f{I1)pb(pUDaDWVQ>oGG0 z4BJ@xzLyoeq})gQ*bwpK`u#VnN}s)KUje0Grjbd*;thDf1UGxer#HZ*>3S5l{cNp5 zi<|B+V1Rf$5tEy$`1k<1%_{Cau5c??P;_h<^NT^PN}a2bJ8YJZ>v zXPsM(sS$xQq}IQDuBwO>gd2P*{wA1^Fn)m|sJwt22%X@KpBdOO8 z2Hg)o7JbL}e^}rB_OE~Q+c$sf7VeW5?@xnnw3Pp|um|h+3}u_Pd>v-|+^<&8?NZ>0 z5MtmOnyC=mI0q9X7C>(|o^VEA0k|PKpo# zn|S>IhhtSq99*vrEnBJ70%cK)5qj_v)%K-whN{6KdN|2gZ#**|Jq6DCd;QU=?=Sw@ z55QXq>Cf7s`=@{V)9?GYdb&S*0e=nfcIjPKaP=tnJL{XZ5eQdG5fI0N^bUOHmqQ8( zCO3KOR&r*gkQBgqo(a9!P&Dfe*1N8o)CcQ`QOAn7llFnsRcK z-@C8KGx=^g=%5ykHG#d?>`cr3{#Rb?-}LXlb@ley3;4A!%`aLIponlhoPpA>ww7B7 zOMZ70QIf`To>xjBo=4cbk!z;Npwy0W#d4}U^ z=1TrbSB5^2U;D+;<-~7q0rVpv701R4bv9Ow%9kUs!!y3pf^e$lH-FuKT;G)A{_Ms3 zD5C#MHA#WJK4E`eC9~CSH&FLc&<`-z3%aIa0e#<%J-LVs5w;JGdxk?mCHkL>MH~^0 zw<*GLj?U)OEYS|YoUI826acy+RbbRxqkvdH-p~Al@$UQVb^CZoe{rLERh1nqQF*iK zA%qFI{1MXyf3b;_4I!>@I@tbk0{6zL39NTXFe=-p#Un}&bto_3j?AFO+!#Xv*LQVdzyj<-*xKgh(oHYwJf?A2eEZmt)OQ`t3#9@P!<`FN4~XTSY!{`k9J zl?(Xfwfh<>eHlB>jysGpqsv4bV@Ehvm(-Q0+e=6`;(TIUVPD?bwE@piFZU9Oxr{2) zKjZNpVxF1sq2(6GL;USHNG#8QYaiRPXE|QY{(Edr|LP8vi0I5Np>v1h_6BQEp_lJC z(`om%9Dkq_6#jV&RI~@urQ(G;xOh;XB%9;+fFNy?4%Pbo+|Y+`q{+;-Ww#P}@eWk7RFTVfr55Jjx{?)h8?`JRFFR%1}__?p}`nT8VJ(Jn|QiRBfO<>)VpR3;K zK^ayUmL#*2JwS`zocHR^S2pj5_&a+#E=$HBJyc={n@xAntA}BHxiS%x{|6{_ZKvb6 z5q!gc9*-lziqJGYFF)SAB^50eC|E^0LS(p9%r6qY@vght$_M)CDr|91H@kg30qP&7 z7jwZP;>~uxH4L$b)FEGQ!nV#u{Q6n-*Dd=ffRDTIZYD%gwaRsPx(E z_I1nt&(o@87@eTQKHmsHwwoPpu&v|aGm}*Ch=whvRP-_IRhvLPwmCsJC{B;9>A0PR z1IfrzyVY5+;qd5y-?M-ator5!JPp@mdsiUnSC``|CDgGrE9C3kf(p_n5tCKY703~d zcoXJGi=I*&I-mxZ7DUwdPcwEYH9y?a{m!B+&<`qlSWt;0BHZY3uTeGabp2(nqe43Q#R6;raC zNWUN(wE#hIg6D?It)E*xbZpUgr15rYIfH&G$+bCiw8; zNvCh=`q<{&opS~m*}DJoUUm^K&#!#t|NQ64sh__8rri2xFW#?}AePz?QDK{{|LVih zE{PBGzWCCi%CS&#e9C=Tql^<43G%Go_}VEnY!tb`;pH#`BF&W|GTv=_}KQ_`r~YP%%iKps4%li+vjWPybhDwq(XpjJ)$NYxoR)woL6+z zzA5)vRvyGPZQsjK=B99X&0Ej_;%psI10M2Ke5~GprpNL1efMAF*8k$4e)kh8?5AID zXy*6d{o%WBz12@%y+3`c^>6DBcW|B)p6dnA{dPbk47i=q6D1Nn?rOIxJw5lugG|WY ztH9~n`kVm)0FO~s`%7h12nCxoDSF>LKR1vt>L%i~Zz*RoRM$2O4fSJT>D}JPWcBRG z8W(@_ow3Us2vjXSs{xvOn2YnAIm(*B zy@27St?&kffumDu`W9cQ{_(B;lfV9tfB7GN`rC@(k3X&c<6nL&v3~Xfes%Ts%gEFK zLDZn4G{AE444Ml+qOfZL?4D;RWvR%YdK7W8oXa~WrKeQ*N^H)1Yo{|f23m4=ek5>G zT+Wwl_qwDGa|f>+V4|Bms5ghP?<+lhP0n&=Q9|b*NjlXst^}v2o3QJwf-u5@dV!{= z2=YvMmREZht8@^drz@R8&SSZgZfX1h`L*&}qax^m6FjbV51{h(INmflAoAU>jB)4h ze)!M7`To0aT3LVg+WqNi4S)1VST?MWy@mqk_Jm}wXzycO&&M3SA_76_R}hth4?vC_ zspHJ6ScWztji>@rOTd}sNRqAwDt8_=K1Hn8aBhCv>M^a~61hNwj_-avt$7oUcwSX#5UWCD%L^X8 zBsdVpxUc&mJo8qj))=hYSLWna_W$Gh)(!b*uiUQaE>*{LDdsn%o~d3IEkkf5npi@Rz@tzx(ZP`w!oo zSpDP${I%P1TiJT8fsbj!>q^pkvR5tH`VNsMzO%|H^=X*u)ll6;U)&B`?G5!74$u z6Ta203+pj?nuN*#{A_Td5SJ4-x6?0QDHd`ne*AT_gwI~RKT%}=KmPZBbNWO7&Hwgq z(%+G8xyvcFSZU6r9FSqs@!z6y77;9B^`w7wbdfxkx*Vo$a-RJo015jz~wnB z#hc95lt+0l!kz8%kBxjsH6tn+R`YFZc8UN(_8wFp;-&4_h2q{&tnp*^l!HAEWSamUng{ zEPuJDKp>ul!}*eT-sj~Pal{D2<21z1_Bf?tN?pR=7RwcnBATYNCNRs3EEVC*PIvHz z1_!Z)mR9g~7ThcEAu!tG`L18NUi~xg%_sTwyKf!d&tAhnY5t9WlzRs2^UH0;sNiWH zqbi!whC8FJzbG2S7 zr4h)M+1I8`QabtZBNkRNK!@lGv46;u307~L($Ga#LC04m6Ys#IVh{?K|{#A|t#?+h$m>QWIw*eEKFflqUAWOjj6 zNFtfAXcc!k7`i!9j#~ruR6ox^(=>H13>>Iue{6(+jJ+HhvZ!*6d27csy7~$!+CvMt zQ2RMwe4L;(@FK_mL^v(X==l%D8$DSzNfaqpNkIVvsA6Fr_P4Bvf zBDIS82N42HV?7}qb(+@zdGryY<9unv+T$iz zDrg<9%I5qBuKfJTtM_Yt5zslMelCE<3#cOm;SZnED|)L2B36^N=k@Niwvku-QE~bVI$!e0r=j zLEw4d0VU`x)wdl-n{RL5`p1LISI~6y2<;Pl`+FpG;RpHlq9>2=?E8V~Mb2H>uE<(t zyc(!#JhZhF<_X_E=33XS60;70RUyOq%n^OL{DIX!7zbzKQT`QPOPK!HD)BG%75lHf z;m=;aKVd+BeAs{gcP{N7R?@0v&Eb7gZ2C2oN_;5K(MLT!ypa5N*=xmyx+?*)zS?+Q z&&nhm8{$Y`^IGqjUAwfT$vs_=_CQ$V4cQ22ohDA_!9tYlfpWm8AEEMq7_8;M#t{-F zrfvS-`$XO`n5sG|7qkWnkea)<273(p5y(S^{Y3hZDJyvE+@%hPJ>;&sZm2h35(q^y zoW)ZhKppT9cgnNsR}x!)T(fT#Ek1eaK3?wpQe151r0M6*1h8(Grdnf)U|%m7`*Gp{ zj@)Vh!G|N8uAm>e=_&Eiw>du=_BE{_G$y|9_T+eV7D=fuzjM+M?0z|Gy}TMY)*F}~ zfqq}fwG)7{IyMSSscA3m?Dh^6An{nL?)b@ttb0|BELkevzpjnCQ(3Cu#Xvt+yH|)1 z|H2QYcPqV|)wi5ydSGtv5@4aFt)&PTq_l^xq@e%&9M_+I|9^k~&5nuBUc8Sk=D)mD z!^f!Q?T$ka;vi)4X8Yjy*Jwl!mrsKOw*pK;9UMe3-u;U zlHkgI-iNa^A=&TaG_k9#9v!GBgZ<<9c)9)$3_*SN>U~5|zogfwozF;KV*#p7(^+|j zmtYURyH_nl!Aspa9-=w)Uf6B5n%toJN|0@b+wbQ{t*)eT*OmDFQG>P`tOq$j*3@Bf z{M5#EyUjMCWqnMqopq`&@c=LH$MuJwzT4jv)cWLw z`+BtMOB*7<qp$1YM1oRw&c?)$cvztJJk zPh@p(2ZHxA%v)hZvc@}_HT-7`i)L4C_BsGq7GL>e!T2BE#KvbY;D@qP__^%FZmudA z5Q4Ifl8z0istn1xbTf+p^}_lR2U3Su&&IbH;cnpp3G7(d?xd+y^Q-TYZc9_B*9jek zBc-%9`!~;r$n&bEnv{7Y3<3s#`5&*<9~hlYqR{@@6^%;a0=@<%4Rxln!BRoTJjuNL ztvMY8(6&(-BgcaU$bpZS>lCldE@InuUf8qs?7p8XBs;4i`WI&=+DojZCcpM$`2Fz@ zKiJmazyE%H|IJ$B=dRw@-f`^#|G0GwCBlSL=Lf#Uf~g9n6S5D7shHL&M&o@rOKGdLDr*;mSyFpUY~ zxn9Q@YvmupeAH&Gj)&hi%->0!x}mQ-cxc#F^1SJOIjGy#(|3$Mp0I#;J@!beQONovlsB|F`O@ziEz|2 z+i(JJ>(>D`>9Oj_rZ^P@aUa!;K<*KET{b7&7r^s|9Jlr=%zV_?NLfuGveDyR&*M1@ zldO;xYoA1?sbR!sL+hax!yy3NeqT4qKgB5LM;RU!r`!2Z^<$w|^8A_(%Oe zf6GAmvls1`m-+wwH~;y&AAkRc{{6q(&g7qT#V&&5691oUE6ro$6vSY}tG(=zp?Un` zcL4J`rv!#Th!9^7g$6fyY5Nn9@vQB52Z>v?UqJ7f`84&z2t5FucG^->PIpNE%O49~ zKdWU{gY7ePi&CHbDm>gZHDKGkmz|Fyw?=9p`nsM+;{=HK&b^Y8G^@#^ovFg>xu^jT zu~0*oJqMLi_U5TOBg9aOmOhk2DDHvqG-Ai0GY9hDn@(%4u3 z>hgii^6lQ%PhPfPHrD_1$Bo6;unCWJqv>1b&DW^Zq_(okXLZ)Z3rV-~y=8;_xW@FL z=*hE`(@p%iM(~ZGS5(7>wgkmLLx zyh|XXU`uJW_1Gckj)A|n2a_gVHb1Pp&g4wn8X5vA@~s$CP5H6a5*i?X?a9IPqU_lm z_jNjr(y29-q6uq^6Dq0x>b_%CU-lmSeoY*_tNkKZ8dlduZnaBor|q>E`A}bmd*5oq zM4gHWc~9Ut#=K6i#ZsK|z5?X=0mK2wP95)bvO5aGSpcH*b9-p%tISt#s++tr!r#&3umy|AdlshlqS$q7|-X&+vX8v!8EgES%8=qJdNj4 z@2rr~>`P4bk&9qOhnwoY1QLgT_X>xlzJEyKNc8I&7+XH5> zojA5#`lAVpf^eazx5>fDtC2#gdtR-X5z81=#y6@ZN;rTwO|cD50wX9v-C z5WAC_DhZaB^mw_havD-Mz$vzS-2+yNA3i`w`W>?0zM)p|ins`b38x%0c-3#Xrd2$z;u zZRA+KbZ;uLsEWBb9McLQ(7e2k=UH`bHYCP%pz(1^zIjDfGKqaefay$Fwc!}dMY1dD zwx7M}o~+1j2Mm%Bz1VOSf)`lfIHg=<{x#WxP*~@+YjQ9kKYJeG$NT1C4U4IiTB`&2 zKPu<*1cvkU5LCPR6#g@??X zEz<+&h_fuUaN>5i=2x+-Y)?sVoU2=1Spy>ge>E%Mt^qIhy4d%+6Q!(--0K{bqveSN z8?;t#Q2SB&iu}VNm+RHwe)b?t;m~Qv$XYnONzexw<9%=agC26&l#%S)+CV zJx3*}rgc4;L(NwjPJkx1B9xj)$&Lc_W=RuY@Kw+FdAk0Ek_UI9gsttoOwayoj#_DL@mumz1$4+U<*h>3 zl3B#bdhPfhs4LJoMlwCsu-P(BUUBwQtOL|Bz4K<5 zEL|C3I?WRke1y|CI31Us)(OUyIILCG3Kq193JB-kkFn%H177DfUS9%G`qmXxS6yhP z-U-*MySg3^n}fOdv<=)Kl{zx2q;I&Ya}Iz1sXz3^km zs|F!gBs*(J2ri%5U2%a@R{&KYn=tAM@C})gNR}v*GW1R6puY zM?J;iQN8l|>zrfPWTEc2$Jg5}0yvq?b9b(=ULfOrlJ#!G{vz+pBa7QELl z|2|CU^zuxd-%bncGUUKg0Uo>%z|ZoAO^c@4h^yoPBR~woc=d1D5WI+bI^2XeU^Vs_ zxYc@@ia?y!3u2;AM{Ltetk+u)&WoCWl>lh6P7V;-5EV^!NxflcS4bHkdo{hhipRJM zBC8Y9Hi_-jTU4Z`pO?Ui&;XZZBl0F;Xlud>wja@Wgd^3=^Yfuq-uDtK#Uy(Ux8uW; z!Mj-ja;|R1i{GKfjU8RujI|8pTZ)I?Hf<{ns9KW}C`5=!FyIYxLfN1ELgM3*FPu}` z0#%M)_oZ7DbTL?-D(+{X&r z(5L1x^Jm^_Q!=8ZbkEZD@XjE`H<_zdO_&zI#x_zv(hi_NaLAJ+YKy6l&@RxrIw6w~ z(i95WM^lpw9BhMeh?cEE=HkF5!erNDi)8Nx*zUS^lSFu0pkx$sLJb=@Jsp)+!ckRT zhE(K)FG# zv&98YanhYb+*HygmxI(;;xU&q@;oJvown{vL|oJ0?8ovUF5-D@V82+umWNmZzG2#`w*6IcZ5TL3-J*gt|Wr=n(uto4O`&&n*Z$E2kA{h zP+MTv$y40(KDUj^M6=T}i^s_)Q{8(dbKEv%!D+p=GL0X>9#G!P(*j<6=bDdcMn<$@ zzY>L)u53*+ir}!VKBit`GQKx^4E>b&7z>{$;^b#5m$9 zLD01hp-a+*>c#0@B#EpBFNyVYl8RRuDgdMz--%}z?1^8?(h!uYCPCFU7R^nSRKHma zrIL#K0zl!*d{hQ?C^3<*$$RIr$euN*UN%Rp!D(yLTQn^Zfan?3x-QyKT?)-Bc^Siz zl}V2jjW7t6JSBjV&s+!lPH~OSCuQCYyI7$wr+x_ud`45b0FK61g=iOhLo|B7?)pUK zH$0#^@MMk1_54jo-jlDR@*)g^`;bBJ8r$42lPiUSfZc^$~WTPcD@Ayt4m z2_RrNq6@)ZD_np#kxN3YFHCbzv>7edbH-JgGfhzH#}#><@(4knDIzZ{^$ETRki&J< zLHH}g=wOXB-Pf)J8x?#YhlGlFdswCuqc8Zt@pRH7sW)f?HsSbDF^|g)b(`OGp(K=K zFT#ymVcMrXE%V%L_*ZhKr_yuM)VT`RXxPfeAE4w4N!qoTwdOrUBfywL?ui%A<~75Z zfUJ=A{Z3<8)+FB50akHJGQU?2mQ&|3&!(&|*s-h3cqS8_{N5~fvOM9$prj^P>*&_I zq0Nu#XsR7YJ8&9_LpG&$?^(hX$k)6B5pAca1KYFtwiBd@9w36PNZ`dHkx7=d zpsQbikuwZTHj8Sf3pH6P-o=>W20hyrC#rhG-k;3gA+M7VPU(}V$*zH00~+BLoCTd< z*-*Fk37UiU6*niXlhc7IBt;Skpk-J>%~n^v=F1Vf4{CARHLN7L9lY~;SuTp|_yD@V zodkovR19t@*eEW11>o5LD_Y zIe%+~g>(zJs~~H;AM>!Ae3;(!wqo<~aCunltzH>DL_7Baixcl)Px8)InE4zpsDhqp z&E97M0F1q)qVz3c65ymq8^J_2=}qK%n|B|BPkLGtA`)D@hAzPY2GGq?K9n=_TDz?z zFBWhIP*OHDEftm^+TGb#($3WJvVnRyVIq(@ppF;o$baY8D2$aQc|w_}Zq-UP@$rC` zIU%2WS`Y`=C5=I=c?))X5#TIt-UKrO51fYscwNwszc>=}{48e&uBoy5!$Qp-3rAU% zD8OKix6-Hp$en-z$}$!f;&qJEvY9nK#gZFaI$pAT0@@~6*5JtUrOp5=l`m`CMH4ND zJvdZuuYC4`r4*haDllhH0_uk715m>Q)v%r8J>6S1^O%>q zH(rF?<{M&^LC|w3mAkB~>tU(t;Ce^0r+cwM+zaYTRr^q0_e#z%M^+W^k>m>_w(&cRswOfDlM#|{(Q47K{poj7S=<{g< zEaqOGsul7O{f?>hheA49gD0Xvq` znwKp?kCj$}e-E09!Lh9GBn=^7Mf~-!x|QMSR$9PdUm6^$EhgmO%homzC25;QC~ydN zU^vC}sMRwJhs{RFd7i|^A=5#_*o%2@6%ZRwMACEiLToo3mmUis0SH^`_8JDh)vJDy zEIpj@Vg>bmCc|WY6%b~ADRFRirgySX`_wK+uVJoAuj<~jyVYgTVOPQxFsp2MA>GWZ zxl&gn5G*~_YrQRS#-%?8U*D!jT`tq5P2aLAkacfXM}DT^z0T4m_Bk`YidiK9Icd(O zNYIj!oq!&gV;a3{kiJ{WuZqz48*{!G{wdyoiWG4-L=Q^8wIuTYuS*J@Ssz+dLF#INO~y zqy50mnsT-*9n_BU=hlRk`9VJCMlM#1P9RGVD(Wy=C{kNwOAQp+fobsaOjrZ z*VO-nWRrlDohfS6c=1JWCKp>AtWU2%r`H(-@54`14v)vz2L(75&N)`J!$EuHJ&12w zNw6LFG4R<=6!DQBO7bX=*?|81Do`^&08v^cT04UoJp^#Rh&TPOz0y`wiY}%q7RkgR zwPbQ$2>T&Jg%()bfyzLTgzFL#6v))ji+9$54qA}7pP^LOIT2TX^#@2v!BNLB{Y~IQ z+g2f2{oSNLvH-kTMS~&^n?!CU4SGB3|HZ2>{!36lLW3g*8bkAPYtN%ZE@%LZN`Di? z+pOU3c;^9bx6V6kS>DsJf(LG%3rRxQWncNhfY&ovXIXhz7>jK`GQml-%9H><#pO zO;2|cQ4m&cmJtveRKn)1^W|Q*K1&4!dR_qbR?$65N?!PghDGB(gRLH@MuOu@d#9VP z_e;mMMXtCBde0uz2|l4okOdKp&JCdZ~Xmugsst!6DMsEiAsl%C`ql1o_rE+U0*ol zrO=8(R~gKukiq4#w{s3usdKSfXJ#q(gyWm+S%2kYEsB7AdDBErTY!%H44q0KL;e^2%T*dN3M6@@w$J`rY50(-Yc+vy@22EvRP+UvAp z#Yi_&@JRNsP6)4T&&rUML!NnghcVnP1YDbd+OQ#H!Ob0`0)&SBynIyDpib-v*Hq3l z+sXw_icX(^XF2axNo}@LxvijI9IhrD0uJzf*m=;10!VnG!v>d^utgF1psD1B>G7ih zI=zXOK&GKKFOjm?O0%m%Q$B&wvFY_eKmZ-6_}7(O&$rIVDl)3|VCxX6Q%z3T#KVK6 z{m4N7SDIPx&r#)WR5zFlwwQ0*;5-jJ_b;PuKWFPLAl_~C_o zC))u3VyPM>5-aa<4bt`U`d0au;@x=yAJlm%dzGAPXP>c1n!#yGBjg6|Kb*_}ZQ*$# zN`+9yGY%^*>0&qQ=BehUs}Rny?O-EKJ|Rq7LP@Gutt1qiHb_&;owX7y;{kB9*Xrs| zBmh`4ftTB#kSyHU-@;?H8|a)lAKu@T4XYYfx-50GMJC%B#XT_q+!gzH^j= zY9(x|oWP*KErQ$&t0Amg`gD*jN9%9eS3;VS`L>Kq46{Vn)Z@B%B4t21_AFwC@!VzU zYj0vwhEQ)K=sb&E2cHKl>3%t0IVj3nXSlyKAoE6H2n3rv&wQ{af>UTI=aOm!b@Deb z6xiV~4Nch(XiH!{R@J29p(QZ4=cn?IRDxwj(dW+JW>aa8PLz!ik zkE1AW1bq#q6}&>;C1=(#>NB2;-6(QKe#Z^JkP5Yfnu3=bkR(w^qBe-9w{9tFUa~HocOWy3y6s zzW{G<>57jQ>GPI)4#*8uVR_}xX1XtaOW)CZ(tPeXES!Ee5 z_OeiXrFKI{_!o7LwF)>Lnm$5P1->4Dp`hy2?M0yxR(yCZ1EI0W~I~`Wqn{YTBGbv|=je~bp((SzOnk-}v{>tulVuEJ6h?Cv6 zh_jb0h2kVRkx2bvEe#xXxGS1jfRnwd9n+->%*b2pXZ9$R7W@RO<11cZAcdH39$tC|p4xik`b`tkklHK%aLa{&5^UShhb#n@0r5Y7&6YRXP<=Phd&r78UTHf3IcELI9YxNObgsMxZ!4FR29FdBy! z?0DN?*0rHB%gOhci{)G*eV21?z|5Xt1-fgOEXV(V%D86!jcExoVe0bZlte)g@BrpDCeNJmB;m zUg!9$LI?NSvdQ*yFYw^x3tK&B($mxtEU>EHtxtrW5c+_yCA-mw4C>q`^9PrAQ?~Ee z*;s9xXVY6h2)u>diOEE6;J5cHi+}FyPIx0Ho4xdSQ!zKx=TzL13PM_UU!()}zcrFv zy|L)#$i?54s?{RGupYRyC-=puhG4(c75sKpiJsh*J-o+}6P*I!t&*~Wu4F3tSK-t6 z#$NCd_QeaJe|5FAbDd3-;>CYSN|@c3%ipsqk&c6O#Ux&b0q)3F+qzdQ@o;>hir%g| z0d7TbjiS?}fxh!fRmE(zoZ*0I3S*lRA)hYJJ-4+)0qu5snKl9zs0sla6iwo6q#q+n z+vh^J7Z~1^mh%@r-UVcDS!u@2?z|xj!VEgR#JLO0@7_}BJXJQ3k`t) zboNgxx!EFRFud}z$CLN#;e;IUf<{tk@R$K~C!zr~tQyEe9%_G5uu@LSI)$FsiW1=k zp2~(=_E&2O8`LtgBmg^cn|&F{jP_Y>KgOzWU>in~xjJRsFd9y?_Kr5$^MqD+Q*1V zxdreLaaMk1nj&lv`1GLzqH~x*`-c7cj$32NY`+bZk^i5}OPV7P$F6)7+NVvU!ZE-` zvVtIO*@R5q+Z-I|mKHEen=O0S1@~QX0l*O7hF@x-rx9T}Vr|=J>a5}WYB)y54AK=c zC{f}#V3MKj4u3(UB&>cv#N%!b;7#8oTn`_K%Std;`oy5ML>Qr(Qmsm-~3)LbLj> zbo9opS&ERpo@TVcX0YGi#?_`E2-_h6HJ%Ab2zjeHoRt#>N!_;mJ0-69a@lqY2y(q= zlv5H%S!lQyv7A);IClp@vUkjz6oRpxbbL0^Xb@hPWpd!Bx?cQdulgW%HxyVQ5(Aqp zhR_XM7u1fdbGS)T|!@F zcEK@&b#yB7w%N9V?)B%Eho0s%+ZDjsTPkL>b$Mqb`P%xNCg>cRD>mmK=Xm9M>W&_| ztR&qlxnw6gQfMd4RiPErJD&v3;&+mY?Ofz5tJ%nIu;ED^1yG_|opR|w@3gr!Cw%Z0;{*yw2o(QrZthy=O16i*5aU7w;VJ<~_Z$;4_Z8l`@+rPU= zhk*m+u%jt6Ob*cFBm;YgPuY52JvC435KB8svaBsV-FAF}JH(dP4vCmv%bqkvR_0f> z&M(==9YlA9Y0pfWwl0Z-Ge})6c(xu%n;f3p&pE?_*?C^zM?j4h4=?Co+h^hwq*DZ7 zo&-C7tP{TDl=neV$7RKaTyq3FJdtEMkCf3CgtlId5vw=UEP5wB{{4sx_Dlt6C3)fw zFura5O21weTG*G# z8{!EO<}ZL+)F!UIINIqnGboB*P)<+0YJqSs)er6c zcME_9lll)%?j{WY6z$;Ompw!dy#`*(E*!LAzZ}?H?*)Qh_`5r&w4zG-c-yph?Bg?01>lEZ>QmW1?ki)2tiiWl9T_lvoVTx zZ%5f}@_Y17B1xnXRY2u1@fWI9EcU<|(WnkqwS9)=Y*%;U0@|ZjL>W+}=AqhAX@Frp zvN{?_Ggz+{)VRA_Bk=N-E4e==gu7NUFO?5e<1;h_#TpQ|6n!0(}4|q#MH-ceR zNC5f*RcJP36%Sb$Uv4^B?0$5wA;`LZ-z1=|xRm-+{CeF`gz;jFw9B01Df>APtQ zK}P}js$P2Y@}-xv9SLfeo{w2^>D0A4uA2J2*(q?|tap8P3h~xs(2NG?P>vl#8NIV#(>O&V2m z*(UKbDbGHS-l6J7?%3z{4m8^P;CKabRawT{y%2P6dIao%VAV>p;CK-Q0cqYBR~`VM z0OW-T!y;9|p3ylY-rnsiCqosp*8|PDZo3$qiGehBr#WvgcZkiz8WkAMJucBBLz#`_ ze{n=m%NNh%H@p$vdYkHi$w-*!$`DCyzIY+n9*K}#B-nKjrWgNUH zOmKK<{RCAj{b8cp>;izGcc+eV7mxTp?KCUu0IAT;P$S{hsg@Htoew0ict?809~0cQDw7NSXSQmmkHeDMH#^W><_SVU3HXXM+lQi zP2NlC< z%jO`eG}d{RsT@rN=XFn|Cmp;Cj6C;)DtZM~Pp-eo4quO9$5L*6e^pLBL;1Eig{Z> z1NllJEbKj6RRaA9qs6}BM-{939%Cj&^|ND+O_c~R^!;20=s+SPp+@B!Uk}%DYswO4 z;&XR|<`^hS702aVhag9BQl}eD58L{8eh*J#O-@4vtY;ZyiC4DFv$D+zI|Vv|fCL(| z9pJg-l&OFzw19HZKqWxYk&}MphBnTsLj~RdZj1g|D>`>OOv#>n$=YlV-e9O~f3ZS6 zT@Tw=pNk41w!%D-0B@aTWQR2X8;jQtnBVI#YtFB&U?lDN>QkK(>r6h7B7#&2WFE`s z)Lj5(k0JpMp(z2P;bUyjG=iIT#$O{vY zWQUV&+b4d*dY}Z4o|}MAj_uYStJ|i*varuD`(d8$JU0iC)EQwpPQ8N6uM)Rv1LUfC zXe2=C0V!D=c!{e~;|Lb%Sk8g2`66eYk_2*QeKmb@jD-E-Ri<;i^X^CN$l?U}_o`6v zWeBg3wrV2B^D|lDwp(3U zW*bgH0XmO0O${KTkL@M<>P{>|^@2Y4N(MeGwH!DLV~FH-aS%pfKm_>L`IhvY4lPwO z;75cf6)6>P?z%dtwXd~JaE2OIqG;5+0Vo6+Z)&p*i?3a??$T`Ej*5k9bCtJ7eUTiz zcZSEV6cY2PvVg{k!Rnxea&8E`_Km!oq5kn2s<=RKg4F@ILWUfSq5k>hlQw(#2-}s| z>+d})7V}Yz4`(Q&s4G-bvTW_udtx=4!^hyQ`@{tTftL-*>zKwq7?VS5zk&CA+o6-b(4nMc!Mv9nWw=865vPMAGf-FrB^d?I1|R3F8|gg-C!8>s=*MwZxC z>@5=kdk7t3wRFKGx8{Fcf=Kiwtft1Ni5CLT(;QV0+HZF28w-cZp%vxOa; z$G>z0wgIl&s=S|vUp0%6+PUhMfC+2}m|VIWEXP~+tMfI->&(RSJbLL^s-2Mt65WoD z#u1T~?P7J{ps$DAMklcOwrZ!NT?9{LGU8UVjkM&<=@`yiD1SD)BZurByR3$-2>VVd zgdW{q6=`0wt*sn{tYlxfNi{VW`ZS(K;`tYUq36_Hb+A=ztdPkj^u~N;*4ga{m?`3} z)QBZQRSw}tb`Hhtgk>O`QA;;G&%g8SN|wjleku;8`dKD9*2A5k?1i^E;_wR0w2a)pM?epRyC7Tn_x$0PWP5yOCW1--qgJ1;=6JK-)M9 z_f;5Ghj`#?IWu&;IBO6|X?i#hgvqwpuG;+)r3QbSO;j+6qJGxY28fK6ocSSM@Veg; z+R>AFhLUf6E6puaR?UNe!y)Qs>KM+n;04W@(L!gi)RF4h~bHrb8?mP&BoH-OiZ5^nao6*UR7 zy`Us#g7qDt3I~xYlgS1?B5SWxU-HdN3~1Bn2*GhKMpMVC@meK_St>aN-9Rv&3Ip4T z-5ii5@H!$|bjQ2T==P(I{>(j9SNL3rMU<9{bRF1AE=i{mX$Vq@Xg2^H`pkIh~(k;aULs47Qb3*3eMFh}HV7~sGQRjB^v zv8IX2F`jcp=+@$lvjW#t0x8>jU&)PZ$!QHkSmr*?!h{1a`{! zo4s+K8n1+v!cR`0gV%1ghuB=hcG4h+CdqX&!ySMb(K}e;qb;Y0;egp-J4NjX+mK}( zU12aE3+@g8gP|*ttdeN0TDpptXATi6CgG8$y+-^2-C)h z>x94UNaze|HJk>Z3KrPB1R(JlC-UH2ig^QCT5n!X611RE95!+NtM~~RoPhg!_dB&= z<%p1}1A%(k5+h!awhsHv2so;}L&wHo4|}1Y97`K6pW~rzpPFl^Dp^1uEgb@96M$|i z`bS)hF!!Vq0IbhuqS9_@$4fw)=0aIQqiXts4Id6b(Hyk1EXKBg+m z6-=P=G^xH$)geK6v3H#=)m^-R!6ftfDqlO24UznjHq>f}q}#a|i(%UA6(xeh0~8CV zl^}DZPJf;MEUq||Jo#?ipbz3>>&0S}z;&1P6cA;nEfg2`#^8Y5(z zFV)!p)sd}J$>`v7vSc{E8gPc&Pkpzu($8tK3b)`8AbwjwSDqs&`gJrsqKppwUO1Pg zsm*~Wl>456TW{3Ho1k5N!^GdFP%dEwOk3%Z<2eHR7L@ez>|C+@wfqUle87t-9oo)!^k{H;(R#CAI^2v z(*YDuGSsoGmUPbhKF@vcO;)X{TD8`j2fNC}nF_ zPA--b+*Y%PYlAxYj#Un8hzga}+$$Ka{#U26kD7ynN3!Lwy-&|V6#kP4GnHRg!Tl)7 zNBE*dSF9tRrL)Cl9+Ck&3`2Zhi5gF*rs=LZgN8^xJ931U7aVE=i2j|&eH7wIC*v2l z{BN~XO~AKOlP*OJf&&8$q^RkRpPwCKRL8E|b_)d&hSRKM+f7LON|@y@zK)GS8<&fUn@7R$C(iLs%lzZn<3@#VJ-hmCL3d|?Mq1uswzaB2GMAHTyj`5h= zXGwM2tw9Uls*7=5Q0;mfUeSwpzmBuN2N%|kc&~~2NJ^lI{&9-1$^O-;gF2X+2~cfC z->1!S1H=kx$3Glv0WzPY4*jtcuZRS7x0~haajsVh7(1a?OLyo^&e;4PT3qoJ?@QsN zBfyM<8D!I8j0p3!p|QCNH#IjOjSorIv5>T(U~g^2N8n_)SEYfQFZt-E zl*Revx_w0zNim){>dz!KlLiU=t-2w^A)+J(z>w7Ws_L>6nq8eKk5o8k&7oUcr|Or0 z&Tvk!$)P0-FkPvNAP=ZX_*m*!ajse6rNR#f_OnfPpH*ie>WQlRJEL$+C zPy;Y~n{AWVMJpvaZ81>|9ItSbr4PQQbRfH$QaQc$M#$6DlcD`uR1&^O)snx9B37B| zMD4v6ewls*ur%+6M=?~6FY09z`s-Dcg5&WK@vltA%?gV9Zj=w!ZP)LUr#K{ChkEA@ zq4~?fTOpu(V5wHQV1E10o=MTIa#5G727H(2-l2;9s`tQkc7AXvRe4q0Al`@U8%=Z|Xq+)MTD zvviK);GI}hIbj!D6(jPKfjG7FI9zU`#^*RE$5tbW{gmm2n}HWJ9Nycd2_bG1jkN)kRgox+`^>`XKd0{{%3qFs|bN;FzQUXyYAieHD`Gb9Yq` z;m#^N0A19X@-2)U`q`AqJQL1Fxe{T<8fj&>-H8oOWuBX&Q}1qSNT372VTbOW~tInrloGI&`;N4_w2&ttdyMMu9>)OfkkyMV{ zZ}1(b5Ke*h+qLrK7vmenKzb6v)azEb&PI^BFit*sH`IW;7`5H>xgU;518}G$O{^!f zt6Ry9ao_3@Y?mXL<6i>JJNNd4fzmso0ldxv#7tETqzN?zWugr^NLv&}HZC8PGB{GI zJ;#oh%NMFsl(>YBk;SEQ36W0p0ps1ysP3rL_BOuaxVW{B2qZD}qm>X$l&K&vww z=~dx?Fv|>rO2~~89)xJGBDsno>yF+yPUKYWyO#158gg)cCV}pj>TK&o`i{&efB?Vb z^GkG98n0WnnnZRf;k+QHT$?h6Y}1vl(7`3^BAhCbE*ijp`wHowoK*sx3Np`-Rt;#Z zw)}dzm+RQu8{-U&dgG19{7K_3Gkiu&hmRq$`7j0cQc9@v8mHcMYk3PxM*lqsGuesx z=1D5R?UH<)h1Ve)h+neIBYfc|tq{^B=r=VP5}|19l5K=+WtPj)G1+anmYh+DoQTU! zD#TLaIIC!;Cr=5TQ?6au+;T5U$j`i@r|MpwPvO|y1-m_wJ!38Mde7hZFY8T^3{|+6ubCYk1(b#Y_l1qig59K+VoII!gz-xZ^9H0OEv1AS$3QhJ_~{yjbFAvd`FmnZ@IJl`5){Q$S2?EkrGn+WBRZ<^prx(a zbcE%gBZO}szv^@2jj!q`v1aF~*%^E_`#R6dpkhg=WZl6-Y9v8Qf#>*VUHZMPvoBz+ zGRTy=6in8E$4qE%DaK<%CZU@(lv{usJ9?jT?^SrPt)5g&B9C)<7pS_q5AKXW`BOcF zc}8n_Xv+KAILoi9)bg*g6jMtVp4p{D?rCZPl0{ufq69uWoD+Tp8$%SkBm{Rr^Cf4E zd-by!&i~I6dY0c_LYP{QbBEM(F(;A!GVueD>Tl+q+ZzUUQVrGn5(;ff18}9Qp#&Hu zeqKe!cj(bk7Xq!X*tsW1ku(%mD2}!|WhlR#aB2^Yx?)~c87C@OSK2@+WcsN#j^+tf zB;a?xL~_ZE#$22R=uXw`5K!&TuoBSskhgh>Iabq8$y6$@iTZtNEVk~TyhwOUmX}HL zKkrCWf%kRimJ~W36;0LLml-GZ6iA#DLhZUL+UT@Llj9v(fn8djF86vREh^ecJ*GK0 zSChJD$@C*X)#l>tCgZB)+jUxWVh>EM#r~gyrDS&d?%Or#Zw7Qx*doRBDV%HM?o}c) zk5hW?I`wlh?LPsMem(Z9@^bBahCGBOg6U?*l*e@I)yFGH2GrA7>PfYj2Lb;tk{t9zO}rf-~zq zVH1x!pIRBD)-_sEFg2;QD+Ac*xOK;I)nF-Pap^nt3IMFf@4)k=*<<1mO4)QQu4m5X z8|_zFpLEu(9t%Nn8#2)V3PjT<+rv^ME%pF@G z)+Y*yz8XZvj!CFuDhJhG^=ek5h}P7I%Sg}~e-1B#KV^q}s{Gsv$}s;nW4)_>wk&iA<0vR_=#ZBxTo zAhV{b^5GJ45KmPqmmJ}CD2V9vn3xb2c)wNc8LG-7WsV?A+Ti{9bjop&&?TWE^`GdF zqL3nFOA1zA2CUuGWNI3!a!ylMg;=#Wu1QYnl)uNb;0x0N>f-cFdF$0deCeNl1dnUt z980~phC^1uBk+PWDcuoBG$pBYAf?spAvMN?nwdffJW zYBR>?SQa57R>FL%&i(4Aiiph`7kEhXAqS$~mEI>L-p6PTruS2-6~QlkwALW0PR(#T z2~Hv!uQ*G40bh`Zt1u_#<8~j%cDsiQr3`oq5i@}aKjPgMk~|aV0xAwsPOb5?>ix)> zlycFjy0yj%E6>y<)R3=d*UG0Ux%)h}h~%kr=6v?N9J8?iSwN=0MsyFil2opluN(wW z3HV)I=_Lr#Dekz4^<~#l2@>JBND&(FRl}WRhT}nz%Bk8(5(=8uu8n=VI#>D%%Ii%| zdafVhxr7QnC!gIN-syn`Uu;3|tJ=Pj;CDD~J&q^@Ku!HjSFx5`?5@k!U;s}Wq@L!- zr8%&&BQH^|F1?Cu^ZU1Ro9aFTS&!t*;(xu3#|})W zNpT@lx`^=9H_D}Uowux7^mTmodT~nHRJr2hdX<2Jvc{&yNq`BUP;=-{Hm4YqORM~l&MT5ss0>CqWbdq~76DvgUR9?6IU)Ds zUX`?C{n>~68_JviEVio9zoZPUkjdqY*d4IN(s6+vVnl3xK9RrmW+oBCAYloxp~kCnsD?>eG%g1tCuk+OVO*JH9C`$)Y-XDe~y1 zaB=*tv~bq@hH5Zbkm<1T1+((gW$Ol0yowwF-=v@~85XjYr-ifw1(&My;#4aI=x4Dc zAeM4rfR=RUBv95Y_mIT!Dom_16EEd1VV0s?X=$z}DfHDt4mpLpEeS`rQVPZ^t2h`f z`L{UDG^kQ4S2er_UpaKxg#nenX1VbGa9?+&_VK$f^+Q~83u|WHwj)XofyKlHVs>lV zK|#{OFx+wV5>vIRDQ0J5Nl71t9-j2$OCZ0VJUN{4*C1zR4cK13>aBr@!q_p7aOsHb zcAPUG0Q%BERgLXUegb;C*Lx?;FE6Rxx2n`lZ*)hgj%U;fykfVTw5zkQjK!V^&}+*7 zdv3i#9Jq!pI=PmgmQ|>lK`;}RT#_HVe9efQ8un;Wpe>r9hYFDh4gUJ%Bf3zh4jIsk z&{@@jRS5g$_GAGnH(;9-5^pI_zr8D`kAhbzw(L3wRaWTbYVEJ&Dd_jBT3HCx-Tacr zO+ICaq({zU7h&1%BcD2C7V!WfOsi*22}7rI2y}eVk<&O*C!;xU+ovT66ex0=j+% zDQMiB^YB5=PiqhRqJlZ`D4AHJp|0Hq$6*C&lg6mO>hwtC>k9Xl<2Ud3l3) zO2XPo-hlX4*I`GEqTKtD;Z9y~I^YTgdA?nt`uiw6YF;awk9)bj-kUQW*$ounSQZ{{w4m7D>@PO&{Ur|&69|6LK51i1g4q=D?!-CdN53VX;JCNxgD z+*Z4)ZSqa!+PYChz#rSsz$xdIEd$r$H#hHzr2uKK2hoJGQ7hnGKfwPJ)7t)qOx?2` ztEOy5z67V9oD)eH6lBoPhFEsI{_X(|6fm~njVL3 z07Dya7ZIQ_fo5l{=xrJ>7^q2f&u~5%_HMt6?g+@98QWDip;-eXpt} zzkXobz5ZODu+DWlqhIT*@0dchU&xhR*-0A6!7Nmji1EUSsJmelD0mI|t^3I~Y}}1h z!*5s*5+XIukzl1s90yc5e92>oB>_t2@Oc4whfX|IZBg}UYJ>2qZ+I7_v4^w9*Hb^i zB$=-|`cM%=m$xh0yHZU;;+m|zUSD|7#KQS1w2+kN*s9_wxDQCz@XLi+L9BvLMC&K^ zBkoGgWclR~)%o96Pg^ONXNN1sZc2ahD1c=0FH{;CdNxupI6v1zaH*0<^<9$d$<$(F zhe&f3Je28%P7I_kd91wae$HbvBxD7*@<;#FL$G~riQ3F@Wt$izm2Z%n zG&`2$>DYiWVe*{94C-Erp>vdbo|bX;XtX=rc^?k2{t~>a*Ij;z_G$-y25A2NOwQy# zN=Z&!)t>qSX+B@SbWQJ7H=WP*NA==gAeIb`Yw6f?zNsgvYlMIj&72~53LU?o!7AHa zRxEXPx7qYq+5Gc!0X7Sm)Uwv$+jW$Ryp;Y+=jMkll~OO|3gzXv^f#(2aMbRqh^Osx zAorW=spbN);+9*a0?y4la^35d=cld3Q#{FeyuR12w$8D0`AQuOBaf_Xvt<;)>ftS9 zc@ZQfP><%#Zb^|<)~>*tn?-%(gbfgBZ3sQng^-V~i{AxO2VhJSSp+J)on z#aBPqg;GcK`{-*=bWC7L&d1VnWS2+kg6osi!$*eV{9G!#zc7XnIPTditOJ{2N!-Cx30auYE5{p z@LEW3CCMPuCAUivYTg6y*n+;lOVea-5%n@L`*I_G+Y2KqOLY2b(6WdJRoXrk?Myb) z`nvWHmxX+q6j*hO?#XryIPjncuDIgKJXqJU){14+7o>BjGJswB@x0m!^A0&Xlm-R+W}`figNX0U57~Y?z`v%VGl`p17M&+u{@ml1V?!) z4r{%dv`)lM~7x)?P=swNa_m&nI_lq;ZuSJ*>to5D46I*+*XzIW1L z_xWTYYXlJH#<~-M_sCcrAhLC}^K)jb{ezJdXj*#fkcMpcaETv)%#K~kaZSyR#;uqe zFIbicp<87P!b7)dsajxnH-0}7obDByw{n$8NBh%-1~A@lQjn{6Tvi>M2e~o-@~d$5 ze#!NZG;=_ft{t!5u2lrwKrO^DK#TUurQVuFG$jwElxb{0xJWVe`SdzE=hlF_+Km7J zx1jM*HF}e*sl1lOX}z8bJo}~1tvN#c(AsorrvR`b*~y6sfFoA6F6y}(^c*ILWDQR^ zY46t5XQoeOFpBl%y2cth%~#Lg=k92qKpJw{P<;4NMMpjXpZHCrDm56_51qzS`zlXj zq|rL#xq}&ZMD)kZz~@;xO-?LlxqkQdBXU~RwQvNWl<1Wm9=?huJ#w7X1lG`m5=>ou z<-@wHyAbcpO}!zGU zR@_1N7I46AvYyT#+`PZIB#$xGIXwkJQJ&ZycCM#yp7Xm_l(l*6qO=@1oJ@MTKF-Ip z)2PSwQSVVP4W;#N+3*1BOX({EGM`V~@13<0PMiNU1Kn>-D^#zcsD63p73j)~e^h+7 zgLCO8JoGyXrJ^Hcr7GY^X5cIF_y|C*vNYA%^m5W2*F|qC$vBmq?WX7OvCh}5lI)&2 z2^>j&r2=7H-}vrwYU64R{RP2>m2-AEx~}Tqgj1YP!QG5imZ*T_&pmqwHNm5CgUWAJ z!zr*g=aI@m+3uxYx~hJUO|zBBrT{XPlqMBrQrFxOb#qiyXW}3%ce%+FE;(h8m2J&V zKDiuo+Tu{JV!V#^w;F{>*JI9tqT~(=FLf7>b}5t$kKSuZ*+K2fJ+DM#*Y~X%B|^0r z01c_M%J)n2B#&7mTWConyEroLiZoKnY7v?)oyqwRGICDh{AHY7l7+M^aXQ55$UuTN zGc_q6Z|~(!IVfb`yb>x0*SSbVCNT*&w#vqFQ+LP+%^Vd;?D^FwwL(@k|W{K2w0) z_^G3Br&!Y|C-g^^5ik`W#jSHlMmcjc9(T|Malv++MT!fZZX!|1B^~J0@R=GCs4QD` zC0^t*Pe+sRzI8~VLMZY_E{BDMD%ye%jCbkk%JXwAOzr8dc&x+?>r^Z2SKV-8;-?b( zqgaPDIaN696*}1KQaC8uEz(?U?K)^M`Zw zgCSHlpQNEkBTsgK4Gvn;nn64KUKO|9Ub~IrO38kdRW1$~7YK>DsG$EWxy@(T6_=29 zTp&G4=aQhs*vi>g)d6eo?Mkk%CWV?)0dK4Fx?N_vW&hU&f+Ag6i9XuHtCdU!&<7G& z)a+(ST6(YOFML{CfS>#8BBd+xTsqrkMW=b70yU%Fxq2BsQgvOm0fhtT_f%AycqN^} z)ehAZDMf4i&BiBx39|gRGW66uVDsl_=UFKvIF+sY5zf?VrYSC_du3DmL`MrMA`P`Z zC0fCLd~*ep_`gA9+3rn=8p>Vc6(YQD_7I;o$WN65xj3B0ty$4fFHHUdXGE_Ho{Ij} zs#~r=O{Y^EhW4S(FqNC~-VLOyp6hhpaTLYp!3~0@PBPybjxWNdl*$AQ={&ts*6%^o zBxJg^()cqxFe-T0%t*H(*EP*T^$`0d?vDU&Z>IQ`>0#>}MA^!xhm|{!98nYof8URp^h8U;Qjmp;l^Pigv!1-SXPZ}+oE;S{wJ997qST%r_|4*~e)o|}AZe_7ZT z09N-M+ZcMU5BqJTay`LyE$%X2KaW2}?`~nLt?9yOdP<#3kuIr=WDbght*nbC+eM&g zFCcxV8H#SgG9imN;__^My96I;U48_L>@f8Snh_sp1Z_}DnR+SVO@@#g^$>kb3rB$f zZkZO>lwTkrYnDffNmin0?<>r0hIY#os<+;JTQ@K&a1EGwK}CfWdlz5mL2Kxyi{9QU zjwS~TD&A%Ft}m~9)0N{*94Jl))f7Kmou;aXX1Fi_U%-PRDp5@7uy|33JOZkZ42jiGdTS^HUm~A2VOaOJ-yH+A)U%2_M5BB_H&Rg?$1;zPS?YaOP-vlb)O zjV6MXq9P$Aqnew0YgX1(IiegAh3?|<#fY%F%oR%;c@fDKGA9gfA)e~q{-+9uT4y*E`;9>)Zqd<9`!=6*9 zQL0~#q>gZpv zDv&$lEKqz9=4MxtOd}w2s`^TfbA@ecc2g><^Cnxzz-d8wi5-FeE?ZiqUX3F}9%-Rc ztM(iva(H`*TR7WYd1peH`nlHq{Or&vLhq6hmEzQL%I#mZK#Ei5>c*6fhxZ=C z;lLw@S)p~#ww95#X|Je2%hj}jANIu3N0cHRZw|pxpPbyWH3sA9g2$v2sqm4l&ApWC z`z-&o0dO@(bS7FO>~b)q>1uFrbQDwkiP&w9)2Q{l+Bv@AIguT*ijJ!LRc%gxote*O zyc&)AkyqW30Ln}5T7F&0T0h-a{x@|uxORmg-N|3n0GwQT{KS0fM|ZMsU7(#a6Of2> z6m{;eUy3($&6?!0bK{zuo?X|GNt%;nP2MJXTyAG^l=WGzvMWbYNHLmzlyXM}qfcoG zmFaac<~(MV(kw`%op8tQ;sW>7xC5Y+eMB+2sN!zVOXg?>KcOcr$W`gLwN5^epALlQ zi;U3y;!3&0&2RoOleTZ;3e5@qoFXYSI>{gma#68A{pqUfcRrc}SQw96b38SsI3OA5 zR2@qhYL4Jiv78}2Pd4GBsS}}+%;g%iV7JK|d(H0AcO=2eXl=I?RTou2u-z5)uK%y= zBul59%N6$ek(aJPbzhz&zgEH6vV8^EY3_T+X&sK9sisVjmCiYQXQYkx{wRT!sxw*JI`Jn`MPSR&-9cw6K zdSYKbSxI~~Zg`E=txq-$N5x}Ck>nJ{e09y@nDvBPGsi(AsbmvB$F->x!Bmu=$-#qX zf+HjIYl$S&5~LK0%B}c=G6CUiGAzKS2KGx043BY-r?A{1=Erqg?K{*T$VuSs28;yT zxRbHM#E%oIEF@vJ%a;RKCVfW~?*%MpZF^*=bk&)8ny>Y^oEr*EZ3AAAI0x)%E^%}8 zC}j9RF&N^?C{9I|nDYND4b%d(o@hLqLqeEy>Zc)>7W96?SM7YNTQ z3)x*GXcAutp11BF`3}-G50!$dNNp$0x6jQtTeja7>Kh3lyp@O`H2~-@O=*aL?JnWo zONnxV8wPGK5?$SXan1LUWeK8l!NglD_#sEC{J88hYo$Vd3_Fn@Fdth?DOO>CfBIS$ za!$LdGH}XuyU5QAphPCRYGeB2L#IqW8C^?DPfGg&J3dmVZvM?p9UIEMM?U4|bb+-w zH8NR%7@ylZHp+Z5t^zNAFYjvA^NA!v9}WB$$x5q*^6C=t*k~aAhmIRTwl=#QW@*Q? z9Hb9S_L`r*$CUwB`QF=8JeSFtI=PTmo*$7&5;qTp!c$X3V16Bcyd*ltDch@bEkQ5# z|CUti<#<@-MYm1uxFv0}Zq+|;9)AvT()ZI%-Bz-NiX7xjoqyaknOlD=j^$ARbTtj( zi2ojUwJs^P4Wkl`LG`5DPvzGQ7Ub=?g2f56@>Z~K=@@OV$%9A?7-Av4!tX=qKiVP@ zlsLF5yDTk7AFEW&0sy{X5Gt>qZKt9ck{wZM*K2$lQOf)W7O5zyNwlKcS?0AWORtm5 z%kq~}CAusu58aw0W_77^@}e_LkCM3z`5Hb zvnp*_MJDd>0?M7hl3&H^MfZbc4f^o!NVu9L5rwpZ(eQD3NHb7TpQ9F&`&R94@bNaZRf(KF3-v zmpM{#{X;yg{1~N=W2XXs=f3kvIq#ZB`(8gP4efp(4K+?tDW2e}GrJPh1guB>%c3C4 z8N&WY7LeOp)Gb-OF!{cDC=N8#p1zb^U&H`6=^i(tRN;RTC*!+^#Vetkszmp^60Usw zQ8(BX)qB68=?HM7$waz&G?Xh-{R&aXttGg zt6Y^pu=ThVD<=o@!ic>GXld3=LAb2NsDJ8@te|ST&6E2`*=P&&Fn9p-@{aJ4!4fJR zeO@9Jt!o8@NEQ7oo&2JrxpoyY0EqgKx^5Dw{%@zNlsude^1hBXXx+l9I=SIIZr?`q zpfxX#M@RNwp52Ir)MWe5(|Su!K0g-3G{Met5lB!MSQk0Ki72tOgu3HY|&&s4F%@Te?)Fa8uLo5SD2Y3fM|Dj1r&(*i}O zxJ$eS-I2g=Y96_8I`;#L)jNtZgz&8xMn5Wob+^3wr^O0a-+iC-s*2ogR&~A8G;RPV z+&LsPlj^Vhy~y7V#PtLY4`U`)g5+2p*P~(fYI>Zj zxHG7G&K+~+N{G;HU1?+j8dn6Y5B_xmrkdSsmO^BbsgjoNX+4(vWLw{AZd6%e1V!l& zWQZ4}O&-rNG7V9b{KUpJN#r>si8X*7JV#ffreu8Tex7~J z(-k(mdI%^FP#`gy2c&mbzQ<2KQGkO|+iF~O@Rj89$IiXeBA0E3s_42wg%y;Ya?-1M z0k!tqWld>z4^P2;jPUiV5~l$r90qFG#}*wQw{uz46#>nQafSX zU9VyPpDhmlNg|HRi`M}7Q>?A1&ZE!>A9btFVz1p+zlz{)miDP>sAkTOT8CLv4lnOg z@>aJc*I%1%fmHHGi<0Ud+8GLgZJwSESs6eWPeD0BEe6%FA?ukG!7sdG3K>uwzq3(2 z5G-_Rm)gm*2lzOF8kE3_Qxdv0PjPrn!9W7j7>q+K!*@t*C3{lKQ!r+ibVf;0q7=PQo_OT;)$iYcOjMGer`%|m%2Dge3SS`K<2 z!-rhbn#aLYsczENhD$}0tS*o)pT3Bj$6!aeag2#|cXj#SX(d0r7a|i6u(>Y;M%C2P z2{I}26IR{IeLTuSb=65EasRoK>k2sU6@05{X9#Dxj&7aT2Wd`CPfm(#@7PM_(doGJI;*%U$#waYU6y<; zwYGxr*U>A6tOuOoS{$V-};DF@#XVDJJCCp)KE}40t&zK(`=^eeL zfYmNKaE+!GVp|@WYvr8mL<(|pN)+IuN?;_Rzm-?pq@YXtH%={EuTPc&+faAp+}JEFQq~Xf9WkEDcDe7?eah+B^dyaUO0$#o ziH|zs6CxGmVz?_!6DfiOLF#U?lghQS^{Ioz%ah_kBs~b!U3G<%R9sr~`)udCifC6U zNue!jSBZ+gIesX3HR-=!g=&9m~w6vPodK+(qCcq>PK zC`UnPnDX4!zRi68xn`FE$-R?KX9?hBoWG}viwa57%|S~R2yO&SCllSJ1^bT0x3I(O zd?`TQu1^lz;G3#-MNBRV3=?xHH;ViZ?yv4jpS?so)ufheQpq}2Oh*omxs>q!^jkl6 zur|Pg+p61(`Vqyx7ijcn=id7B-Xx>8wISecs>|#96Rc);*ZG1gE1;Sy8Hz7R-lL{}g9l9%AT2LG;rJ1&qAK3D z^4z9#6u0%A35M%sSGJR^)KO|23F11BI6bzX<(z?0`=>LKwyWSMB5G15k3zsMHihO- zC8sK@V?^cp?6LqImooem8v79$w^+!&6%``fS{PD{t#Ev^{Z*~}fhLY-D5XG7kK+fv z2C&J z^uQec9VtV_Z=EBpac_m%-S`EF0x_nVMGi=LNPQ9;749@sQdfxLzGwj}Z{=)JUbqCD zUq^K0lNG^lclk@XCS9m)BVL-fk$Ab@GGavN+N19`3gf=3BxC;ba%E71EH}`(xP-(U zyCt={)MF=~i_G1fx-)1Fqk=y#K})t3S{%~`e}0rulB+Lo*WHJ(jq{-MYc+FtBo;n% z@eYT41{Ip9viKdG`UFPt0((<-+uT#_4Ee4Eu>DBG>St1Jara1VVu|^aU0c{9>KV1U z@N-)ME*0ji1j^+S)MZ_KYb+#P5R|b)6nx13w}h8XY{`;bc+&kjc9RIEt_Hmpp35pk z?|_f9#QO>Vq5Xa?$bpYz$yrvZQmlPsDT?z-x}9ak@n6!Zgy|NBf>e+cZK}&EKdE#o zXz|hj!!7u%c8fiV6a&9vU17Htgtgpgrp&)?jc{WR)Gcw$1E6>W4(2?fSF4uB&N@EAuG$?OmG)BC<;8+&i6o`8PvvJek8&d`tz# zmjDZL!O|f{1dBsA`1v&gxO*V_^;H>kcDQ&yOYEamZk9!T3==kap3sF7I4Mo+SnyF* z@oQusyV2T->m02oOFf!uXHD!=qNZ4OG2Qv0ZfPN$WhX+B^Es0u#^1xkr{+_uib!JV zHSSN@1+~+49O4OlLSC@7gH?qFq*qw=>=raaPN7Gb+u$mb9odlcaWn08Nl^`=5ZQ&+a+D=RVhs?rpVFzdKJ8I zS>DD6h-CDti?nQBz5b>g>{f0qOl{t3%yoj81|R}_DBD%^B6HJ( Y2Fn}qW?&LU` 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 Dmd1+; literal 0 HcmV?d00001 diff --git a/components/ordhook-sdk-js/.yarn/releases/yarn-3.6.4.cjs b/components/ordhook-sdk-js/.yarn/releases/yarn-3.6.4.cjs new file mode 100755 index 0000000..ebd9272 --- /dev/null +++ b/components/ordhook-sdk-js/.yarn/releases/yarn-3.6.4.cjs @@ -0,0 +1,874 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Dge=Object.create;var lS=Object.defineProperty;var kge=Object.getOwnPropertyDescriptor;var Rge=Object.getOwnPropertyNames;var Fge=Object.getPrototypeOf,Nge=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Tge=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)lS(r,t,{get:e[t],enumerable:!0})},Lge=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Rge(e))!Nge.call(r,n)&&n!==t&&lS(r,n,{get:()=>e[n],enumerable:!(i=kge(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Dge(Fge(r)):{},Lge(e||!r||!r.__esModule?lS(t,"default",{value:r,enumerable:!0}):t,r));var PK=w((zXe,xK)=>{xK.exports=vK;vK.sync=ife;var QK=J("fs");function rfe(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{FK.exports=kK;kK.sync=nfe;var DK=J("fs");function kK(r,e,t){DK.stat(r,function(i,n){t(i,i?!1:RK(n,e))})}function nfe(r,e){return RK(DK.statSync(r),e)}function RK(r,e){return r.isFile()&&sfe(r,e)}function sfe(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var LK=w((ZXe,TK)=>{var XXe=J("fs"),lI;process.platform==="win32"||global.TESTING_WINDOWS?lI=PK():lI=NK();TK.exports=SS;SS.sync=ofe;function SS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){SS(r,e||{},function(s,o){s?n(s):i(o)})})}lI(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function ofe(r,e){try{return lI.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var YK=w((_Xe,GK)=>{var Dg=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",OK=J("path"),afe=Dg?";":":",MK=LK(),KK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),UK=(r,e)=>{let t=e.colon||afe,i=r.match(/\//)||Dg&&r.match(/\\/)?[""]:[...Dg?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Dg?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Dg?n.split(t):[""];return Dg&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},HK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=UK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(KK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=OK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];MK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},Afe=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=UK(r,e),s=[];for(let o=0;o{"use strict";var jK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};vS.exports=jK;vS.exports.default=jK});var VK=w((eZe,zK)=>{"use strict";var JK=J("path"),lfe=YK(),cfe=qK();function WK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=lfe.sync(r.command,{path:t[cfe({env:t})],pathExt:e?JK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=JK.resolve(n?r.options.cwd:"",o)),o}function ufe(r){return WK(r)||WK(r,!0)}zK.exports=ufe});var XK=w((tZe,PS)=>{"use strict";var xS=/([()\][%!^"`<>&|;, *?])/g;function gfe(r){return r=r.replace(xS,"^$1"),r}function ffe(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(xS,"^$1"),e&&(r=r.replace(xS,"^$1")),r}PS.exports.command=gfe;PS.exports.argument=ffe});var _K=w((rZe,ZK)=>{"use strict";ZK.exports=/^#!(.*)/});var eU=w((iZe,$K)=>{"use strict";var hfe=_K();$K.exports=(r="")=>{let e=r.match(hfe);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var rU=w((nZe,tU)=>{"use strict";var DS=J("fs"),pfe=eU();function dfe(r){let t=Buffer.alloc(150),i;try{i=DS.openSync(r,"r"),DS.readSync(i,t,0,150,0),DS.closeSync(i)}catch{}return pfe(t.toString())}tU.exports=dfe});var oU=w((sZe,sU)=>{"use strict";var Cfe=J("path"),iU=VK(),nU=XK(),mfe=rU(),Efe=process.platform==="win32",Ife=/\.(?:com|exe)$/i,yfe=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function wfe(r){r.file=iU(r);let e=r.file&&mfe(r.file);return e?(r.args.unshift(r.file),r.command=e,iU(r)):r.file}function Bfe(r){if(!Efe)return r;let e=wfe(r),t=!Ife.test(e);if(r.options.forceShell||t){let i=yfe.test(e);r.command=Cfe.normalize(r.command),r.command=nU.command(r.command),r.args=r.args.map(s=>nU.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function bfe(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:Bfe(i)}sU.exports=bfe});var lU=w((oZe,AU)=>{"use strict";var kS=process.platform==="win32";function RS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Qfe(r,e){if(!kS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=aU(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function aU(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawn"):null}function Sfe(r,e){return kS&&r===1&&!e.file?RS(e.original,"spawnSync"):null}AU.exports={hookChildProcess:Qfe,verifyENOENT:aU,verifyENOENTSync:Sfe,notFoundError:RS}});var TS=w((aZe,kg)=>{"use strict";var cU=J("child_process"),FS=oU(),NS=lU();function uU(r,e,t){let i=FS(r,e,t),n=cU.spawn(i.command,i.args,i.options);return NS.hookChildProcess(n,i),n}function vfe(r,e,t){let i=FS(r,e,t),n=cU.spawnSync(i.command,i.args,i.options);return n.error=n.error||NS.verifyENOENTSync(n.status,i),n}kg.exports=uU;kg.exports.spawn=uU;kg.exports.sync=vfe;kg.exports._parse=FS;kg.exports._enoent=NS});var fU=w((AZe,gU)=>{"use strict";function xfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Zl)}xfe(Zl,Error);Zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",_e=me(">&",!1),Pt=">",It=me(">",!1),Or="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ks=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ii="$'",rs=me("$'",!1),fa="'",dA=me("'",!1),cg=function(m){return[{type:"text",text:m}]},is='""',CA=me('""',!1),ha=function(){return{type:"text",text:""}},wp='"',mA=me('"',!1),EA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},Tl=function(m){return{type:"shell",shell:m,quoted:!0}},ug=function(m){return{type:"variable",...m,quoted:!0}},yo=function(m){return{type:"text",text:m}},gg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},Bp=function(m){return{type:"shell",shell:m,quoted:!1}},bp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,wo=Je(["'"],!0,!1),Fn=function(m){return m.join("")},fg=/^[^$"]/,bt=Je(["$",'"'],!0,!1),Ll=`\\ +`,Nn=me(`\\ +`,!1),ns=function(){return""},ss="\\",gt=me("\\",!1),Bo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),ln=function(m){return m},S="\\a",Lt=me("\\a",!1),hg=function(){return"a"},Ol="\\b",Qp=me("\\b",!1),Sp=function(){return"\b"},vp=/^[Ee]/,xp=Je(["E","e"],!1,!1),Pp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),IA=function(){return"\f"},zi="\\n",Ml=me("\\n",!1),Xe=function(){return` +`},pa="\\r",pg=me("\\r",!1),OE=function(){return"\r"},Dp="\\t",ME=me("\\t",!1),ar=function(){return" "},Tn="\\v",Kl=me("\\v",!1),kp=function(){return"\v"},Us=/^[\\'"?]/,da=Je(["\\","'",'"',"?"],!1,!1),cn=function(m){return String.fromCharCode(parseInt(m,16))},Le="\\x",dg=me("\\x",!1),Ul="\\u",Hs=me("\\u",!1),Hl="\\U",yA=me("\\U",!1),Cg=function(m){return String.fromCodePoint(parseInt(m,16))},mg=/^[0-7]/,Ca=Je([["0","7"]],!1,!1),ma=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),bo=nt(),wA="-",Gl=me("-",!1),Gs="+",Yl=me("+",!1),KE=".",Rp=me(".",!1),Eg=function(m,Q,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(Q.join("")+"."+N.join(""))}},Fp=function(m,Q){return{type:"number",value:(m==="-"?-1:1)*parseInt(Q.join(""))}},UE=function(m){return{type:"variable",...m}},jl=function(m){return{type:"variable",name:m}},HE=function(m){return m},Ig="*",BA=me("*",!1),Rr="/",GE=me("/",!1),Ys=function(m,Q,N){return{type:Q==="*"?"multiplication":"division",right:N}},js=function(m,Q){return Q.reduce((N,U)=>({left:N,...U}),m)},yg=function(m,Q,N){return{type:Q==="+"?"addition":"subtraction",right:N}},bA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Ln=me("${",!1),JQ=":-",k1=me(":-",!1),R1=function(m,Q){return{name:m,defaultValue:Q}},WQ=":-}",F1=me(":-}",!1),N1=function(m){return{name:m,defaultValue:[]}},zQ=":+",T1=me(":+",!1),L1=function(m,Q){return{name:m,alternativeValue:Q}},VQ=":+}",O1=me(":+}",!1),M1=function(m){return{name:m,alternativeValue:[]}},XQ=function(m){return{name:m}},K1="$",U1=me("$",!1),H1=function(m){return e.isGlobPattern(m)},G1=function(m){return m},ZQ=/^[a-zA-Z0-9_]/,_Q=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),$Q=function(){return L()},eS=/^[$@*?#a-zA-Z0-9_\-]/,tS=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Y1=/^[(){}<>$|&; \t"']/,wg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),rS=/^[<>&; \t"']/,iS=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),YE=/^[ \t]/,jE=Je([" "," "],!1,!1),b=0,Me=0,QA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function L(){return r.substring(Me,b)}function Z(){return Et(Me,b)}function te(m,Q){throw Q=Q!==void 0?Q:Et(Me,b),Ri([lt(m)],r.substring(Me,b),Q)}function we(m,Q){throw Q=Q!==void 0?Q:Et(Me,b),On(m,Q)}function me(m,Q){return{type:"literal",text:m,ignoreCase:Q}}function Je(m,Q,N){return{type:"class",parts:m,inverted:Q,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var Q=QA[m],N;if(Q)return Q;for(N=m-1;!QA[N];)N--;for(Q=QA[N],Q={line:Q.line,column:Q.column};Nd&&(d=b,E=[]),E.push(m))}function On(m,Q){return new Zl(m,null,null,Q)}function Ri(m,Q,N){return new Zl(Zl.buildMessage(m,Q),m,Q,N)}function SA(){var m,Q;return m=b,Q=Mr(),Q===t&&(Q=null),Q!==t&&(Me=m,Q=s(Q)),m=Q,m}function Mr(){var m,Q,N,U,ce;if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U!==t?(ce=os(),ce===t&&(ce=null),ce!==t?(Me=m,Q=o(Q,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;if(m===t)if(m=b,Q=Kr(),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=Ea(),U===t&&(U=null),U!==t?(Me=m,Q=a(Q,U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function os(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=Mr(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,Q=l(N),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Ea(){var m;return r.charCodeAt(b)===59?(m=c,b++):(m=t,I===0&&be(u)),m===t&&(r.charCodeAt(b)===38?(m=g,b++):(m=t,I===0&&be(f))),m}function Kr(){var m,Q,N;return m=b,Q=j1(),Q!==t?(N=fge(),N===t&&(N=null),N!==t?(Me=m,Q=h(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function fge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=hge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,Q=p(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function hge(){var m;return r.substr(b,2)===C?(m=C,b+=2):(m=t,I===0&&be(y)),m===t&&(r.substr(b,2)===B?(m=B,b+=2):(m=t,I===0&&be(v))),m}function j1(){var m,Q,N;return m=b,Q=Cge(),Q!==t?(N=pge(),N===t&&(N=null),N!==t?(Me=m,Q=D(Q,N),m=Q):(b=m,m=t)):(b=m,m=t),m}function pge(){var m,Q,N,U,ce,Se,ht;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(N=dge(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=j1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,Q=T(N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;return m}function dge(){var m;return r.substr(b,2)===H?(m=H,b+=2):(m=t,I===0&&be(j)),m===t&&(r.charCodeAt(b)===124?(m=$,b++):(m=t,I===0&&be(V))),m}function qE(){var m,Q,N,U,ce,Se;if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t)if(U=W1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Me=m,Q=A(Q,U),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;else b=m,m=t;if(m===t)if(m=b,Q=rK(),Q!==t)if(r.charCodeAt(b)===61?(N=W,b++):(N=t,I===0&&be(_)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,Q=Ae(Q),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t;return m}function Cge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===40?(N=ge,b++):(N=t,I===0&&be(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===41?(ht=O,b++):(ht=t,I===0&&be(F)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Me=m,Q=ue(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t)if(r.charCodeAt(b)===123?(N=pe,b++):(N=t,I===0&&be(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(b)===125?(ht=Fe,b++):(ht=t,I===0&&be(Ne)),ht!==t){for(Bt=[],qr=He();qr!==t;)Bt.push(qr),qr=He();if(Bt!==t){for(qr=[],hi=Np();hi!==t;)qr.push(hi),hi=Np();if(qr!==t){for(hi=[],as=He();as!==t;)hi.push(as),as=He();hi!==t?(Me=m,Q=oe(ce,qr),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t}else b=m,m=t;else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){for(N=[],U=qE();U!==t;)N.push(U),U=qE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=J1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=J1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,Q=le(N,ce),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}else b=m,m=t}else b=m,m=t;if(m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=qE(),U!==t)for(;U!==t;)N.push(U),U=qE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,Q=Be(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t}}}return m}function q1(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t){if(N=[],U=JE(),U!==t)for(;U!==t;)N.push(U),U=JE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,Q=fe(N),m=Q):(b=m,m=t)}else b=m,m=t}else b=m,m=t;return m}function J1(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();if(Q!==t?(N=Np(),N!==t?(Me=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t){for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();Q!==t?(N=JE(),N!==t?(Me=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t)}return m}function Np(){var m,Q,N,U,ce;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(qe.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(ne)),N===t&&(N=null),N!==t?(U=mge(),U!==t?(ce=JE(),ce!==t?(Me=m,Q=Y(N,U,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function mge(){var m;return r.substr(b,2)===he?(m=he,b+=2):(m=t,I===0&&be(ie)),m===t&&(r.substr(b,2)===de?(m=de,b+=2):(m=t,I===0&&be(_e)),m===t&&(r.charCodeAt(b)===62?(m=Pt,b++):(m=t,I===0&&be(It)),m===t&&(r.substr(b,3)===Or?(m=Or,b+=3):(m=t,I===0&&be(ii)),m===t&&(r.substr(b,2)===gi?(m=gi,b+=2):(m=t,I===0&&be(hr)),m===t&&(r.charCodeAt(b)===60?(m=fi,b++):(m=t,I===0&&be(ni))))))),m}function JE(){var m,Q,N;for(m=b,Q=[],N=He();N!==t;)Q.push(N),N=He();return Q!==t?(N=W1(),N!==t?(Me=m,Q=ae(N),m=Q):(b=m,m=t)):(b=m,m=t),m}function W1(){var m,Q,N;if(m=b,Q=[],N=z1(),N!==t)for(;N!==t;)Q.push(N),N=z1();else Q=t;return Q!==t&&(Me=m,Q=Ks(Q)),m=Q,m}function z1(){var m,Q;return m=b,Q=Ege(),Q!==t&&(Me=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=Ige(),Q!==t&&(Me=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=yge(),Q!==t&&(Me=m,Q=pr(Q)),m=Q,m===t&&(m=b,Q=wge(),Q!==t&&(Me=m,Q=pr(Q)),m=Q))),m}function Ege(){var m,Q,N,U;return m=b,r.substr(b,2)===Ii?(Q=Ii,b+=2):(Q=t,I===0&&be(rs)),Q!==t?(N=Qge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Me=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function Ige(){var m,Q,N,U;return m=b,r.charCodeAt(b)===39?(Q=fa,b++):(Q=t,I===0&&be(dA)),Q!==t?(N=Bge(),N!==t?(r.charCodeAt(b)===39?(U=fa,b++):(U=t,I===0&&be(dA)),U!==t?(Me=m,Q=cg(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function yge(){var m,Q,N,U;if(m=b,r.substr(b,2)===is?(Q=is,b+=2):(Q=t,I===0&&be(CA)),Q!==t&&(Me=m,Q=ha()),m=Q,m===t)if(m=b,r.charCodeAt(b)===34?(Q=wp,b++):(Q=t,I===0&&be(mA)),Q!==t){for(N=[],U=V1();U!==t;)N.push(U),U=V1();N!==t?(r.charCodeAt(b)===34?(U=wp,b++):(U=t,I===0&&be(mA)),U!==t?(Me=m,Q=EA(N),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;return m}function wge(){var m,Q,N;if(m=b,Q=[],N=X1(),N!==t)for(;N!==t;)Q.push(N),N=X1();else Q=t;return Q!==t&&(Me=m,Q=EA(Q)),m=Q,m}function V1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Me=m,Q=wr(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Me=m,Q=Tl(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Me=m,Q=ug(Q)),m=Q,m===t&&(m=b,Q=bge(),Q!==t&&(Me=m,Q=yo(Q)),m=Q))),m}function X1(){var m,Q;return m=b,Q=eK(),Q!==t&&(Me=m,Q=gg(Q)),m=Q,m===t&&(m=b,Q=tK(),Q!==t&&(Me=m,Q=Bp(Q)),m=Q,m===t&&(m=b,Q=aS(),Q!==t&&(Me=m,Q=bp(Q)),m=Q,m===t&&(m=b,Q=xge(),Q!==t&&(Me=m,Q=vr(Q)),m=Q,m===t&&(m=b,Q=vge(),Q!==t&&(Me=m,Q=yo(Q)),m=Q)))),m}function Bge(){var m,Q,N;for(m=b,Q=[],se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));N!==t;)Q.push(N),se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo));return Q!==t&&(Me=m,Q=Fn(Q)),m=Q,m}function bge(){var m,Q,N;if(m=b,Q=[],N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt))),N!==t)for(;N!==t;)Q.push(N),N=Z1(),N===t&&(fg.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(bt)));else Q=t;return Q!==t&&(Me=m,Q=Fn(Q)),m=Q,m}function Z1(){var m,Q,N;return m=b,r.substr(b,2)===Ll?(Q=Ll,b+=2):(Q=t,I===0&&be(Nn)),Q!==t&&(Me=m,Q=ns()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Bo.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(At)),N!==t?(Me=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t)),m}function Qge(){var m,Q,N;for(m=b,Q=[],N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));N!==t;)Q.push(N),N=_1(),N===t&&(se.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(wo)));return Q!==t&&(Me=m,Q=Fn(Q)),m=Q,m}function _1(){var m,Q,N;return m=b,r.substr(b,2)===S?(Q=S,b+=2):(Q=t,I===0&&be(Lt)),Q!==t&&(Me=m,Q=hg()),m=Q,m===t&&(m=b,r.substr(b,2)===Ol?(Q=Ol,b+=2):(Q=t,I===0&&be(Qp)),Q!==t&&(Me=m,Q=Sp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(vp.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(xp)),N!==t?(Me=m,Q=Pp(),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===G?(Q=G,b+=2):(Q=t,I===0&&be(yt)),Q!==t&&(Me=m,Q=IA()),m=Q,m===t&&(m=b,r.substr(b,2)===zi?(Q=zi,b+=2):(Q=t,I===0&&be(Ml)),Q!==t&&(Me=m,Q=Xe()),m=Q,m===t&&(m=b,r.substr(b,2)===pa?(Q=pa,b+=2):(Q=t,I===0&&be(pg)),Q!==t&&(Me=m,Q=OE()),m=Q,m===t&&(m=b,r.substr(b,2)===Dp?(Q=Dp,b+=2):(Q=t,I===0&&be(ME)),Q!==t&&(Me=m,Q=ar()),m=Q,m===t&&(m=b,r.substr(b,2)===Tn?(Q=Tn,b+=2):(Q=t,I===0&&be(Kl)),Q!==t&&(Me=m,Q=kp()),m=Q,m===t&&(m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(Us.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(da)),N!==t?(Me=m,Q=ln(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=Sge()))))))))),m}function Sge(){var m,Q,N,U,ce,Se,ht,Bt,qr,hi,as,AS;return m=b,r.charCodeAt(b)===92?(Q=ss,b++):(Q=t,I===0&&be(gt)),Q!==t?(N=nS(),N!==t?(Me=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Le?(Q=Le,b+=2):(Q=t,I===0&&be(dg)),Q!==t?(N=b,U=b,ce=nS(),ce!==t?(Se=Mn(),Se!==t?(ce=[ce,Se],U=ce):(b=U,U=t)):(b=U,U=t),U===t&&(U=nS()),U!==t?N=r.substring(N,b):N=U,N!==t?(Me=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ul?(Q=Ul,b+=2):(Q=t,I===0&&be(Hs)),Q!==t?(N=b,U=b,ce=Mn(),ce!==t?(Se=Mn(),Se!==t?(ht=Mn(),ht!==t?(Bt=Mn(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Me=m,Q=cn(N),m=Q):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Hl?(Q=Hl,b+=2):(Q=t,I===0&&be(yA)),Q!==t?(N=b,U=b,ce=Mn(),ce!==t?(Se=Mn(),Se!==t?(ht=Mn(),ht!==t?(Bt=Mn(),Bt!==t?(qr=Mn(),qr!==t?(hi=Mn(),hi!==t?(as=Mn(),as!==t?(AS=Mn(),AS!==t?(ce=[ce,Se,ht,Bt,qr,hi,as,AS],U=ce):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t)):(b=U,U=t),U!==t?N=r.substring(N,b):N=U,N!==t?(Me=m,Q=Cg(N),m=Q):(b=m,m=t)):(b=m,m=t)))),m}function nS(){var m;return mg.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(Ca)),m}function Mn(){var m;return ma.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(rt)),m}function vge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t)),N!==t)for(;N!==t;)Q.push(N),N=b,r.charCodeAt(b)===92?(U=ss,b++):(U=t,I===0&&be(gt)),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N===t&&(N=b,U=b,I++,ce=iK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t));else Q=t;return Q!==t&&(Me=m,Q=Fn(Q)),m=Q,m}function sS(){var m,Q,N,U,ce,Se;if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;if(N!==t)if(r.charCodeAt(b)===46?(U=KE,b++):(U=t,I===0&&be(Rp)),U!==t){if(ce=[],qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(b))?(Se=r.charAt(b),b++):(Se=t,I===0&&be(ne));else ce=t;ce!==t?(Me=m,Q=Eg(Q,N,ce),m=Q):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;if(m===t){if(m=b,r.charCodeAt(b)===45?(Q=wA,b++):(Q=t,I===0&&be(Gl)),Q===t&&(r.charCodeAt(b)===43?(Q=Gs,b++):(Q=t,I===0&&be(Yl))),Q===t&&(Q=null),Q!==t){if(N=[],qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(b))?(U=r.charAt(b),b++):(U=t,I===0&&be(ne));else N=t;N!==t?(Me=m,Q=Fp(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;if(m===t&&(m=b,Q=aS(),Q!==t&&(Me=m,Q=UE(Q)),m=Q,m===t&&(m=b,Q=ql(),Q!==t&&(Me=m,Q=jl(Q)),m=Q,m===t)))if(m=b,r.charCodeAt(b)===40?(Q=ge,b++):(Q=t,I===0&&be(re)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(b)===41?(Se=O,b++):(Se=t,I===0&&be(F)),Se!==t?(Me=m,Q=HE(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t}return m}function oS(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=sS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===42?(Se=Ig,b++):(Se=t,I===0&&be(BA)),Se===t&&(r.charCodeAt(b)===47?(Se=Rr,b++):(Se=t,I===0&&be(GE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=sS(),Bt!==t?(Me=U,ce=Ys(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Me=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function $1(){var m,Q,N,U,ce,Se,ht,Bt;if(m=b,Q=oS(),Q!==t){for(N=[],U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Me=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t;for(;U!==t;){for(N.push(U),U=b,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(b)===43?(Se=Gs,b++):(Se=t,I===0&&be(Yl)),Se===t&&(r.charCodeAt(b)===45?(Se=wA,b++):(Se=t,I===0&&be(Gl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=oS(),Bt!==t?(Me=U,ce=yg(Q,Se,Bt),U=ce):(b=U,U=t)):(b=U,U=t)}else b=U,U=t;else b=U,U=t}N!==t?(Me=m,Q=js(Q,N),m=Q):(b=m,m=t)}else b=m,m=t;return m}function eK(){var m,Q,N,U,ce,Se;if(m=b,r.substr(b,3)===bA?(Q=bA,b+=3):(Q=t,I===0&&be(R)),Q!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=$1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(b,2)===q?(Se=q,b+=2):(Se=t,I===0&&be(Ce)),Se!==t?(Me=m,Q=Ke(U),m=Q):(b=m,m=t)):(b=m,m=t)}else b=m,m=t;else b=m,m=t}else b=m,m=t;return m}function tK(){var m,Q,N,U;return m=b,r.substr(b,2)===Re?(Q=Re,b+=2):(Q=t,I===0&&be(ze)),Q!==t?(N=Mr(),N!==t?(r.charCodeAt(b)===41?(U=O,b++):(U=t,I===0&&be(F)),U!==t?(Me=m,Q=dt(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m}function aS(){var m,Q,N,U,ce,Se;return m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===JQ?(U=JQ,b+=2):(U=t,I===0&&be(k1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Me=m,Q=R1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===WQ?(U=WQ,b+=3):(U=t,I===0&&be(F1)),U!==t?(Me=m,Q=N1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,2)===zQ?(U=zQ,b+=2):(U=t,I===0&&be(T1)),U!==t?(ce=q1(),ce!==t?(r.charCodeAt(b)===125?(Se=Fe,b++):(Se=t,I===0&&be(Ne)),Se!==t?(Me=m,Q=L1(N,ce),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.substr(b,3)===VQ?(U=VQ,b+=3):(U=t,I===0&&be(O1)),U!==t?(Me=m,Q=M1(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.substr(b,2)===Ft?(Q=Ft,b+=2):(Q=t,I===0&&be(Ln)),Q!==t?(N=ql(),N!==t?(r.charCodeAt(b)===125?(U=Fe,b++):(U=t,I===0&&be(Ne)),U!==t?(Me=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)):(b=m,m=t),m===t&&(m=b,r.charCodeAt(b)===36?(Q=K1,b++):(Q=t,I===0&&be(U1)),Q!==t?(N=ql(),N!==t?(Me=m,Q=XQ(N),m=Q):(b=m,m=t)):(b=m,m=t)))))),m}function xge(){var m,Q,N;return m=b,Q=Pge(),Q!==t?(Me=b,N=H1(Q),N?N=void 0:N=t,N!==t?(Me=m,Q=G1(Q),m=Q):(b=m,m=t)):(b=m,m=t),m}function Pge(){var m,Q,N,U,ce;if(m=b,Q=[],N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t),N!==t)for(;N!==t;)Q.push(N),N=b,U=b,I++,ce=nK(),I--,ce===t?U=void 0:(b=U,U=t),U!==t?(r.length>b?(ce=r.charAt(b),b++):(ce=t,I===0&&be(bo)),ce!==t?(Me=N,U=ln(ce),N=U):(b=N,N=t)):(b=N,N=t);else Q=t;return Q!==t&&(Me=m,Q=Fn(Q)),m=Q,m}function rK(){var m,Q,N;if(m=b,Q=[],ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q)),N!==t)for(;N!==t;)Q.push(N),ZQ.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(_Q));else Q=t;return Q!==t&&(Me=m,Q=$Q()),m=Q,m}function ql(){var m,Q,N;if(m=b,Q=[],eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS)),N!==t)for(;N!==t;)Q.push(N),eS.test(r.charAt(b))?(N=r.charAt(b),b++):(N=t,I===0&&be(tS));else Q=t;return Q!==t&&(Me=m,Q=$Q()),m=Q,m}function iK(){var m;return Y1.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(wg)),m}function nK(){var m;return rS.test(r.charAt(b))?(m=r.charAt(b),b++):(m=t,I===0&&be(iS)),m}function He(){var m,Q;if(m=[],YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE)),Q!==t)for(;Q!==t;)m.push(Q),YE.test(r.charAt(b))?(Q=r.charAt(b),b++):(Q=t,I===0&&be(jE));else m=t;return m}if(k=n(),k!==t&&b===r.length)return k;throw k!==t&&b{"use strict";function Dfe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function $l(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,$l)}Dfe($l,Error);$l.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new $l(ne,null,null,Y)}function oe(ne,Y,he){return new $l($l.buildMessage(ne,Y),ne,Y,he)}function le(){var ne,Y,he,ie;return ne=v,Y=Be(),Y!==t?(r.charCodeAt(v)===47?(he=s,v++):(he=t,$===0&&Fe(o)),he!==t?(ie=Be(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Be(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function Be(){var ne,Y,he,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(he=c,v++):(he=t,$===0&&Fe(u)),he!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,he,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(he=ae(),he!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function ae(){var ne,Y,he;if(ne=v,Y=[],p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C)),he!==t)for(;he!==t;)Y.push(he),p.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,he;if(ne=v,Y=[],y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B)),he!==t)for(;he!==t;)Y.push(he),y.test(r.charAt(v))?(he=r.charAt(v),v++):(he=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function mU(r){return typeof r>"u"||r===null}function Rfe(r){return typeof r=="object"&&r!==null}function Ffe(r){return Array.isArray(r)?r:mU(r)?[]:[r]}function Nfe(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Vp(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Vp.prototype=Object.create(Error.prototype);Vp.prototype.constructor=Vp;Vp.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};EU.exports=Vp});var wU=w((SZe,yU)=>{"use strict";var IU=tc();function HS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}HS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),IU.repeat(" ",e)+i+a+s+` +`+IU.repeat(" ",e+this.position-n+i.length)+"^"};HS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};yU.exports=HS});var si=w((vZe,bU)=>{"use strict";var BU=Ng(),Ofe=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Mfe=["scalar","sequence","mapping"];function Kfe(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function Ufe(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(Ofe.indexOf(t)===-1)throw new BU('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Kfe(e.styleAliases||null),Mfe.indexOf(this.kind)===-1)throw new BU('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}bU.exports=Ufe});var rc=w((xZe,SU)=>{"use strict";var QU=tc(),dI=Ng(),Hfe=si();function GS(r,e,t){var i=[];return r.include.forEach(function(n){t=GS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Gfe(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var Yfe=si();vU.exports=new Yfe("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var DU=w((DZe,PU)=>{"use strict";var jfe=si();PU.exports=new jfe("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var RU=w((kZe,kU)=>{"use strict";var qfe=si();kU.exports=new qfe("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var CI=w((RZe,FU)=>{"use strict";var Jfe=rc();FU.exports=new Jfe({explicit:[xU(),DU(),RU()]})});var TU=w((FZe,NU)=>{"use strict";var Wfe=si();function zfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function Vfe(){return null}function Xfe(r){return r===null}NU.exports=new Wfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:zfe,construct:Vfe,predicate:Xfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var OU=w((NZe,LU)=>{"use strict";var Zfe=si();function _fe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function $fe(r){return r==="true"||r==="True"||r==="TRUE"}function ehe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}LU.exports=new Zfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:_fe,construct:$fe,predicate:ehe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var KU=w((TZe,MU)=>{"use strict";var the=tc(),rhe=si();function ihe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function nhe(r){return 48<=r&&r<=55}function she(r){return 48<=r&&r<=57}function ohe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var GU=w((LZe,HU)=>{"use strict";var UU=tc(),lhe=si(),che=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function uhe(r){return!(r===null||!che.test(r)||r[r.length-1]==="_")}function ghe(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var fhe=/^[-+]?[0-9]+e/;function hhe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(UU.isNegativeZero(r))return"-0.0";return t=r.toString(10),fhe.test(t)?t.replace("e",".e"):t}function phe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||UU.isNegativeZero(r))}HU.exports=new lhe("tag:yaml.org,2002:float",{kind:"scalar",resolve:uhe,construct:ghe,predicate:phe,represent:hhe,defaultStyle:"lowercase"})});var YS=w((OZe,YU)=>{"use strict";var dhe=rc();YU.exports=new dhe({include:[CI()],implicit:[TU(),OU(),KU(),GU()]})});var jS=w((MZe,jU)=>{"use strict";var Che=rc();jU.exports=new Che({include:[YS()]})});var zU=w((KZe,WU)=>{"use strict";var mhe=si(),qU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),JU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function Ehe(r){return r===null?!1:qU.exec(r)!==null||JU.exec(r)!==null}function Ihe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=qU.exec(r),e===null&&(e=JU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function yhe(r){return r.toISOString()}WU.exports=new mhe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:Ehe,construct:Ihe,instanceOf:Date,represent:yhe})});var XU=w((UZe,VU)=>{"use strict";var whe=si();function Bhe(r){return r==="<<"||r===null}VU.exports=new whe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:Bhe})});var $U=w((HZe,_U)=>{"use strict";var ic;try{ZU=J,ic=ZU("buffer").Buffer}catch{}var ZU,bhe=si(),qS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Qhe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=qS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function She(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=qS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),ic?ic.from?ic.from(a):new ic(a):a}function vhe(r){var e="",t=0,i,n,s=r.length,o=qS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function xhe(r){return ic&&ic.isBuffer(r)}_U.exports=new bhe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Qhe,construct:She,predicate:xhe,represent:vhe})});var t2=w((YZe,e2)=>{"use strict";var Phe=si(),Dhe=Object.prototype.hasOwnProperty,khe=Object.prototype.toString;function Rhe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Nhe=si(),The=Object.prototype.toString;function Lhe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Mhe=si(),Khe=Object.prototype.hasOwnProperty;function Uhe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Khe.call(t,e)&&t[e]!==null)return!1;return!0}function Hhe(r){return r!==null?r:{}}n2.exports=new Mhe("tag:yaml.org,2002:set",{kind:"mapping",resolve:Uhe,construct:Hhe})});var Lg=w((JZe,o2)=>{"use strict";var Ghe=rc();o2.exports=new Ghe({include:[jS()],implicit:[zU(),XU()],explicit:[$U(),t2(),i2(),s2()]})});var A2=w((WZe,a2)=>{"use strict";var Yhe=si();function jhe(){return!0}function qhe(){}function Jhe(){return""}function Whe(r){return typeof r>"u"}a2.exports=new Yhe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:jhe,construct:qhe,predicate:Whe,represent:Jhe})});var c2=w((zZe,l2)=>{"use strict";var zhe=si();function Vhe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function Xhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function Zhe(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function _he(r){return Object.prototype.toString.call(r)==="[object RegExp]"}l2.exports=new zhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:Vhe,construct:Xhe,predicate:_he,represent:Zhe})});var f2=w((VZe,g2)=>{"use strict";var mI;try{u2=J,mI=u2("esprima")}catch{typeof window<"u"&&(mI=window.esprima)}var u2,$he=si();function epe(r){if(r===null)return!1;try{var e="("+r+")",t=mI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function tpe(r){var e="("+r+")",t=mI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function rpe(r){return r.toString()}function ipe(r){return Object.prototype.toString.call(r)==="[object Function]"}g2.exports=new $he("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:epe,construct:tpe,predicate:ipe,represent:rpe})});var Xp=w((ZZe,p2)=>{"use strict";var h2=rc();p2.exports=h2.DEFAULT=new h2({include:[Lg()],explicit:[A2(),c2(),f2()]})});var N2=w((_Ze,Zp)=>{"use strict";var Ba=tc(),w2=Ng(),npe=wU(),B2=Lg(),spe=Xp(),kA=Object.prototype.hasOwnProperty,EI=1,b2=2,Q2=3,II=4,JS=1,ope=2,d2=3,ape=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,Ape=/[\x85\u2028\u2029]/,lpe=/[,\[\]\{\}]/,S2=/^(?:!|!!|![a-z\-]+!)$/i,v2=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function C2(r){return Object.prototype.toString.call(r)}function xo(r){return r===10||r===13}function sc(r){return r===9||r===32}function fn(r){return r===9||r===32||r===10||r===13}function Og(r){return r===44||r===91||r===93||r===123||r===125}function cpe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function upe(r){return r===120?2:r===117?4:r===85?8:0}function gpe(r){return 48<=r&&r<=57?r-48:-1}function m2(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function fpe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var x2=new Array(256),P2=new Array(256);for(nc=0;nc<256;nc++)x2[nc]=m2(nc)?1:0,P2[nc]=m2(nc);var nc;function hpe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||spe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function D2(r,e){return new w2(e,new npe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw D2(r,e)}function yI(r,e){r.onWarning&&r.onWarning.call(null,D2(r,e))}var E2={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&yI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],S2.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),kA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),v2.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function DA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=Ba.repeat(` +`,e-1))}function ppe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),fn(h)||Og(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),fn(n)||t&&Og(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),fn(i))break}else{if(r.position===r.lineStart&&wI(r)||t&&Og(h))break;if(xo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(DA(r,s,o,!1),zS(r,r.line-l),s=o=r.position,a=!1),sc(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return DA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function dpe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(DA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else xo(t)?(DA(r,i,n,!0),zS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function Cpe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return DA(r,t,r.position,!0),r.position++,!0;if(a===92){if(DA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),xo(a))zr(r,!1,e);else if(a<256&&x2[a])r.result+=P2[a],r.position++;else if((o=upe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=cpe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=fpe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else xo(a)?(DA(r,t,i,!0),zS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&wI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function mpe(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),fn(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Kg(r,e,EI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Kg(r,e,EI,!1,!0),C=r.result),g?Mg(r,s,f,p,h,C):c?s.push(Mg(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function Epe(r,e){var t,i,n=JS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)JS===n?n=g===43?d2:ope:ft(r,"repeat of a chomping mode identifier");else if((u=gpe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(sc(g)){do g=r.input.charCodeAt(++r.position);while(sc(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!xo(g)&&g!==0)}for(;g!==0;){for(WS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),xo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Kg(r,e,II,!0,n)&&(p?f=r.result:h=r.result),p||(Mg(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function bpe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;sc(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!xo(o));break}if(xo(o))break;for(t=r.position;o!==0&&!fn(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&WS(r),kA.call(E2,i)?E2[i](r,i,n):yI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Kg(r,r.lineIndent-1,II,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&Ape.test(r.input.slice(e,r.position))&&yI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&wI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=k2(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),R2(r,e,Ba.extend({schema:B2},t))}function Spe(r,e){return F2(r,Ba.extend({schema:B2},e))}Zp.exports.loadAll=R2;Zp.exports.load=F2;Zp.exports.safeLoadAll=Qpe;Zp.exports.safeLoad=Spe});var iH=w(($Ze,_S)=>{"use strict";var $p=tc(),ed=Ng(),vpe=Xp(),xpe=Lg(),G2=Object.prototype.toString,Y2=Object.prototype.hasOwnProperty,Ppe=9,_p=10,Dpe=13,kpe=32,Rpe=33,Fpe=34,j2=35,Npe=37,Tpe=38,Lpe=39,Ope=42,q2=44,Mpe=45,J2=58,Kpe=61,Upe=62,Hpe=63,Gpe=64,W2=91,z2=93,Ype=96,V2=123,jpe=124,X2=125,Ni={};Ni[0]="\\0";Ni[7]="\\a";Ni[8]="\\b";Ni[9]="\\t";Ni[10]="\\n";Ni[11]="\\v";Ni[12]="\\f";Ni[13]="\\r";Ni[27]="\\e";Ni[34]='\\"';Ni[92]="\\\\";Ni[133]="\\N";Ni[160]="\\_";Ni[8232]="\\L";Ni[8233]="\\P";var qpe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function Jpe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&O2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Ug(o))return BI;a=s>0?r.charCodeAt(s-1):null,f=f&&O2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?_2:$2:t>9&&Z2(r)?BI:c?tH:eH}function _pe(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&qpe.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return zpe(r,l)}switch(Zpe(e,o,r.indent,s,a)){case _2:return e;case $2:return"'"+e.replace(/'/g,"''")+"'";case eH:return"|"+M2(e,r.indent)+K2(L2(e,n));case tH:return">"+M2(e,r.indent)+K2(L2($pe(e,s),n));case BI:return'"'+ede(e,s)+'"';default:throw new ed("impossible error: invalid scalar style")}}()}function M2(r,e){var t=Z2(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function K2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function $pe(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,U2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+U2(l,e),n=s}return i}function U2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function ede(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=T2((t-55296)*1024+i-56320+65536),s++;continue}n=Ni[t],e+=!n&&Ug(t)?r[s]:n||T2(t)}return e}function tde(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),oc(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function nde(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new ed("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&_p===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=VS(r,e)),oc(r,e+1,u,!0,g)&&(r.dump&&_p===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function H2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function oc(r,e,t,i,n,s){r.tag=null,r.dump=t,H2(r,t,!1)||H2(r,t,!0);var o=G2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(nde(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(ide(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(rde(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(tde(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&_pe(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new ed("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function sde(r,e){var t=[],i=[],n,s;for(XS(r,t,i),n=0,s=i.length;n{"use strict";var bI=N2(),nH=iH();function QI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=rc();Fr.exports.FAILSAFE_SCHEMA=CI();Fr.exports.JSON_SCHEMA=YS();Fr.exports.CORE_SCHEMA=jS();Fr.exports.DEFAULT_SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_FULL_SCHEMA=Xp();Fr.exports.load=bI.load;Fr.exports.loadAll=bI.loadAll;Fr.exports.safeLoad=bI.safeLoad;Fr.exports.safeLoadAll=bI.safeLoadAll;Fr.exports.dump=nH.dump;Fr.exports.safeDump=nH.safeDump;Fr.exports.YAMLException=Ng();Fr.exports.MINIMAL_SCHEMA=CI();Fr.exports.SAFE_SCHEMA=Lg();Fr.exports.DEFAULT_SCHEMA=Xp();Fr.exports.scan=QI("scan");Fr.exports.parse=QI("parse");Fr.exports.compose=QI("compose");Fr.exports.addConstructor=QI("addConstructor")});var aH=w((t_e,oH)=>{"use strict";var ade=sH();oH.exports=ade});var lH=w((r_e,AH)=>{"use strict";function Ade(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function ac(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ac)}Ade(ac,Error);ac.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Us("correct indentation"),V=" ",W=ar(" ",!1),_=function(R){return R.length===bA*yg},A=function(R){return R.length===(bA+1)*yg},Ae=function(){return bA++,!0},ge=function(){return bA--,!0},re=function(){return pg()},O=Us("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Tn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,ke=Tn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return pg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,Be=Tn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,ae=Tn(["\r",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},he="true",ie=ar("true",!1),de=function(){return!0},_e="false",Pt=ar("false",!1),It=function(){return!1},Or=Us("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ks=/^[^"\\\0-\x1F\x7F]/,pr=Tn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ii='\\"',rs=ar('\\"',!1),fa=function(){return'"'},dA="\\\\",cg=ar("\\\\",!1),is=function(){return"\\"},CA="\\/",ha=ar("\\/",!1),wp=function(){return"/"},mA="\\b",EA=ar("\\b",!1),wr=function(){return"\b"},Tl="\\f",ug=ar("\\f",!1),yo=function(){return"\f"},gg="\\n",Bp=ar("\\n",!1),bp=function(){return` +`},vr="\\r",se=ar("\\r",!1),wo=function(){return"\r"},Fn="\\t",fg=ar("\\t",!1),bt=function(){return" "},Ll="\\u",Nn=ar("\\u",!1),ns=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},ss=/^[0-9a-fA-F]/,gt=Tn([["0","9"],["a","f"],["A","F"]],!1,!1),Bo=Us("blank space"),At=/^[ \t]/,ln=Tn([" "," "],!1,!1),S=Us("white space"),Lt=/^[ \t\n\r]/,hg=Tn([" "," ",` +`,"\r"],!1,!1),Ol=`\r +`,Qp=ar(`\r +`,!1),Sp=` +`,vp=ar(` +`,!1),xp="\r",Pp=ar("\r",!1),G=0,yt=0,IA=[{line:1,column:1}],zi=0,Ml=[],Xe=0,pa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function pg(){return r.substring(yt,G)}function OE(){return cn(yt,G)}function Dp(R,q){throw q=q!==void 0?q:cn(yt,G),Ul([Us(R)],r.substring(yt,G),q)}function ME(R,q){throw q=q!==void 0?q:cn(yt,G),dg(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Tn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Kl(){return{type:"any"}}function kp(){return{type:"end"}}function Us(R){return{type:"other",description:R}}function da(R){var q=IA[R],Ce;if(q)return q;for(Ce=R-1;!IA[Ce];)Ce--;for(q=IA[Ce],q={line:q.line,column:q.column};Cezi&&(zi=G,Ml=[]),Ml.push(R))}function dg(R,q){return new ac(R,null,null,q)}function Ul(R,q,Ce){return new ac(ac.buildMessage(R,q),R,q,Ce)}function Hs(){var R;return R=Cg(),R}function Hl(){var R,q,Ce;for(R=G,q=[],Ce=yA();Ce!==t;)q.push(Ce),Ce=yA();return q!==t&&(yt=R,q=s(q)),R=q,R}function yA(){var R,q,Ce,Ke,Re;return R=G,q=ma(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Le(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=Ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function Cg(){var R,q,Ce;for(R=G,q=[],Ce=mg();Ce!==t;)q.push(Ce),Ce=mg();return q!==t&&(yt=R,q=c(q)),R=q,R}function mg(){var R,q,Ce,Ke,Re,ze,dt,Ft,Ln;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Le(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=js(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Le(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ys(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ys();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ma(),q!==t?(Ce=Gl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ma(),q!==t?(Ce=Gs(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Le(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=Ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=KE(),Re!==t){if(ze=[],dt=Ys(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ys();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ma(),q!==t)if(Ce=Gs(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Le(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Ln=Gs(),Ln!==t?(yt=Re,ze=D(Ce,Ln),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Le(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=Ca(),Ft!==t?(yt=R,q=T(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function Ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=js(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Le(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ys(),Ce!==t?(Ke=bo(),Ke!==t?(Re=Hl(),Re!==t?(ze=wA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=js(),q!==t?(Ce=bo(),Ce!==t?(Ke=Cg(),Ke!==t?(Re=wA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Yl(),q!==t){if(Ce=[],Ke=Ys(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ys();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ma(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=_(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Le($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Le(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function bo(){var R;return yt=G,R=Ae(),R?R=void 0:R=t,R}function wA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Gl(){var R;return R=jl(),R===t&&(R=Rp()),R}function Gs(){var R,q,Ce;if(R=jl(),R===t){if(R=G,q=[],Ce=Eg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Eg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Yl(){var R;return R=Fp(),R===t&&(R=UE(),R===t&&(R=jl(),R===t&&(R=Rp()))),R}function KE(){var R;return R=Fp(),R===t&&(R=jl(),R===t&&(R=Eg())),R}function Rp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(pe.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Le(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(O)),R}function Eg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Le(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Le(Be)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Le(ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function Fp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Le(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function UE(){var R,q;return R=G,r.substr(G,4)===he?(q=he,G+=4):(q=t,Xe===0&&Le(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===_e?(q=_e,G+=5):(q=t,Xe===0&&Le(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function jl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Le(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Le(gi)),q!==t?(Ce=HE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Le(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Le(Or)),R}function HE(){var R,q,Ce;if(R=G,q=[],Ce=Ig(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=Ig();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function Ig(){var R,q,Ce,Ke,Re,ze;return Ks.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(pr)),R===t&&(R=G,r.substr(G,2)===Ii?(q=Ii,G+=2):(q=t,Xe===0&&Le(rs)),q!==t&&(yt=R,q=fa()),R=q,R===t&&(R=G,r.substr(G,2)===dA?(q=dA,G+=2):(q=t,Xe===0&&Le(cg)),q!==t&&(yt=R,q=is()),R=q,R===t&&(R=G,r.substr(G,2)===CA?(q=CA,G+=2):(q=t,Xe===0&&Le(ha)),q!==t&&(yt=R,q=wp()),R=q,R===t&&(R=G,r.substr(G,2)===mA?(q=mA,G+=2):(q=t,Xe===0&&Le(EA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===Tl?(q=Tl,G+=2):(q=t,Xe===0&&Le(ug)),q!==t&&(yt=R,q=yo()),R=q,R===t&&(R=G,r.substr(G,2)===gg?(q=gg,G+=2):(q=t,Xe===0&&Le(Bp)),q!==t&&(yt=R,q=bp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Le(se)),q!==t&&(yt=R,q=wo()),R=q,R===t&&(R=G,r.substr(G,2)===Fn?(q=Fn,G+=2):(q=t,Xe===0&&Le(fg)),q!==t&&(yt=R,q=bt()),R=q,R===t&&(R=G,r.substr(G,2)===Ll?(q=Ll,G+=2):(q=t,Xe===0&&Le(Nn)),q!==t?(Ce=BA(),Ce!==t?(Ke=BA(),Ke!==t?(Re=BA(),Re!==t?(ze=BA(),ze!==t?(yt=R,q=ns(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function BA(){var R;return ss.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Le(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(ln));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(Bo)),R}function GE(){var R,q;if(Xe++,R=[],Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg)),q!==t)for(;q!==t;)R.push(q),Lt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Le(hg));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Le(S)),R}function Ys(){var R,q,Ce,Ke,Re,ze;if(R=G,q=js(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=js(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function js(){var R;return r.substr(G,2)===Ol?(R=Ol,G+=2):(R=t,Xe===0&&Le(Qp)),R===t&&(r.charCodeAt(G)===10?(R=Sp,G++):(R=t,Xe===0&&Le(vp)),R===t&&(r.charCodeAt(G)===13?(R=xp,G++):(R=t,Xe===0&&Le(Pp)))),R}let yg=2,bA=0;if(pa=n(),pa!==t&&G===r.length)return pa;throw pa!==t&&G{"use strict";var hde=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=hde(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};ev.exports=hH;ev.exports.default=hH});var dH=w((A_e,pde)=>{pde.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Ac=w(Un=>{"use strict";var mH=dH(),Po=process.env;Object.defineProperty(Un,"_vendors",{value:mH.map(function(r){return r.constant})});Un.name=null;Un.isPR=null;mH.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return CH(i)});if(Un[r.constant]=t,t)switch(Un.name=r.name,typeof r.pr){case"string":Un.isPR=!!Po[r.pr];break;case"object":"env"in r.pr?Un.isPR=r.pr.env in Po&&Po[r.pr.env]!==r.pr.ne:"any"in r.pr?Un.isPR=r.pr.any.some(function(i){return!!Po[i]}):Un.isPR=CH(r.pr);break;default:Un.isPR=null}});Un.isCI=!!(Po.CI||Po.CONTINUOUS_INTEGRATION||Po.BUILD_NUMBER||Po.RUN_ID||Un.name);function CH(r){return typeof r=="string"?!!Po[r]:Object.keys(r).every(function(e){return Po[e]===r[e]})}});var hn={};ut(hn,{KeyRelationship:()=>lc,applyCascade:()=>od,base64RegExp:()=>BH,colorStringAlphaRegExp:()=>wH,colorStringRegExp:()=>yH,computeKey:()=>RA,getPrintable:()=>Vr,hasExactLength:()=>xH,hasForbiddenKeys:()=>Wde,hasKeyRelationship:()=>av,hasMaxLength:()=>Dde,hasMinLength:()=>Pde,hasMutuallyExclusiveKeys:()=>zde,hasRequiredKeys:()=>Jde,hasUniqueItems:()=>kde,isArray:()=>yde,isAtLeast:()=>Nde,isAtMost:()=>Tde,isBase64:()=>jde,isBoolean:()=>mde,isDate:()=>Ide,isDict:()=>Bde,isEnum:()=>Zi,isHexColor:()=>Yde,isISO8601:()=>Gde,isInExclusiveRange:()=>Ode,isInInclusiveRange:()=>Lde,isInstanceOf:()=>Qde,isInteger:()=>Mde,isJSON:()=>qde,isLiteral:()=>dde,isLowerCase:()=>Kde,isNegative:()=>Rde,isNullable:()=>xde,isNumber:()=>Ede,isObject:()=>bde,isOneOf:()=>Sde,isOptional:()=>vde,isPositive:()=>Fde,isString:()=>sd,isTuple:()=>wde,isUUID4:()=>Hde,isUnknown:()=>vH,isUpperCase:()=>Ude,iso8601RegExp:()=>ov,makeCoercionFn:()=>cc,makeSetter:()=>SH,makeTrait:()=>QH,makeValidator:()=>Qt,matchesRegExp:()=>ad,plural:()=>kI,pushError:()=>pt,simpleKeyRegExp:()=>IH,uuid4RegExp:()=>bH});function Qt({test:r}){return QH(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function RA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:IH.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function cc(r,e){return t=>{let i=r[e];return r[e]=t,cc(r,e).bind(null,i)}}function SH(r,e){return t=>{r[e]=t}}function kI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function dde(r){return Qt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Zi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return Qt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var IH,yH,wH,BH,bH,ov,QH,vH,sd,Cde,mde,Ede,Ide,yde,wde,Bde,bde,Qde,Sde,od,vde,xde,Pde,Dde,xH,kde,Rde,Fde,Nde,Tde,Lde,Ode,Mde,ad,Kde,Ude,Hde,Gde,Yde,jde,qde,Jde,Wde,zde,lc,Vde,av,ls=Tge(()=>{IH=/^[a-zA-Z_][a-zA-Z0-9_]*$/,yH=/^#[0-9a-f]{6}$/i,wH=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,BH=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,bH=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,ov=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,QH=r=>()=>r;vH=()=>Qt({test:(r,e)=>!0});sd=()=>Qt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});Cde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),mde=()=>Qt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=Cde.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),Ede=()=>Qt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),Ide=()=>Qt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&ov.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),yde=(r,{delimiter:e}={})=>Qt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=xH(r.length);return Qt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;aQt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return Qt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:RA(n,l),coercion:cc(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:RA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:SH(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Qde=r=>Qt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Sde=(r,{exclusive:e=!1}={})=>Qt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),od=(r,e)=>Qt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?cc(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),vde=r=>Qt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),xde=r=>Qt({test:(e,t)=>e===null?!0:r(e,t)}),Pde=r=>Qt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Dde=r=>Qt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),xH=r=>Qt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),kde=({map:r}={})=>Qt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sQt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Fde=()=>Qt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Nde=r=>Qt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Tde=r=>Qt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),Lde=(r,e)=>Qt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),Ode=(r,e)=>Qt({test:(t,i)=>t>=r&&tQt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),ad=r=>Qt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Kde=()=>Qt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),Ude=()=>Qt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Hde=()=>Qt({test:(r,e)=>bH.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Gde=()=>Qt({test:(r,e)=>ov.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),Yde=({alpha:r=!1})=>Qt({test:(e,t)=>(r?yH.test(e):wH.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),jde=()=>Qt({test:(r,e)=>BH.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),qde=(r=vH())=>Qt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),Jde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},Wde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${kI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},zde=r=>{let e=new Set(r);return Qt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(lc||(lc={}));Vde={[lc.Forbids]:{expect:!1,message:"forbids using"},[lc.Requires]:{expect:!0,message:"requires using"}},av=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=Vde[e];return Qt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${kI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var qH=w((A$e,jH)=>{"use strict";jH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Jg=w((l$e,pv)=>{"use strict";var gCe=qH(),JH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=gCe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};pv.exports=JH;pv.exports.default=JH});var gd=w((u$e,WH)=>{var fCe="2.0.0",hCe=Number.MAX_SAFE_INTEGER||9007199254740991,pCe=16;WH.exports={SEMVER_SPEC_VERSION:fCe,MAX_LENGTH:256,MAX_SAFE_INTEGER:hCe,MAX_SAFE_COMPONENT_LENGTH:pCe}});var fd=w((g$e,zH)=>{var dCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};zH.exports=dCe});var uc=w((NA,VH)=>{var{MAX_SAFE_COMPONENT_LENGTH:dv}=gd(),CCe=fd();NA=VH.exports={};var mCe=NA.re=[],et=NA.src=[],tt=NA.t={},ECe=0,St=(r,e,t)=>{let i=ECe++;CCe(i,e),tt[r]=i,et[i]=e,mCe[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})\\.(${et[tt.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})\\.(${et[tt.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${et[tt.NUMERICIDENTIFIER]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${et[tt.NUMERICIDENTIFIERLOOSE]}|${et[tt.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${et[tt.PRERELEASEIDENTIFIER]}(?:\\.${et[tt.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${et[tt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${et[tt.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${et[tt.BUILDIDENTIFIER]}(?:\\.${et[tt.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${et[tt.MAINVERSION]}${et[tt.PRERELEASE]}?${et[tt.BUILD]}?`);St("FULL",`^${et[tt.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${et[tt.MAINVERSIONLOOSE]}${et[tt.PRERELEASELOOSE]}?${et[tt.BUILD]}?`);St("LOOSE",`^${et[tt.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${et[tt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${et[tt.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:\\.(${et[tt.XRANGEIDENTIFIER]})(?:${et[tt.PRERELEASE]})?${et[tt.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${et[tt.XRANGEIDENTIFIERLOOSE]})(?:${et[tt.PRERELEASELOOSE]})?${et[tt.BUILD]}?)?)?`);St("XRANGE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${et[tt.GTLT]}\\s*${et[tt.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${dv}})(?:\\.(\\d{1,${dv}}))?(?:\\.(\\d{1,${dv}}))?(?:$|[^\\d])`);St("COERCERTL",et[tt.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${et[tt.LONETILDE]}\\s+`,!0);NA.tildeTrimReplace="$1~";St("TILDE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${et[tt.LONETILDE]}${et[tt.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${et[tt.LONECARET]}\\s+`,!0);NA.caretTrimReplace="$1^";St("CARET",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${et[tt.LONECARET]}${et[tt.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${et[tt.GTLT]}\\s*(${et[tt.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${et[tt.GTLT]}\\s*(${et[tt.LOOSEPLAIN]}|${et[tt.XRANGEPLAIN]})`,!0);NA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${et[tt.XRANGEPLAIN]})\\s+-\\s+(${et[tt.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${et[tt.XRANGEPLAINLOOSE]})\\s+-\\s+(${et[tt.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var hd=w((f$e,XH)=>{var ICe=["includePrerelease","loose","rtl"],yCe=r=>r?typeof r!="object"?{loose:!0}:ICe.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};XH.exports=yCe});var OI=w((h$e,$H)=>{var ZH=/^[0-9]+$/,_H=(r,e)=>{let t=ZH.test(r),i=ZH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:r_H(e,r);$H.exports={compareIdentifiers:_H,rcompareIdentifiers:wCe}});var Li=w((p$e,iG)=>{var MI=fd(),{MAX_LENGTH:eG,MAX_SAFE_INTEGER:KI}=gd(),{re:tG,t:rG}=uc(),BCe=hd(),{compareIdentifiers:pd}=OI(),Yn=class{constructor(e,t){if(t=BCe(t),e instanceof Yn){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>eG)throw new TypeError(`version is longer than ${eG} characters`);MI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?tG[rG.LOOSE]:tG[rG.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>KI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>KI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>KI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};iG.exports=Yn});var gc=w((d$e,aG)=>{var{MAX_LENGTH:bCe}=gd(),{re:nG,t:sG}=uc(),oG=Li(),QCe=hd(),SCe=(r,e)=>{if(e=QCe(e),r instanceof oG)return r;if(typeof r!="string"||r.length>bCe||!(e.loose?nG[sG.LOOSE]:nG[sG.FULL]).test(r))return null;try{return new oG(r,e)}catch{return null}};aG.exports=SCe});var lG=w((C$e,AG)=>{var vCe=gc(),xCe=(r,e)=>{let t=vCe(r,e);return t?t.version:null};AG.exports=xCe});var uG=w((m$e,cG)=>{var PCe=gc(),DCe=(r,e)=>{let t=PCe(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};cG.exports=DCe});var fG=w((E$e,gG)=>{var kCe=Li(),RCe=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new kCe(r,t).inc(e,i).version}catch{return null}};gG.exports=RCe});var cs=w((I$e,pG)=>{var hG=Li(),FCe=(r,e,t)=>new hG(r,t).compare(new hG(e,t));pG.exports=FCe});var UI=w((y$e,dG)=>{var NCe=cs(),TCe=(r,e,t)=>NCe(r,e,t)===0;dG.exports=TCe});var EG=w((w$e,mG)=>{var CG=gc(),LCe=UI(),OCe=(r,e)=>{if(LCe(r,e))return null;{let t=CG(r),i=CG(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};mG.exports=OCe});var yG=w((B$e,IG)=>{var MCe=Li(),KCe=(r,e)=>new MCe(r,e).major;IG.exports=KCe});var BG=w((b$e,wG)=>{var UCe=Li(),HCe=(r,e)=>new UCe(r,e).minor;wG.exports=HCe});var QG=w((Q$e,bG)=>{var GCe=Li(),YCe=(r,e)=>new GCe(r,e).patch;bG.exports=YCe});var vG=w((S$e,SG)=>{var jCe=gc(),qCe=(r,e)=>{let t=jCe(r,e);return t&&t.prerelease.length?t.prerelease:null};SG.exports=qCe});var PG=w((v$e,xG)=>{var JCe=cs(),WCe=(r,e,t)=>JCe(e,r,t);xG.exports=WCe});var kG=w((x$e,DG)=>{var zCe=cs(),VCe=(r,e)=>zCe(r,e,!0);DG.exports=VCe});var HI=w((P$e,FG)=>{var RG=Li(),XCe=(r,e,t)=>{let i=new RG(r,t),n=new RG(e,t);return i.compare(n)||i.compareBuild(n)};FG.exports=XCe});var TG=w((D$e,NG)=>{var ZCe=HI(),_Ce=(r,e)=>r.sort((t,i)=>ZCe(t,i,e));NG.exports=_Ce});var OG=w((k$e,LG)=>{var $Ce=HI(),eme=(r,e)=>r.sort((t,i)=>$Ce(i,t,e));LG.exports=eme});var dd=w((R$e,MG)=>{var tme=cs(),rme=(r,e,t)=>tme(r,e,t)>0;MG.exports=rme});var GI=w((F$e,KG)=>{var ime=cs(),nme=(r,e,t)=>ime(r,e,t)<0;KG.exports=nme});var Cv=w((N$e,UG)=>{var sme=cs(),ome=(r,e,t)=>sme(r,e,t)!==0;UG.exports=ome});var YI=w((T$e,HG)=>{var ame=cs(),Ame=(r,e,t)=>ame(r,e,t)>=0;HG.exports=Ame});var jI=w((L$e,GG)=>{var lme=cs(),cme=(r,e,t)=>lme(r,e,t)<=0;GG.exports=cme});var mv=w((O$e,YG)=>{var ume=UI(),gme=Cv(),fme=dd(),hme=YI(),pme=GI(),dme=jI(),Cme=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ume(r,t,i);case"!=":return gme(r,t,i);case">":return fme(r,t,i);case">=":return hme(r,t,i);case"<":return pme(r,t,i);case"<=":return dme(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};YG.exports=Cme});var qG=w((M$e,jG)=>{var mme=Li(),Eme=gc(),{re:qI,t:JI}=uc(),Ime=(r,e)=>{if(r instanceof mme)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(qI[JI.COERCE]);else{let i;for(;(i=qI[JI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),qI[JI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;qI[JI.COERCERTL].lastIndex=-1}return t===null?null:Eme(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};jG.exports=Ime});var WG=w((K$e,JG)=>{"use strict";JG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var WI=w((U$e,zG)=>{"use strict";zG.exports=Ht;Ht.Node=fc;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var bme=WI(),hc=Symbol("max"),va=Symbol("length"),Wg=Symbol("lengthCalculator"),md=Symbol("allowStale"),pc=Symbol("maxAge"),Sa=Symbol("dispose"),VG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Zs=Symbol("cache"),ZG=Symbol("updateAgeOnGet"),Ev=()=>1,yv=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[hc]=e.max||1/0,i=e.length||Ev;if(this[Wg]=typeof i!="function"?Ev:i,this[md]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[pc]=e.maxAge||0,this[Sa]=e.dispose,this[VG]=e.noDisposeOnSet||!1,this[ZG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[hc]=e||1/0,Cd(this)}get max(){return this[hc]}set allowStale(e){this[md]=!!e}get allowStale(){return this[md]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[pc]=e,Cd(this)}get maxAge(){return this[pc]}set lengthCalculator(e){typeof e!="function"&&(e=Ev),e!==this[Wg]&&(this[Wg]=e,this[va]=0,this[di].forEach(t=>{t.length=this[Wg](t.value,t.key),this[va]+=t.length})),Cd(this)}get lengthCalculator(){return this[Wg]}get length(){return this[va]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;XG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;XG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Sa]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Sa](e.key,e.value)),this[Zs]=new Map,this[di]=new bme,this[va]=0}dump(){return this[di].map(e=>zI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[pc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Wg](t,e);if(this[Zs].has(e)){if(s>this[hc])return zg(this,this[Zs].get(e)),!1;let l=this[Zs].get(e).value;return this[Sa]&&(this[VG]||this[Sa](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[va]+=s-l.length,l.length=s,this.get(e),Cd(this),!0}let o=new wv(e,t,s,n,i);return o.length>this[hc]?(this[Sa]&&this[Sa](e,t),!1):(this[va]+=o.length,this[di].unshift(o),this[Zs].set(e,this[di].head),Cd(this),!0)}has(e){if(!this[Zs].has(e))return!1;let t=this[Zs].get(e).value;return!zI(this,t)}get(e){return Iv(this,e,!0)}peek(e){return Iv(this,e,!1)}pop(){let e=this[di].tail;return e?(zg(this,e),e.value):null}del(e){zg(this,this[Zs].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Zs].forEach((e,t)=>Iv(this,t,!1))}},Iv=(r,e,t)=>{let i=r[Zs].get(e);if(i){let n=i.value;if(zI(r,n)){if(zg(r,i),!r[md])return}else t&&(r[ZG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},zI=(r,e)=>{if(!e||!e.maxAge&&!r[pc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[pc]&&t>r[pc]},Cd=r=>{if(r[va]>r[hc])for(let e=r[di].tail;r[va]>r[hc]&&e!==null;){let t=e.prev;zg(r,e),e=t}},zg=(r,e)=>{if(e){let t=e.value;r[Sa]&&r[Sa](t.key,t.value),r[va]-=t.length,r[Zs].delete(t.key),r[di].removeNode(e)}},wv=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},XG=(r,e,t,i)=>{let n=t.value;zI(r,n)&&(zg(r,t),r[md]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};_G.exports=yv});var us=w((G$e,iY)=>{var dc=class{constructor(e,t){if(t=Sme(t),e instanceof dc)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new dc(e.raw,t);if(e instanceof Bv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!tY(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&kme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=eY.get(i);if(n)return n;let s=this.options.loose,o=s?Oi[bi.HYPHENRANGELOOSE]:Oi[bi.HYPHENRANGE];e=e.replace(o,Hme(this.options.includePrerelease)),Hr("hyphen replace",e),e=e.replace(Oi[bi.COMPARATORTRIM],xme),Hr("comparator trim",e,Oi[bi.COMPARATORTRIM]),e=e.replace(Oi[bi.TILDETRIM],Pme),e=e.replace(Oi[bi.CARETTRIM],Dme),e=e.split(/\s+/).join(" ");let a=s?Oi[bi.COMPARATORLOOSE]:Oi[bi.COMPARATOR],l=e.split(" ").map(f=>Rme(f,this.options)).join(" ").split(/\s+/).map(f=>Ume(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Bv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(tY(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return eY.set(i,g),g}intersects(e,t){if(!(e instanceof dc))throw new TypeError("a Range is required");return this.set.some(i=>rY(i,t)&&e.set.some(n=>rY(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new vme(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",kme=r=>r.value==="",rY=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},Rme=(r,e)=>(Hr("comp",r,e),r=Tme(r,e),Hr("caret",r),r=Fme(r,e),Hr("tildes",r),r=Ome(r,e),Hr("xrange",r),r=Kme(r,e),Hr("stars",r),r),$i=r=>!r||r.toLowerCase()==="x"||r==="*",Fme=(r,e)=>r.trim().split(/\s+/).map(t=>Nme(t,e)).join(" "),Nme=(r,e)=>{let t=e.loose?Oi[bi.TILDELOOSE]:Oi[bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Hr("tilde",r,i,n,s,o,a);let l;return $i(n)?l="":$i(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:$i(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Hr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Hr("tilde return",l),l})},Tme=(r,e)=>r.trim().split(/\s+/).map(t=>Lme(t,e)).join(" "),Lme=(r,e)=>{Hr("caret",r,e);let t=e.loose?Oi[bi.CARETLOOSE]:Oi[bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Hr("caret",r,n,s,o,a,l);let c;return $i(s)?c="":$i(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:$i(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Hr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Hr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Hr("caret return",c),c})},Ome=(r,e)=>(Hr("replaceXRanges",r,e),r.split(/\s+/).map(t=>Mme(t,e)).join(" ")),Mme=(r,e)=>{r=r.trim();let t=e.loose?Oi[bi.XRANGELOOSE]:Oi[bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Hr("xRange",r,i,n,s,o,a,l);let c=$i(s),u=c||$i(o),g=u||$i(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Hr("xRange return",i),i})},Kme=(r,e)=>(Hr("replaceStars",r,e),r.trim().replace(Oi[bi.STAR],"")),Ume=(r,e)=>(Hr("replaceGTE0",r,e),r.trim().replace(Oi[e.includePrerelease?bi.GTE0PRE:bi.GTE0],"")),Hme=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>($i(i)?t="":$i(n)?t=`>=${i}.0.0${r?"-0":""}`:$i(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,$i(c)?l="":$i(u)?l=`<${+c+1}.0.0-0`:$i(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),Gme=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ed=w((Y$e,AY)=>{var Id=Symbol("SemVer ANY"),Vg=class{static get ANY(){return Id}constructor(e,t){if(t=Yme(t),e instanceof Vg){if(e.loose===!!t.loose)return e;e=e.value}Qv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Id?this.value="":this.value=this.operator+this.semver.version,Qv("comp",this)}parse(e){let t=this.options.loose?nY[sY.COMPARATORLOOSE]:nY[sY.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new oY(i[2],this.options.loose):this.semver=Id}toString(){return this.value}test(e){if(Qv("Comparator.test",e,this.options.loose),this.semver===Id||e===Id)return!0;if(typeof e=="string")try{e=new oY(e,this.options)}catch{return!1}return bv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Vg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new aY(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new aY(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=bv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=bv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};AY.exports=Vg;var Yme=hd(),{re:nY,t:sY}=uc(),bv=mv(),Qv=fd(),oY=Li(),aY=us()});var yd=w((j$e,lY)=>{var jme=us(),qme=(r,e,t)=>{try{e=new jme(e,t)}catch{return!1}return e.test(r)};lY.exports=qme});var uY=w((q$e,cY)=>{var Jme=us(),Wme=(r,e)=>new Jme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));cY.exports=Wme});var fY=w((J$e,gY)=>{var zme=Li(),Vme=us(),Xme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new Vme(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new zme(i,t))}),i};gY.exports=Xme});var pY=w((W$e,hY)=>{var Zme=Li(),_me=us(),$me=(r,e,t)=>{let i=null,n=null,s=null;try{s=new _me(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new Zme(i,t))}),i};hY.exports=$me});var mY=w((z$e,CY)=>{var Sv=Li(),eEe=us(),dY=dd(),tEe=(r,e)=>{r=new eEe(r,e);let t=new Sv("0.0.0");if(r.test(t)||(t=new Sv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new Sv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||dY(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||dY(t,s))&&(t=s)}return t&&r.test(t)?t:null};CY.exports=tEe});var IY=w((V$e,EY)=>{var rEe=us(),iEe=(r,e)=>{try{return new rEe(r,e).range||"*"}catch{return null}};EY.exports=iEe});var VI=w((X$e,bY)=>{var nEe=Li(),BY=Ed(),{ANY:sEe}=BY,oEe=us(),aEe=yd(),yY=dd(),wY=GI(),AEe=jI(),lEe=YI(),cEe=(r,e,t,i)=>{r=new nEe(r,i),e=new oEe(e,i);let n,s,o,a,l;switch(t){case">":n=yY,s=AEe,o=wY,a=">",l=">=";break;case"<":n=wY,s=lEe,o=yY,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(aEe(r,e,i))return!1;for(let c=0;c{h.semver===sEe&&(h=new BY(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};bY.exports=cEe});var SY=w((Z$e,QY)=>{var uEe=VI(),gEe=(r,e,t)=>uEe(r,e,">",t);QY.exports=gEe});var xY=w((_$e,vY)=>{var fEe=VI(),hEe=(r,e,t)=>fEe(r,e,"<",t);vY.exports=hEe});var kY=w(($$e,DY)=>{var PY=us(),pEe=(r,e,t)=>(r=new PY(r,t),e=new PY(e,t),r.intersects(e));DY.exports=pEe});var FY=w((eet,RY)=>{var dEe=yd(),CEe=cs();RY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>CEe(u,g,t));for(let u of o)dEe(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var NY=us(),XI=Ed(),{ANY:vv}=XI,wd=yd(),xv=cs(),mEe=(r,e,t={})=>{if(r===e)return!0;r=new NY(r,t),e=new NY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=EEe(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},EEe=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===vv){if(e.length===1&&e[0].semver===vv)return!0;t.includePrerelease?r=[new XI(">=0.0.0-0")]:r=[new XI(">=0.0.0")]}if(e.length===1&&e[0].semver===vv){if(t.includePrerelease)return!0;e=[new XI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=TY(n,h,t):h.operator==="<"||h.operator==="<="?s=LY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=xv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!wd(h,String(n),t)||s&&!wd(h,String(s),t))return null;for(let p of e)if(!wd(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=TY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!wd(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=LY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!wd(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},TY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},LY=(r,e,t)=>{if(!r)return e;let i=xv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};OY.exports=mEe});var Xr=w((ret,KY)=>{var Pv=uc();KY.exports={re:Pv.re,src:Pv.src,tokens:Pv.t,SEMVER_SPEC_VERSION:gd().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:OI().compareIdentifiers,rcompareIdentifiers:OI().rcompareIdentifiers,parse:gc(),valid:lG(),clean:uG(),inc:fG(),diff:EG(),major:yG(),minor:BG(),patch:QG(),prerelease:vG(),compare:cs(),rcompare:PG(),compareLoose:kG(),compareBuild:HI(),sort:TG(),rsort:OG(),gt:dd(),lt:GI(),eq:UI(),neq:Cv(),gte:YI(),lte:jI(),cmp:mv(),coerce:qG(),Comparator:Ed(),Range:us(),satisfies:yd(),toComparators:uY(),maxSatisfying:fY(),minSatisfying:pY(),minVersion:mY(),validRange:IY(),outside:VI(),gtr:SY(),ltr:xY(),intersects:kY(),simplifyRange:FY(),subset:MY()}});var Dv=w(ZI=>{"use strict";Object.defineProperty(ZI,"__esModule",{value:!0});ZI.VERSION=void 0;ZI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof _I=="object"&&_I.exports?_I.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:UY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var ty=w(Xg=>{"use strict";Object.defineProperty(Xg,"__esModule",{value:!0});Xg.clearRegExpParserCache=Xg.getRegExpAst=void 0;var IEe=$I(),ey={},yEe=new IEe.RegExpParser;function wEe(r){var e=r.toString();if(ey.hasOwnProperty(e))return ey[e];var t=yEe.pattern(e);return ey[e]=t,t}Xg.getRegExpAst=wEe;function BEe(){ey={}}Xg.clearRegExpParserCache=BEe});var qY=w(Cn=>{"use strict";var bEe=Cn&&Cn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Cn,"__esModule",{value:!0});Cn.canMatchCharCode=Cn.firstCharOptimizedIndices=Cn.getOptimizedStartCodesIndices=Cn.failedOptimizationPrefixMsg=void 0;var GY=$I(),gs=Gt(),YY=ty(),xa=Rv(),jY="Complement Sets are not supported for first char optimization";Cn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function QEe(r,e){e===void 0&&(e=!1);try{var t=(0,YY.getRegExpAst)(r),i=iy(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===jY)e&&(0,gs.PRINT_WARNING)(""+Cn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,gs.PRINT_ERROR)(Cn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+GY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}Cn.getOptimizedStartCodesIndices=QEe;function iy(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=xa.minOptimizationVal)for(var f=u.from>=xa.minOptimizationVal?u.from:xa.minOptimizationVal,h=u.to,p=(0,xa.charCodeToOptimizedIndex)(f),C=(0,xa.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":iy(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&kv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,gs.values)(e)}Cn.firstCharOptimizedIndices=iy;function ry(r,e,t){var i=(0,xa.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&SEe(r,e)}function SEe(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,xa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,xa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function HY(r,e){return(0,gs.find)(r.value,function(t){if(typeof t=="number")return(0,gs.contains)(e,t);var i=t;return(0,gs.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function kv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,gs.isArray)(r.value)?(0,gs.every)(r.value,kv):kv(r.value):!1}var vEe=function(r){bEe(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,gs.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?HY(t,this.targetCharCodes)===void 0&&(this.found=!0):HY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(GY.BaseRegExpVisitor);function xEe(r,e){if(e instanceof RegExp){var t=(0,YY.getRegExpAst)(e),i=new vEe(r);return i.visit(t),i.found}else return(0,gs.find)(e,function(n){return(0,gs.contains)(r,n.charCodeAt(0))})!==void 0}Cn.canMatchCharCode=xEe});var Rv=w(Ve=>{"use strict";var JY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var WY=$I(),ir=Bd(),xe=Gt(),Zg=qY(),zY=ty(),ko="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function PEe(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=PEe;function DEe(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=DEe;function kEe(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){HEe()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[ko]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[ko];if((0,xe.isRegExp)(D)){var T=D.source;return T.length===1&&T!=="^"&&T!=="$"&&T!=="."&&!D.ignoreCase?T:T.length===2&&T[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],T[1])?T[1]:e.useSticky?Tv(D):Nv(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Tv(j):Nv(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var T=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return T}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=Aj(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(oj(D,v)===!1)return(0,Zg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,Ov),h=(0,xe.map)(s,sj),p=(0,xe.reduce)(i,function(v,D){var T=D.GROUP;return(0,xe.isString)(T)&&T!==ir.Lexer.SKIPPED&&(v[T]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,T){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=Lv(H);Fv(v,j,C[T])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var _=typeof W=="string"?W.charCodeAt(0):W,A=Lv(_);$!==A&&($=A,Fv(v,A,C[T]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Zg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){Fv(v,W,C[T])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Zg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=kEe;function REe(r,e){var t=[],i=VY(r);t=t.concat(i.errors);var n=XY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(FEe(s)),t=t.concat(rj(s)),t=t.concat(ij(s,e)),t=t.concat(nj(s)),t}Ve.validatePatterns=REe;function FEe(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[ko])});return e=e.concat(ZY(t)),e=e.concat($Y(t)),e=e.concat(ej(t)),e=e.concat(tj(t)),e=e.concat(_Y(t)),e}function VY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,ko)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=VY;function XY(r){var e=(0,xe.filter)(r,function(n){var s=n[ko];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=XY;var NEe=/[^\\][\$]/;function ZY(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return NEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=ZY;function _Y(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=_Y;var TEe=/[^\\[][\^]|^\^/;function $Y(r){var e=function(n){JY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(WY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[ko];try{var o=(0,zY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return TEe.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=$Y;function ej(r){var e=(0,xe.filter)(r,function(i){var n=i[ko];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=ej;function tj(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=tj;function rj(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=rj;function ij(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=ij;function nj(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&OEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=nj;function LEe(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function OEe(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Nv(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Nv;function Tv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Tv;function MEe(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=MEe;function KEe(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[ko]===ir.Lexer.NA}),a=Aj(t);return e&&(0,xe.forEach)(o,function(l){var c=oj(l,a);if(c!==!1){var u=aj(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Zg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=KEe;function UEe(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=UEe;function Ov(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=Ov;function sj(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=sj;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=aj;function Aj(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function Fv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var ny=[];function Lv(r){return r255?255+~~(r/255):r}}});var _g=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var Zr=Gt();function GEe(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=GEe;function YEe(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=YEe;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function jEe(r){var e=lj(r);cj(e),gj(e),uj(e),(0,Zr.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=jEe;function lj(r){for(var e=(0,Zr.cloneArr)(r),t=r,i=!0;i;){t=(0,Zr.compact)((0,Zr.flatten)((0,Zr.map)(t,function(s){return s.CATEGORIES})));var n=(0,Zr.difference)(t,e);e=e.concat(n),(0,Zr.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=lj;function cj(r){(0,Zr.forEach)(r,function(e){fj(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Mv(e)&&!(0,Zr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Mv(e)||(e.CATEGORIES=[]),hj(e)||(e.categoryMatches=[]),pj(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=cj;function uj(r){(0,Zr.forEach)(r,function(e){e.categoryMatches=[],(0,Zr.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=uj;function gj(r){(0,Zr.forEach)(r,function(e){Kv([],e)})}Nt.assignCategoriesMapProp=gj;function Kv(r,e){(0,Zr.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,Zr.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,Zr.contains)(i,t)||Kv(i,t)})}Nt.singleAssignCategoriesToksMap=Kv;function fj(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=fj;function Mv(r){return(0,Zr.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Mv;function hj(r){return(0,Zr.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=hj;function pj(r){return(0,Zr.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=pj;function qEe(r){return(0,Zr.has)(r,"tokenTypeIdx")}Nt.isTokenType=qEe});var Uv=w(sy=>{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.defaultLexerErrorProvider=void 0;sy.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var Bd=w(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.Lexer=Cc.LexerDefinitionErrorType=void 0;var _s=Rv(),nr=Gt(),JEe=_g(),WEe=Uv(),zEe=ty(),VEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(VEe=Cc.LexerDefinitionErrorType||(Cc.LexerDefinitionErrorType={}));var bd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:WEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(bd);var XEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=bd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(bd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===bd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=_s.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===bd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[_s.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[_s.DEFAULT_MODE]=_s.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,_s.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,_s.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,JEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,_s.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(_s.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,zEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,T=e,H=T.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),_=[],A=this.trackStartLines?1:void 0,Ae=this.trackStartLines?1:void 0,ge=(0,_s.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,O=this.config.lineTerminatorsPattern,F=0,ue=[],pe=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ii=(0,_s.charCodeToOptimizedIndex)(pr),rs=pe[Ii];return rs===void 0?Fe:rs}var Be=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ii=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);_.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ii})}else{ke.pop();var rs=(0,nr.last)(ke);ue=i.patternIdxToConfig[rs],pe=i.charCodeToPatternIdxToConfig[rs],F=ue.length;var fa=i.canModeBeOptimized[rs]&&i.config.safeMode===!1;pe&&fa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),pe=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ii=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;pe&&Ii?Ne=le:Ne=oe}fe.call(this,t);for(var ae;jc.length){c=a,u=g,ae=_e;break}}}break}}if(c!==null){if(f=c.length,h=ae.group,h!==void 0&&(p=ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,ae.tokenType,A,Ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,Ae=this.computeNewColumn(Ae,f),re===!0&&ae.canLineTerminator===!0){var It=0,Or=void 0,ii=void 0;O.lastIndex=0;do Or=O.test(c),Or===!0&&(ii=O.lastIndex-1,It++);while(Or===!0);It!==0&&(A=A+It,Ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,Ae,f))}this.handleModes(ae,Be,fe,C)}else{for(var gi=j,hr=A,fi=Ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();Cc.Lexer=XEe});var TA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var $s=Gt(),ZEe=Bd(),Hv=_g();function _Ee(r){return bj(r)?r.LABEL:r.name}Qi.tokenLabel=_Ee;function $Ee(r){return r.name}Qi.tokenName=$Ee;function bj(r){return(0,$s.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=bj;var eIe="parent",dj="categories",Cj="label",mj="group",Ej="push_mode",Ij="pop_mode",yj="longer_alt",wj="line_breaks",Bj="start_chars_hint";function Qj(r){return tIe(r)}Qi.createToken=Qj;function tIe(r){var e=r.pattern,t={};if(t.name=r.name,(0,$s.isUndefined)(e)||(t.PATTERN=e),(0,$s.has)(r,eIe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,$s.has)(r,dj)&&(t.CATEGORIES=r[dj]),(0,Hv.augmentTokenTypes)([t]),(0,$s.has)(r,Cj)&&(t.LABEL=r[Cj]),(0,$s.has)(r,mj)&&(t.GROUP=r[mj]),(0,$s.has)(r,Ij)&&(t.POP_MODE=r[Ij]),(0,$s.has)(r,Ej)&&(t.PUSH_MODE=r[Ej]),(0,$s.has)(r,yj)&&(t.LONGER_ALT=r[yj]),(0,$s.has)(r,wj)&&(t.LINE_BREAKS=r[wj]),(0,$s.has)(r,Bj)&&(t.START_CHARS_HINT=r[Bj]),t}Qi.EOF=Qj({name:"EOF",pattern:ZEe.Lexer.NA});(0,Hv.augmentTokenTypes)([Qi.EOF]);function rIe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=rIe;function iIe(r,e){return(0,Hv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=iIe});var mn=w(zt=>{"use strict";var Pa=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.serializeProduction=zt.serializeGrammar=zt.Terminal=zt.Alternation=zt.RepetitionWithSeparator=zt.Repetition=zt.RepetitionMandatoryWithSeparator=zt.RepetitionMandatory=zt.Option=zt.Alternative=zt.Rule=zt.NonTerminal=zt.AbstractProduction=void 0;var Ar=Gt(),nIe=TA(),Ro=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();zt.AbstractProduction=Ro;var Sj=function(r){Pa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(Ro);zt.NonTerminal=Sj;var vj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Rule=vj;var xj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Alternative=xj;var Pj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Option=Pj;var Dj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatory=Dj;var kj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionMandatoryWithSeparator=kj;var Rj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.Repetition=Rj;var Fj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(Ro);zt.RepetitionWithSeparator=Fj;var Nj=function(r){Pa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(Ro);zt.Alternation=Nj;var oy=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();zt.Terminal=oy;function sIe(r){return(0,Ar.map)(r,Qd)}zt.serializeGrammar=sIe;function Qd(r){function e(s){return(0,Ar.map)(s,Qd)}if(r instanceof Sj){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof xj)return{type:"Alternative",definition:e(r.definition)};if(r instanceof Pj)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof Dj)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof kj)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Fj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:Qd(new oy({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof Rj)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof Nj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof oy){var i={type:"Terminal",name:r.terminalType.name,label:(0,nIe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof vj)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}zt.serializeProduction=Qd});var Ay=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.RestWalker=void 0;var Gv=Gt(),En=mn(),oIe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,Gv.forEach)(e.definition,function(n,s){var o=(0,Gv.drop)(e.definition,s+1);if(n instanceof En.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof En.Terminal)i.walkTerminal(n,o,t);else if(n instanceof En.Alternative)i.walkFlat(n,o,t);else if(n instanceof En.Option)i.walkOption(n,o,t);else if(n instanceof En.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof En.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof En.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof En.Repetition)i.walkMany(n,o,t);else if(n instanceof En.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new En.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=Tj(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,Gv.forEach)(e.definition,function(o){var a=new En.Alternative({definition:[o]});n.walk(a,s)})},r}();ay.RestWalker=oIe;function Tj(r,e,t){var i=[new En.Option({definition:[new En.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var $g=w(ly=>{"use strict";Object.defineProperty(ly,"__esModule",{value:!0});ly.GAstVisitor=void 0;var Fo=mn(),aIe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case Fo.NonTerminal:return this.visitNonTerminal(t);case Fo.Alternative:return this.visitAlternative(t);case Fo.Option:return this.visitOption(t);case Fo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case Fo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case Fo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case Fo.Repetition:return this.visitRepetition(t);case Fo.Alternation:return this.visitAlternation(t);case Fo.Terminal:return this.visitTerminal(t);case Fo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();ly.GAstVisitor=aIe});var vd=w(Mi=>{"use strict";var AIe=Mi&&Mi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Mi,"__esModule",{value:!0});Mi.collectMethods=Mi.DslMethodsCollectorVisitor=Mi.getProductionDslName=Mi.isBranchingProd=Mi.isOptionalProd=Mi.isSequenceProd=void 0;var Sd=Gt(),br=mn(),lIe=$g();function cIe(r){return r instanceof br.Alternative||r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionMandatory||r instanceof br.RepetitionMandatoryWithSeparator||r instanceof br.RepetitionWithSeparator||r instanceof br.Terminal||r instanceof br.Rule}Mi.isSequenceProd=cIe;function Yv(r,e){e===void 0&&(e=[]);var t=r instanceof br.Option||r instanceof br.Repetition||r instanceof br.RepetitionWithSeparator;return t?!0:r instanceof br.Alternation?(0,Sd.some)(r.definition,function(i){return Yv(i,e)}):r instanceof br.NonTerminal&&(0,Sd.contains)(e,r)?!1:r instanceof br.AbstractProduction?(r instanceof br.NonTerminal&&e.push(r),(0,Sd.every)(r.definition,function(i){return Yv(i,e)})):!1}Mi.isOptionalProd=Yv;function uIe(r){return r instanceof br.Alternation}Mi.isBranchingProd=uIe;function gIe(r){if(r instanceof br.NonTerminal)return"SUBRULE";if(r instanceof br.Option)return"OPTION";if(r instanceof br.Alternation)return"OR";if(r instanceof br.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof br.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof br.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof br.Repetition)return"MANY";if(r instanceof br.Terminal)return"CONSUME";throw Error("non exhaustive match")}Mi.getProductionDslName=gIe;var Lj=function(r){AIe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,Sd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(lIe.GAstVisitor);Mi.DslMethodsCollectorVisitor=Lj;var cy=new Lj;function fIe(r){cy.reset(),r.accept(cy);var e=cy.dslMethods;return cy.reset(),e}Mi.collectMethods=fIe});var qv=w(No=>{"use strict";Object.defineProperty(No,"__esModule",{value:!0});No.firstForTerminal=No.firstForBranching=No.firstForSequence=No.first=void 0;var uy=Gt(),Oj=mn(),jv=vd();function gy(r){if(r instanceof Oj.NonTerminal)return gy(r.referencedRule);if(r instanceof Oj.Terminal)return Uj(r);if((0,jv.isSequenceProd)(r))return Mj(r);if((0,jv.isBranchingProd)(r))return Kj(r);throw Error("non exhaustive match")}No.first=gy;function Mj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,jv.isOptionalProd)(s),e=e.concat(gy(s)),i=i+1,n=t.length>i;return(0,uy.uniq)(e)}No.firstForSequence=Mj;function Kj(r){var e=(0,uy.map)(r.definition,function(t){return gy(t)});return(0,uy.uniq)((0,uy.flatten)(e))}No.firstForBranching=Kj;function Uj(r){return[r.terminalType]}No.firstForTerminal=Uj});var Jv=w(fy=>{"use strict";Object.defineProperty(fy,"__esModule",{value:!0});fy.IN=void 0;fy.IN="_~IN~_"});var qj=w(fs=>{"use strict";var hIe=fs&&fs.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(fs,"__esModule",{value:!0});fs.buildInProdFollowPrefix=fs.buildBetweenProdsFollowPrefix=fs.computeAllProdsFollows=fs.ResyncFollowsWalker=void 0;var pIe=Ay(),dIe=qv(),Hj=Gt(),Gj=Jv(),CIe=mn(),Yj=function(r){hIe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=jj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new CIe.Alternative({definition:o}),l=(0,dIe.first)(a);this.follows[s]=l},e}(pIe.RestWalker);fs.ResyncFollowsWalker=Yj;function mIe(r){var e={};return(0,Hj.forEach)(r,function(t){var i=new Yj(t).startWalking();(0,Hj.assign)(e,i)}),e}fs.computeAllProdsFollows=mIe;function jj(r,e){return r.name+e+Gj.IN}fs.buildBetweenProdsFollowPrefix=jj;function EIe(r){var e=r.terminalType.name;return e+r.idx+Gj.IN}fs.buildInProdFollowPrefix=EIe});var xd=w(Da=>{"use strict";Object.defineProperty(Da,"__esModule",{value:!0});Da.defaultGrammarValidatorErrorProvider=Da.defaultGrammarResolverErrorProvider=Da.defaultParserErrorProvider=void 0;var ef=TA(),IIe=Gt(),eo=Gt(),Wv=mn(),Jj=vd();Da.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,ef.hasTokenLabel)(e),o=s?"--> "+(0,ef.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,eo.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,eo.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,eo.map)(c,function(h){return"["+(0,eo.map)(h,function(p){return(0,ef.tokenLabel)(p)}).join(", ")+"]"}),g=(0,eo.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,eo.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,eo.map)(e,function(u){return"["+(0,eo.map)(u,function(g){return(0,ef.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Da.defaultParserErrorProvider);Da.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Da.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Wv.Terminal?u.terminalType.name:u instanceof Wv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,eo.first)(e),s=n.idx,o=(0,Jj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,eo.map)(r.prefixPath,function(n){return(0,ef.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,Jj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=IIe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Wv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Vj=w(LA=>{"use strict";var yIe=LA&&LA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(LA,"__esModule",{value:!0});LA.GastRefResolverVisitor=LA.resolveGrammar=void 0;var wIe=jn(),Wj=Gt(),BIe=$g();function bIe(r,e){var t=new zj(r,e);return t.resolveRefs(),t.errors}LA.resolveGrammar=bIe;var zj=function(r){yIe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,Wj.forEach)((0,Wj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:wIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(BIe.GAstVisitor);LA.GastRefResolverVisitor=zj});var Dd=w(Nr=>{"use strict";var mc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var Xj=Ay(),Kt=Gt(),QIe=qv(),kt=mn(),Zj=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(Xj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Zj;var SIe=function(r){mc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,QIe.first)(o),this.found=!0}},e}(Zj);Nr.NextAfterTokenWalker=SIe;var Pd=function(r){mc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(Xj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=Pd;var vIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManyWalker=vIe;var xIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterManySepWalker=xIe;var PIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneWalker=PIe;var DIe=function(r){mc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(Pd);Nr.NextTerminalAfterAtLeastOneSepWalker=DIe;function _j(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=_j(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],O={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(RIe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=kIe;function RIe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var kd=w(Zt=>{"use strict";var tq=Zt&&Zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Zt,"__esModule",{value:!0});Zt.areTokenCategoriesNotUsed=Zt.isStrictPrefixOfPath=Zt.containsPath=Zt.getLookaheadPathsForOptionalProd=Zt.getLookaheadPathsForOr=Zt.lookAheadSequenceFromAlternatives=Zt.buildSingleAlternativeLookaheadFunction=Zt.buildAlternativesLookAheadFunc=Zt.buildLookaheadFuncForOptionalProd=Zt.buildLookaheadFuncForOr=Zt.getProdType=Zt.PROD_TYPE=void 0;var sr=Gt(),$j=Dd(),FIe=Ay(),hy=_g(),OA=mn(),NIe=$g(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=Zt.PROD_TYPE||(Zt.PROD_TYPE={}));function TIe(r){if(r instanceof OA.Option)return oi.OPTION;if(r instanceof OA.Repetition)return oi.REPETITION;if(r instanceof OA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof OA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof OA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof OA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}Zt.getProdType=TIe;function LIe(r,e,t,i,n,s){var o=iq(r,e,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o,i,a,n)}Zt.buildLookaheadFuncForOr=LIe;function OIe(r,e,t,i,n,s){var o=nq(r,e,n,t),a=Xv(o)?hy.tokenStructuredMatcherNoCategories:hy.tokenStructuredMatcher;return s(o[0],a,i)}Zt.buildLookaheadFuncForOptionalProd=OIe;function MIe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Zv=Vt&&Vt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Vt,"__esModule",{value:!0});Vt.checkPrefixAlternativesAmbiguities=Vt.validateSomeNonEmptyLookaheadPath=Vt.validateTooManyAlts=Vt.RepetionCollector=Vt.validateAmbiguousAlternationAlternatives=Vt.validateEmptyOrAlternative=Vt.getFirstNoneTerminal=Vt.validateNoLeftRecursion=Vt.validateRuleIsOverridden=Vt.validateRuleDoesNotAlreadyExist=Vt.OccurrenceValidationCollector=Vt.identifyProductionForDuplicates=Vt.validateGrammar=void 0;var er=Gt(),Qr=Gt(),To=jn(),_v=vd(),tf=kd(),YIe=Dd(),to=mn(),$v=$g();function jIe(r,e,t,i,n){var s=er.map(r,function(h){return qIe(h,i)}),o=er.map(r,function(h){return ex(h,h,i)}),a=[],l=[],c=[];(0,Qr.every)(o,Qr.isEmpty)&&(a=(0,Qr.map)(r,function(h){return cq(h,i)}),l=(0,Qr.map)(r,function(h){return uq(h,e,i)}),c=hq(r,e,i));var u=zIe(r,t,i),g=(0,Qr.map)(r,function(h){return fq(h,i)}),f=(0,Qr.map)(r,function(h){return lq(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}Vt.validateGrammar=jIe;function qIe(r,e){var t=new Aq;r.accept(t);var i=t.allProductions,n=er.groupBy(i,oq),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,_v.getProductionDslName)(l),g={message:c,type:To.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=aq(l);return f&&(g.parameter=f),g});return o}function oq(r){return(0,_v.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+aq(r)}Vt.identifyProductionForDuplicates=oq;function aq(r){return r instanceof to.Terminal?r.terminalType.name:r instanceof to.NonTerminal?r.nonTerminalName:""}var Aq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.OccurrenceValidationCollector=Aq;function lq(r,e,t,i){var n=[],s=(0,Qr.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:To.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}Vt.validateRuleDoesNotAlreadyExist=lq;function JIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:To.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}Vt.validateRuleIsOverridden=JIe;function ex(r,e,t,i){i===void 0&&(i=[]);var n=[],s=Rd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:To.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),ex(r,u,t,g)});return n.concat(er.flatten(c))}Vt.validateNoLeftRecursion=ex;function Rd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof to.NonTerminal)e.push(t.referencedRule);else if(t instanceof to.Alternative||t instanceof to.Option||t instanceof to.RepetitionMandatory||t instanceof to.RepetitionMandatoryWithSeparator||t instanceof to.RepetitionWithSeparator||t instanceof to.Repetition)e=e.concat(Rd(t.definition));else if(t instanceof to.Alternation)e=er.flatten(er.map(t.definition,function(o){return Rd(o.definition)}));else if(!(t instanceof to.Terminal))throw Error("non exhaustive match");var i=(0,_v.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(Rd(s))}else return e}Vt.getFirstNoneTerminal=Rd;var tx=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}($v.GAstVisitor);function cq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,YIe.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:To.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}Vt.validateEmptyOrAlternative=cq;function uq(r,e,t){var i=new tx;r.accept(i);var n=i.alternations;n=(0,Qr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,tf.getLookaheadPathsForOr)(l,r,c,a),g=WIe(u,a,r,t),f=pq(u,a,r,t);return o.concat(g,f)},[]);return s}Vt.validateAmbiguousAlternationAlternatives=uq;var gq=function(r){Zv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}($v.GAstVisitor);Vt.RepetionCollector=gq;function fq(r,e){var t=new tx;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:To.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}Vt.validateTooManyAlts=fq;function hq(r,e,t){var i=[];return(0,Qr.forEach)(r,function(n){var s=new gq;n.accept(s);var o=s.allProductions;(0,Qr.forEach)(o,function(a){var l=(0,tf.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,tf.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Qr.isEmpty)((0,Qr.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:To.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Vt.validateSomeNonEmptyLookaheadPath=hq;function WIe(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Qr.forEach)(l,function(u){var g=[c];(0,Qr.forEach)(r,function(f,h){c!==h&&(0,tf.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,tf.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,Qr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:To.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function pq(r,e,t,i){var n=[],s=(0,Qr.reduce)(r,function(o,a,l){var c=(0,Qr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Qr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Qr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(rf,"__esModule",{value:!0});rf.validateGrammar=rf.resolveGrammar=void 0;var ix=Gt(),VIe=Vj(),XIe=rx(),dq=xd();function ZIe(r){r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarResolverErrorProvider});var e={};return(0,ix.forEach)(r.rules,function(t){e[t.name]=t}),(0,VIe.resolveGrammar)(e,r.errMsgProvider)}rf.resolveGrammar=ZIe;function _Ie(r){return r=(0,ix.defaults)(r,{errMsgProvider:dq.defaultGrammarValidatorErrorProvider}),(0,XIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}rf.validateGrammar=_Ie});var nf=w(In=>{"use strict";var Fd=In&&In.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(In,"__esModule",{value:!0});In.EarlyExitException=In.NotAllInputParsedException=In.NoViableAltException=In.MismatchedTokenException=In.isRecognitionException=void 0;var $Ie=Gt(),mq="MismatchedTokenException",Eq="NoViableAltException",Iq="EarlyExitException",yq="NotAllInputParsedException",wq=[mq,Eq,Iq,yq];Object.freeze(wq);function eye(r){return(0,$Ie.contains)(wq,r.name)}In.isRecognitionException=eye;var py=function(r){Fd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),tye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=mq,s}return e}(py);In.MismatchedTokenException=tye;var rye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Eq,s}return e}(py);In.NoViableAltException=rye;var iye=function(r){Fd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=yq,n}return e}(py);In.NotAllInputParsedException=iye;var nye=function(r){Fd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Iq,s}return e}(py);In.EarlyExitException=nye});var sx=w(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.attemptInRepetitionRecovery=Ki.Recoverable=Ki.InRuleRecoveryException=Ki.IN_RULE_RECOVERY_EXCEPTION=Ki.EOF_FOLLOW_KEY=void 0;var dy=TA(),hs=Gt(),sye=nf(),oye=Jv(),aye=jn();Ki.EOF_FOLLOW_KEY={};Ki.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function nx(r){this.name=Ki.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Ki.InRuleRecoveryException=nx;nx.prototype=Error.prototype;var Aye=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,hs.has)(e,"recoveryEnabled")?e.recoveryEnabled:aye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Bq)},r.prototype.getTokenToInsert=function(e){var t=(0,dy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new sye.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,hs.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new nx("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,hs.isEmpty)(t))return!1;var n=this.LA(1),s=(0,hs.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,hs.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,hs.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Ki.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,hs.map)(t,function(n,s){return s===0?Ki.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,hs.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,hs.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Ki.EOF_FOLLOW_KEY)return[dy.EOF];var t=e.ruleName+e.idxInCallingRule+oye.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,dy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,hs.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,hs.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,hs.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Ki.Recoverable=Aye;function Bq(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=dy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Ki.attemptInRepetitionRecovery=Bq});var Cy=w(Jt=>{"use strict";Object.defineProperty(Jt,"__esModule",{value:!0});Jt.getKeyForAutomaticLookahead=Jt.AT_LEAST_ONE_SEP_IDX=Jt.MANY_SEP_IDX=Jt.AT_LEAST_ONE_IDX=Jt.MANY_IDX=Jt.OPTION_IDX=Jt.OR_IDX=Jt.BITS_FOR_ALT_IDX=Jt.BITS_FOR_RULE_IDX=Jt.BITS_FOR_OCCURRENCE_IDX=Jt.BITS_FOR_METHOD_TYPE=void 0;Jt.BITS_FOR_METHOD_TYPE=4;Jt.BITS_FOR_OCCURRENCE_IDX=8;Jt.BITS_FOR_RULE_IDX=12;Jt.BITS_FOR_ALT_IDX=8;Jt.OR_IDX=1<{"use strict";Object.defineProperty(my,"__esModule",{value:!0});my.LooksAhead=void 0;var ka=kd(),ro=Gt(),bq=jn(),Ra=Cy(),Ec=vd(),cye=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,ro.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:bq.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,ro.has)(e,"maxLookahead")?e.maxLookahead:bq.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,ro.isES2015MapSupported)()?new Map:[],(0,ro.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,ro.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Ec.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,ro.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,Ec.getProductionDslName)(g)+f,function(){var h=(0,ka.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,Ra.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],Ra.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,ro.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_IDX,ka.PROD_TYPE.REPETITION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,Ra.OPTION_IDX,ka.PROD_TYPE.OPTION,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_IDX,ka.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,Ra.AT_LEAST_ONE_SEP_IDX,ka.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))}),(0,ro.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,Ra.MANY_SEP_IDX,ka.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Ec.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,ka.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,Ra.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,ka.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,ka.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,Ra.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();my.LooksAhead=cye});var Sq=w(Lo=>{"use strict";Object.defineProperty(Lo,"__esModule",{value:!0});Lo.addNoneTerminalToCst=Lo.addTerminalToCst=Lo.setNodeLocationFull=Lo.setNodeLocationOnlyOffset=void 0;function uye(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(MA,"__esModule",{value:!0});MA.defineNameProp=MA.functionName=MA.classNameFromInstance=void 0;var pye=Gt();function dye(r){return xq(r.constructor)}MA.classNameFromInstance=dye;var vq="name";function xq(r){var e=r.name;return e||"anonymous"}MA.functionName=xq;function Cye(r,e){var t=Object.getOwnPropertyDescriptor(r,vq);return(0,pye.isUndefined)(t)||t.configurable?(Object.defineProperty(r,vq,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}MA.defineNameProp=Cye});var Fq=w(Si=>{"use strict";Object.defineProperty(Si,"__esModule",{value:!0});Si.validateRedundantMethods=Si.validateMissingCstMethods=Si.validateVisitor=Si.CstVisitorDefinitionError=Si.createBaseVisitorConstructorWithDefaults=Si.createBaseSemanticVisitorConstructor=Si.defaultVisit=void 0;var ps=Gt(),Nd=ox();function Pq(r,e){for(var t=(0,ps.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}Si.createBaseSemanticVisitorConstructor=mye;function Eye(r,e,t){var i=function(){};(0,Nd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,ps.forEach)(e,function(s){n[s]=Pq}),i.prototype=n,i.prototype.constructor=i,i}Si.createBaseVisitorConstructorWithDefaults=Eye;var ax;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(ax=Si.CstVisitorDefinitionError||(Si.CstVisitorDefinitionError={}));function Dq(r,e){var t=kq(r,e),i=Rq(r,e);return t.concat(i)}Si.validateVisitor=Dq;function kq(r,e){var t=(0,ps.map)(e,function(i){if(!(0,ps.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+" CST Visitor.",type:ax.MISSING_METHOD,methodName:i}});return(0,ps.compact)(t)}Si.validateMissingCstMethods=kq;var Iye=["constructor","visit","validateVisitor"];function Rq(r,e){var t=[];for(var i in r)(0,ps.isFunction)(r[i])&&!(0,ps.contains)(Iye,i)&&!(0,ps.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Nd.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:ax.REDUNDANT_METHOD,methodName:i});return t}Si.validateRedundantMethods=Rq});var Tq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.TreeBuilder=void 0;var sf=Sq(),_r=Gt(),Nq=Fq(),yye=jn(),wye=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,_r.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:yye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=_r.NOOP,this.cstFinallyStateUpdate=_r.NOOP,this.cstPostTerminal=_r.NOOP,this.cstPostNonTerminal=_r.NOOP,this.cstPostRule=_r.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationFull,this.setNodeLocationFromNode=sf.setNodeLocationFull,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=sf.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=sf.setNodeLocationOnlyOffset,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=_r.NOOP,this.setNodeLocationFromNode=_r.NOOP,this.cstPostRule=_r.NOOP,this.setInitialNodeLocation=_r.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,sf.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,_r.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Nq.createBaseSemanticVisitorConstructor)(this.className,(0,_r.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,_r.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Nq.createBaseVisitorConstructorWithDefaults)(this.className,(0,_r.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();Ey.TreeBuilder=wye});var Oq=w(Iy=>{"use strict";Object.defineProperty(Iy,"__esModule",{value:!0});Iy.LexerAdapter=void 0;var Lq=jn(),Bye=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Lq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?Lq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();Iy.LexerAdapter=Bye});var Kq=w(yy=>{"use strict";Object.defineProperty(yy,"__esModule",{value:!0});yy.RecognizerApi=void 0;var Mq=Gt(),bye=nf(),Ax=jn(),Qye=xd(),Sye=rx(),vye=mn(),xye=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG),(0,Mq.contains)(this.definedRulesNames,e)){var n=Qye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Ax.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Ax.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Sye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,bye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,vye.serializeGrammar)((0,Mq.values)(this.gastProductionsCache))},r}();yy.RecognizerApi=xye});var Yq=w(By=>{"use strict";Object.defineProperty(By,"__esModule",{value:!0});By.RecognizerEngine=void 0;var Pr=Gt(),qn=Cy(),wy=nf(),Uq=kd(),of=Dd(),Hq=jn(),Pye=sx(),Gq=TA(),Td=_g(),Dye=ox(),kye=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,Dye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Td.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Td.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Gq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Td.tokenStructuredMatcherNoCategories:Td.tokenStructuredMatcher,(0,Td.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:Hq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:Hq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(qn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new wy.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,wy.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new wy.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Pye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Gq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();By.RecognizerEngine=kye});var qq=w(by=>{"use strict";Object.defineProperty(by,"__esModule",{value:!0});by.ErrorHandler=void 0;var lx=nf(),cx=Gt(),jq=kd(),Rye=jn(),Fye=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,cx.has)(e,"errorMessageProvider")?e.errorMessageProvider:Rye.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,lx.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,cx.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,cx.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,jq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new lx.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,jq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new lx.NoViableAltException(c,this.LA(1),l))},r}();by.ErrorHandler=Fye});var zq=w(Qy=>{"use strict";Object.defineProperty(Qy,"__esModule",{value:!0});Qy.ContentAssist=void 0;var Jq=Dd(),Wq=Gt(),Nye=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,Wq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,Jq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,Wq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new Jq.NextAfterTokenWalker(n,e).startWalking();return s},r}();Qy.ContentAssist=Nye});var rJ=w(xy=>{"use strict";Object.defineProperty(xy,"__esModule",{value:!0});xy.GastRecorder=void 0;var yn=Gt(),Oo=mn(),Tye=Bd(),_q=_g(),$q=TA(),Lye=jn(),Oye=Cy(),vy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(vy);var Vq=!0,Xq=Math.pow(2,Oye.BITS_FOR_OCCURRENCE_IDX)-1,eJ=(0,$q.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:Tye.Lexer.NA});(0,_q.augmentTokenTypes)([eJ]);var tJ=(0,$q.createTokenInstance)(eJ,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(tJ);var Mye={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},Kye=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return Lye.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Oo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return Ld.call(this,Oo.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){Ld.call(this,Oo.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){Ld.call(this,Oo.RepetitionMandatoryWithSeparator,t,e,Vq)},r.prototype.manyInternalRecord=function(e,t){Ld.call(this,Oo.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){Ld.call(this,Oo.RepetitionWithSeparator,t,e,Vq)},r.prototype.orInternalRecord=function(e,t){return Uye.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(Sy(t),!e||(0,yn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=e.ruleName,a=new Oo.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Mye:vy},r.prototype.consumeInternalRecord=function(e,t,i){if(Sy(t),!(0,_q.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,yn.peek)(this.recordingProdStack),o=new Oo.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),tJ},r}();xy.GastRecorder=Kye;function Ld(r,e,t,i){i===void 0&&(i=!1),Sy(t);var n=(0,yn.peek)(this.recordingProdStack),s=(0,yn.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,yn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),vy}function Uye(r,e){var t=this;Sy(e);var i=(0,yn.peek)(this.recordingProdStack),n=(0,yn.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Oo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,yn.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,yn.some)(s,function(l){return(0,yn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,yn.forEach)(s,function(l){var c=new Oo.Alternative({definition:[]});o.definition.push(c),(0,yn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,yn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),vy}function Zq(r){return r===0?"":""+r}function Sy(r){if(r<0||r>Xq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(Xq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var nJ=w(Py=>{"use strict";Object.defineProperty(Py,"__esModule",{value:!0});Py.PerformanceTracer=void 0;var iJ=Gt(),Hye=jn(),Gye=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,iJ.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=Hye.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,iJ.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();Py.PerformanceTracer=Gye});var sJ=w(Dy=>{"use strict";Object.defineProperty(Dy,"__esModule",{value:!0});Dy.applyMixins=void 0;function Yye(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Dy.applyMixins=Yye});var jn=w(dr=>{"use strict";var AJ=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var en=Gt(),jye=qj(),oJ=TA(),lJ=xd(),aJ=Cq(),qye=sx(),Jye=Qq(),Wye=Tq(),zye=Oq(),Vye=Kq(),Xye=Yq(),Zye=qq(),_ye=zq(),$ye=rJ(),ewe=nJ(),twe=sJ();dr.END_OF_FILE=(0,oJ.createTokenInstance)(oJ.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:lJ.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var rwe;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(rwe=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function iwe(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=iwe;var ky=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,en.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,en.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,en.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,en.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,aJ.resolveGrammar)({rules:(0,en.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,en.isEmpty)(n)&&e.skipValidations===!1){var s=(0,aJ.validateGrammar)({rules:(0,en.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,en.values)(e.tokensMap),errMsgProvider:lJ.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,en.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,jye.computeAllProdsFollows)((0,en.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,en.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,en.isEmpty)(e.definitionErrors))throw t=(0,en.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=ky;(0,twe.applyMixins)(ky,[qye.Recoverable,Jye.LooksAhead,Wye.TreeBuilder,zye.LexerAdapter,Xye.RecognizerEngine,Vye.RecognizerApi,Zye.ErrorHandler,_ye.ContentAssist,$ye.GastRecorder,ewe.PerformanceTracer]);var nwe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(ky);dr.CstParser=nwe;var swe=function(r){AJ(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,en.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(ky);dr.EmbeddedActionsParser=swe});var uJ=w(Ry=>{"use strict";Object.defineProperty(Ry,"__esModule",{value:!0});Ry.createSyntaxDiagramsCode=void 0;var cJ=Dv();function owe(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+cJ.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` +